pub struct Function<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32>(/* private fields */);Implementations§
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Sourcepub fn into_raw(self) -> *const c_void
pub fn into_raw(self) -> *const c_void
Convert self into a raw pointer, e.g. for usage in a foreign function
interface.
This method does not change any reference counters. To avoid a memory
leak, use Self::from_raw() to convert the pointer back into a
Function.
Sourcepub unsafe fn from_raw(raw: *const c_void) -> Self
pub unsafe fn from_raw(raw: *const c_void) -> Self
Convert raw into a Function
§Safety
raw must have been obtained via Self::into_raw(). This function
does not change any reference counters, so calling this function
multiple times for the same pointer may lead to use after free bugs
depending on the usage of the returned Function.
Trait Implementations§
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Clone for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Clone for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Drop for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Drop for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Function for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Function for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§type Manager<'id> = Manager<'id, <NC as InnerNodeCons<ET, TAG_BITS>>::T<'id>, ET, <TMC as TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>>::T<'id>, <RC as DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>>::T<'id>, <MDC as ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>>::T<'id>, PAGE_SIZE, TAG_BITS>
type Manager<'id> = Manager<'id, <NC as InnerNodeCons<ET, TAG_BITS>>::T<'id>, ET, <TMC as TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>>::T<'id>, <RC as DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>>::T<'id>, <MDC as ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>>::T<'id>, PAGE_SIZE, TAG_BITS>
Type of the associated manager Read more
Source§type ManagerRef = ManagerRef<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
type ManagerRef = ManagerRef<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§fn from_edge<'id>(
manager: &Self::Manager<'id>,
edge: EdgeOfFunc<'id, Self>,
) -> Self
fn from_edge<'id>( manager: &Self::Manager<'id>, edge: EdgeOfFunc<'id, Self>, ) -> Self
Create a new function from a manager reference and an edge
Source§fn as_edge<'id>(&self, manager: &Self::Manager<'id>) -> &EdgeOfFunc<'id, Self>
fn as_edge<'id>(&self, manager: &Self::Manager<'id>) -> &EdgeOfFunc<'id, Self>
Converts this function into the underlying edge (as reference), checking
that it belongs to the given
manager Read moreSource§fn into_edge<'id>(self, manager: &Self::Manager<'id>) -> EdgeOfFunc<'id, Self>
fn into_edge<'id>(self, manager: &Self::Manager<'id>) -> EdgeOfFunc<'id, Self>
Converts this function into the underlying edge, checking that it
belongs to the given
manager Read moreSource§fn manager_ref(&self) -> Self::ManagerRef
fn manager_ref(&self) -> Self::ManagerRef
Clone the
ManagerRef partObtain a shared manager reference as well as the underlying edge Read more
Source§fn with_manager_exclusive<F, T>(&self, f: F) -> T
fn with_manager_exclusive<F, T>(&self, f: F) -> T
Obtain an exclusive manager reference as well as the underlying edge Read more
Source§fn from_edge_ref<'id>(
manager: &Self::Manager<'id>,
edge: &<Self::Manager<'id> as Manager>::Edge,
) -> Self
fn from_edge_ref<'id>( manager: &Self::Manager<'id>, edge: &<Self::Manager<'id> as Manager>::Edge, ) -> Self
Create a new function from a manager reference and an edge reference
Source§fn node_count(&self) -> usize
fn node_count(&self) -> usize
Count the number of nodes in this function, including terminal nodes Read more
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Hash for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Hash for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Ord for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Ord for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> PartialEq for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> PartialEq for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Source§impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> PartialOrd for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> PartialOrd for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Eq for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Send for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC: InnerNodeCons<ET, TAG_BITS>, ET: Tag, TMC: TerminalManagerCons<NC, ET, RC, MDC, PAGE_SIZE, TAG_BITS>, RC: DiagramRulesCons<NC, ET, TMC, MDC, PAGE_SIZE, TAG_BITS>, MDC: ManagerDataCons<NC, ET, TMC, RC, PAGE_SIZE, TAG_BITS>, const PAGE_SIZE: usize, const TAG_BITS: u32> Sync for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
Auto Trait Implementations§
impl<NC, ET, TMC, RC, MDC, const PAGE_SIZE: usize, const TAG_BITS: u32> Freeze for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC, ET, TMC, RC, MDC, const PAGE_SIZE: usize, const TAG_BITS: u32> RefUnwindSafe for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>where
NC: RefUnwindSafe,
ET: RefUnwindSafe,
TMC: RefUnwindSafe,
RC: RefUnwindSafe,
MDC: RefUnwindSafe,
impl<NC, ET, TMC, RC, MDC, const PAGE_SIZE: usize, const TAG_BITS: u32> Unpin for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
impl<NC, ET, TMC, RC, MDC, const PAGE_SIZE: usize, const TAG_BITS: u32> UnwindSafe for Function<NC, ET, TMC, RC, MDC, PAGE_SIZE, TAG_BITS>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more