pub struct SteeringEngine { /* private fields */ }Expand description
Steering engine for managing and applying steering rules
Implementations§
Source§impl SteeringEngine
impl SteeringEngine
Sourcepub fn with_steering_dir(steering_dir: impl Into<PathBuf>) -> Self
pub fn with_steering_dir(steering_dir: impl Into<PathBuf>) -> Self
Create a steering engine with a custom steering directory
Sourcepub fn register_rule(&mut self, rule: SteeringRule) -> Result<()>
pub fn register_rule(&mut self, rule: SteeringRule) -> Result<()>
Register a steering rule
Sourcepub fn unregister_rule(&mut self, id: &str) -> Result<SteeringRule>
pub fn unregister_rule(&mut self, id: &str) -> Result<SteeringRule>
Unregister a steering rule by ID
Sourcepub fn get_rule(&self, id: &str) -> Option<&SteeringRule>
pub fn get_rule(&self, id: &str) -> Option<&SteeringRule>
Get a rule by ID
Sourcepub fn get_rule_mut(&mut self, id: &str) -> Option<&mut SteeringRule>
pub fn get_rule_mut(&mut self, id: &str) -> Option<&mut SteeringRule>
Get a mutable reference to a rule by ID
Sourcepub fn list_rules(&self) -> &[SteeringRule]
pub fn list_rules(&self) -> &[SteeringRule]
List all rules
Sourcepub fn get_rules_for_context(
&self,
context: &AgentContext,
) -> Vec<&SteeringRule>
pub fn get_rules_for_context( &self, context: &AgentContext, ) -> Vec<&SteeringRule>
Get rules that apply to a given context
Sourcepub fn load_steering(&mut self, path: &Path) -> Result<usize>
pub fn load_steering(&mut self, path: &Path) -> Result<usize>
Load steering rules from a directory
Sourcepub fn resolve_file_references(
&self,
rule: &mut SteeringRule,
base_path: &Path,
) -> Result<()>
pub fn resolve_file_references( &self, rule: &mut SteeringRule, base_path: &Path, ) -> Result<()>
Resolve file references in a rule
Sourcepub fn resolve_all_file_references(&mut self, base_path: &Path) -> Result<()>
pub fn resolve_all_file_references(&mut self, base_path: &Path) -> Result<()>
Resolve all file references in all rules
Sourcepub fn get_rules_with_inheritance(&self, directory: &Path) -> Vec<&SteeringRule>
pub fn get_rules_with_inheritance(&self, directory: &Path) -> Vec<&SteeringRule>
Get rules with inheritance from parent directories
Sourcepub fn inject_into_context(&self, context: &AgentContext) -> String
pub fn inject_into_context(&self, context: &AgentContext) -> String
Inject applicable steering rules into an agent context
Sourcepub fn save_rule(&self, rule: &SteeringRule, path: &Path) -> Result<()>
pub fn save_rule(&self, rule: &SteeringRule, path: &Path) -> Result<()>
Save a steering rule to a file
Sourcepub fn steering_dir(&self) -> &Path
pub fn steering_dir(&self) -> &Path
Get the steering directory
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SteeringEngine
impl RefUnwindSafe for SteeringEngine
impl Send for SteeringEngine
impl Sync for SteeringEngine
impl Unpin for SteeringEngine
impl UnsafeUnpin for SteeringEngine
impl UnwindSafe for SteeringEngine
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.