pub struct Rule {
pub name: &'static str,
pub overloads: Vec<Box<dyn RuleOverload>>,
pub aliases: Vec<&'static str>,
}
Expand description
A rule operator.
Fields§
§name: &'static str
Rule’s name
overloads: Vec<Box<dyn RuleOverload>>
Rule’s overloads.
aliases: Vec<&'static str>
Aliases this rule has.
Implementations§
Source§impl Rule
impl Rule
Sourcepub fn new(name: &'static str) -> Self
pub fn new(name: &'static str) -> Self
Create a new rule with no overloads. The name must be ascii and all lowercase.
Sourcepub fn overload<M>(self, f: impl IntoRuleOverload<M>) -> Self
pub fn overload<M>(self, f: impl IntoRuleOverload<M>) -> Self
Add an overload to this rule
Sourcepub fn get_overload(
&self,
lhs: &AnyExpr,
rhs: &AnyExpr,
) -> Option<&dyn RuleOverload>
pub fn get_overload( &self, lhs: &AnyExpr, rhs: &AnyExpr, ) -> Option<&dyn RuleOverload>
Tries to find an overload for the given param types.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Rule
impl !RefUnwindSafe for Rule
impl !Send for Rule
impl !Sync for Rule
impl Unpin for Rule
impl !UnwindSafe for Rule
Blanket Implementations§
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
Source§impl<T> Convert for T
impl<T> Convert for T
Source§fn convert<U>(self, context: &CompileContext) -> Expr<U>where
U: ConvertFrom<T>,
fn convert<U>(self, context: &CompileContext) -> Expr<U>where
U: ConvertFrom<T>,
Convert
self
into a specific type. Read moreSource§fn can_convert<U>(&self) -> boolwhere
U: ConvertFrom<T>,
fn can_convert<U>(&self) -> boolwhere
U: ConvertFrom<T>,
Check if
self
can be converted into a specific type. Read more