pub struct PrimitiveDirectory {
pub primitive_type_spaces: HashMap<TypeId, PrimitiveTypeSpace>,
}Expand description
A directory of primitive function terms (FuncImpls),
consisting of one PrimitiveTypeSpace for each function TypeId
in some TypeInfoDirectory.
Fields§
§primitive_type_spaces: HashMap<TypeId, PrimitiveTypeSpace>Implementations§
Source§impl PrimitiveDirectory
impl PrimitiveDirectory
Sourcepub fn get_primitive(
&self,
primitive_term_pointer: PrimitiveTermPointer,
) -> &dyn FuncImpl
pub fn get_primitive( &self, primitive_term_pointer: PrimitiveTermPointer, ) -> &dyn FuncImpl
Given a PrimitiveTermPointer pointing to a primitive term in this
PrimitiveDirectory, yields the primitive term as a FuncImpl.
Sourcepub fn new(type_info_directory: &TypeInfoDirectory) -> PrimitiveDirectory
pub fn new(type_info_directory: &TypeInfoDirectory) -> PrimitiveDirectory
Constructs a new, initially-empty PrimitiveDirectory.
Sourcepub fn add(
&mut self,
func_impl: Box<dyn FuncImpl>,
type_info_directory: &TypeInfoDirectory,
)
pub fn add( &mut self, func_impl: Box<dyn FuncImpl>, type_info_directory: &TypeInfoDirectory, )
Adds the given FuncImpl to this PrimitiveDirectory, which is assumed
to reference types pulled from the given TypeInfoDirectory.
Sourcepub fn add_binary_func(
&mut self,
type_id: TypeId,
binary_func: Box<dyn BinaryArrayOperator>,
type_info_directory: &TypeInfoDirectory,
)
pub fn add_binary_func( &mut self, type_id: TypeId, binary_func: Box<dyn BinaryArrayOperator>, type_info_directory: &TypeInfoDirectory, )
Convenient wrapper around Self::add which allows adding a BinaryArrayOperator
to this PrimitiveDirectory whose element type is the given TypeId within
the given TypeInfoDirectory.
Auto Trait Implementations§
impl Freeze for PrimitiveDirectory
impl !RefUnwindSafe for PrimitiveDirectory
impl !Send for PrimitiveDirectory
impl !Sync for PrimitiveDirectory
impl Unpin for PrimitiveDirectory
impl !UnwindSafe for PrimitiveDirectory
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