Trait arithmetic_eval::exec::ModuleId
source · pub trait ModuleId: Any + Display + Send + Sync { }
Expand description
Identifier of an ExecutableModule
. This is usually a “small” type,
such as an integer or a string.
The ID is provided when creating a module. It is displayed
in error messages (using Display::fmt
). ModuleId
is also associated with some types
(e.g., InterpretedFn
and LocationInModule
), which allows to obtain module info.
This can be particularly useful for outputting rich error information.
A ModuleId
can be downcast to a specific type, similarly to Any
.
Implementations§
source§impl dyn ModuleId
impl dyn ModuleId
sourcepub fn is<T: ModuleId>(&self) -> bool
pub fn is<T: ModuleId>(&self) -> bool
Returns true
if the boxed type is the same as T
.
This method is effectively a carbon copy of <dyn Any>::is
. Such a copy is necessary
because &dyn ModuleId
cannot be converted to &dyn Any
, despite ModuleId
having Any
as a super-trait.
sourcepub fn downcast_ref<T: ModuleId>(&self) -> Option<&T>
pub fn downcast_ref<T: ModuleId>(&self) -> Option<&T>
Returns a reference to the boxed value if it is of type T
, or None
if it isn’t.
This method is effectively a carbon copy of <dyn Any>::downcast_ref
. Such a copy
is necessary because &dyn ModuleId
cannot be converted to &dyn Any
, despite ModuleId
having Any
as a super-trait.