BDDFunction

Struct BDDFunction 

Source
pub struct BDDFunction(/* private fields */);
Expand description

Boolean function represented as BDD

Trait Implementations§

Source§

impl BooleanFunction for BDDFunction

Source§

fn f<'__id>(manager: &<Self as Function>::Manager<'__id>) -> Self

Get the always false function
Source§

fn f_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, ) -> <<Self as Function>::Manager<'__id> as Manager>::Edge

Get the always false function as edge
Source§

fn t<'__id>(manager: &<Self as Function>::Manager<'__id>) -> Self

Get the always true function
Source§

fn t_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, ) -> <<Self as Function>::Manager<'__id> as Manager>::Edge

Get the always true function as edge
Source§

fn var<'__id>( manager: &<Self as Function>::Manager<'__id>, var: VarNo, ) -> AllocResult<Self>

Get the Boolean function that is true if and only if var is true Read more
Source§

fn var_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, var: VarNo, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Get the Boolean function (as edge) that is true if and only if var is true Read more
Source§

fn not_var<'__id>( manager: &<Self as Function>::Manager<'__id>, var: VarNo, ) -> AllocResult<Self>

Get the Boolean function that is true if and only if var is false Read more
Source§

fn not_var_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, var: VarNo, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Get the Boolean function (as edge) that is true if and only if var is false Read more
Source§

fn not(&self) -> AllocResult<Self>

Compute the negation ¬self Read more
Source§

fn not_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the negation ¬edge, edge version
Source§

fn not_owned(self) -> AllocResult<Self>

Compute the negation ¬self, owned version Read more
Source§

fn not_edge_owned<'__id>( manager: &<Self as Function>::Manager<'__id>, edge: <<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the negation ¬edge, owned edge version Read more
Source§

fn and(&self, rhs: &Self) -> AllocResult<Self>

Compute the conjunction self ∧ rhs Read more
Source§

fn and_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the conjunction lhs ∧ rhs, edge version
Source§

fn or(&self, rhs: &Self) -> AllocResult<Self>

Compute the disjunction self ∨ rhs Read more
Source§

fn or_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the disjunction lhs ∨ rhs, edge version
Source§

fn nand(&self, rhs: &Self) -> AllocResult<Self>

Compute the negated conjunction self ⊼ rhs Read more
Source§

fn nand_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the negated conjunction lhs ⊼ rhs, edge version
Source§

fn nor(&self, rhs: &Self) -> AllocResult<Self>

Compute the negated disjunction self ⊽ rhs Read more
Source§

fn nor_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the negated disjunction lhs ⊽ rhs, edge version
Source§

fn xor(&self, rhs: &Self) -> AllocResult<Self>

Compute the exclusive disjunction self ⊕ rhs Read more
Source§

fn xor_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the exclusive disjunction lhs ⊕ rhs, edge version
Source§

fn equiv(&self, rhs: &Self) -> AllocResult<Self>

Compute the equivalence self ↔ rhs Read more
Source§

fn equiv_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the equivalence lhs ↔ rhs, edge version
Source§

fn imp(&self, rhs: &Self) -> AllocResult<Self>

Compute the implication self → rhs (or self ≤ rhs) Read more
Source§

fn imp_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the implication lhs → rhs, edge version
Source§

fn imp_strict(&self, rhs: &Self) -> AllocResult<Self>

Compute the strict implication self < rhs Read more
Source§

fn imp_strict_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the strict implication lhs < rhs, edge version
Source§

fn ite(&self, f1: &Self, f2: &Self) -> AllocResult<Self>

Compute if self { then_case } else { else_case } Read more
Source§

fn ite_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, e0: &<<Self as Function>::Manager<'__id> as Manager>::Edge, e1: &<<Self as Function>::Manager<'__id> as Manager>::Edge, e2: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute if if_edge { then_edge } else { else_edge } (edge version) Read more
Source§

fn pick_cube_dd_set(&self, rhs: &Self) -> AllocResult<Self>

Pick a symbolic cube of this function, i.e., as decision diagram, using the literals in literal_set if there is a choice Read more
Source§

fn pick_cube_dd_set_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Edge version of Self::pick_cube_dd_set()
Source§

fn cofactors(&self) -> Option<(Self, Self)>

Get the cofactors (f_true, f_false) of self Read more
Source§

fn cofactor_true(&self) -> Option<Self>

Get the cofactor f_true of self Read more
Source§

fn cofactor_false(&self) -> Option<Self>

Get the cofactor f_false of self Read more
Source§

fn cofactors_edge<'__a, '__id>( manager: &'__a <Self as Function>::Manager<'__id>, f: &'__a <<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> Option<(Borrowed<'__a, <<Self as Function>::Manager<'__id> as Manager>::Edge>, Borrowed<'__a, <<Self as Function>::Manager<'__id> as Manager>::Edge>)>

Get the cofactors (f_true, f_false) of f, edge version Read more
Source§

fn cofactors_node<'__a, '__id>( tag: ETagOfFunc<'__id, Self>, node: &'__a INodeOfFunc<'__id, Self>, ) -> (Borrowed<'__a, <<Self as Function>::Manager<'__id> as Manager>::Edge>, Borrowed<'__a, <<Self as Function>::Manager<'__id> as Manager>::Edge>)

Get the cofactors (f_true, f_false) of node, assuming an incoming edge with EdgeTag Read more
Source§

fn satisfiable(&self) -> bool

Returns true iff self is satisfiable, i.e. is not Read more
Source§

fn valid(&self) -> bool

Returns true iff self is valid, i.e. is Read more
Source§

fn sat_count<__N, __S>( &self, vars: LevelNo, cache: &mut SatCountCache<__N, __S>, ) -> __N
where __N: SatCountNumber, __S: BuildHasher,

Count the number of satisfying assignments, assuming vars input variables Read more
Source§

fn sat_count_edge<'__id, __N, __S>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, vars: LevelNo, cache: &mut SatCountCache<__N, __S>, ) -> __N
where __N: SatCountNumber, __S: BuildHasher,

Edge version of Self::sat_count()
Source§

fn pick_cube( &self, choice: impl for<'__id> FnMut(&<Self as Function>::Manager<'__id>, &<<Self as Function>::Manager<'__id> as Manager>::Edge, LevelNo) -> bool, ) -> Option<Vec<OptBool>>

Pick a cube of this function Read more
Source§

fn pick_cube_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, choice: impl FnMut(&<Self as Function>::Manager<'__id>, &<<Self as Function>::Manager<'__id> as Manager>::Edge, LevelNo) -> bool, ) -> Option<Vec<OptBool>>

Edge version of Self::pick_cube()
Source§

fn pick_cube_dd( &self, choice: impl for<'__id> FnMut(&<Self as Function>::Manager<'__id>, &<<Self as Function>::Manager<'__id> as Manager>::Edge, LevelNo) -> bool, ) -> AllocResult<Self>

Pick a symbolic cube of this function, i.e., as decision diagram Read more
Source§

fn pick_cube_dd_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, choice: impl FnMut(&<Self as Function>::Manager<'__id>, &<<Self as Function>::Manager<'__id> as Manager>::Edge, LevelNo) -> bool, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Edge version of Self::pick_cube_dd()
Source§

fn pick_cube_uniform<__S: BuildHasher>( &self, cache: &mut SatCountCache<F64, __S>, rng: &mut Rng, ) -> Option<Vec<OptBool>>

Pick a random cube of this function, where each cube has the same probability of being chosen Read more
Source§

fn pick_cube_uniform_edge<'__id, __S: BuildHasher>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, cache: &mut SatCountCache<F64, __S>, rng: &mut Rng, ) -> Option<Vec<OptBool>>

Source§

fn eval(&self, args: impl IntoIterator<Item = (VarNo, bool)>) -> bool

Evaluate this Boolean function Read more
Source§

fn eval_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, edge: &<<Self as Function>::Manager<'__id> as Manager>::Edge, args: impl IntoIterator<Item = (VarNo, bool)>, ) -> bool

Edge version of Self::eval()
Source§

impl BooleanFunctionQuant for BDDFunction

Source§

fn restrict(&self, rhs: &Self) -> AllocResult<Self>

Restrict a set of vars to constant values Read more
Source§

fn restrict_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Restrict a set of vars to constant values, edge version Read more
Source§

fn forall(&self, rhs: &Self) -> AllocResult<Self>

Compute the universal quantification over vars Read more
Source§

fn forall_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the universal quantification of root over vars, edge version Read more
Source§

fn exists(&self, rhs: &Self) -> AllocResult<Self>

Compute the existential quantification over vars Read more
Source§

fn exists_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the existential quantification of root over vars, edge version Read more
Source§

fn unique(&self, rhs: &Self) -> AllocResult<Self>

Compute the unique quantification over vars Read more
Source§

fn unique_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Compute the unique quantification of root over vars, edge version Read more
Source§

fn apply_forall( &self, op: BooleanOperator, rhs: &Self, vars: &Self, ) -> AllocResult<Self>

Combined application of op and quantification ∀x. self <op> rhs, where <op> is any of the operations from BooleanOperator Read more
Source§

fn apply_forall_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, op: BooleanOperator, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, vars: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Combined application of op and forall quantification, edge version Read more
Source§

fn apply_exists( &self, op: BooleanOperator, rhs: &Self, vars: &Self, ) -> AllocResult<Self>

Combined application of op and quantification ∃x. self <op> rhs, where <op> is any of the operations from BooleanOperator Read more
Source§

fn apply_exists_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, op: BooleanOperator, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, vars: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Combined application of op and existential quantification, edge version Read more
Source§

fn apply_unique( &self, op: BooleanOperator, rhs: &Self, vars: &Self, ) -> AllocResult<Self>

Combined application of op and quantification ∃!x. self <op> rhs, where <op> is any of the operations from BooleanOperator Read more
Source§

fn apply_unique_edge<'__id>( manager: &<Self as Function>::Manager<'__id>, op: BooleanOperator, lhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, rhs: &<<Self as Function>::Manager<'__id> as Manager>::Edge, vars: &<<Self as Function>::Manager<'__id> as Manager>::Edge, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Combined application of op and unique quantification, edge version Read more
Source§

fn exist(&self, vars: &Self) -> Result<Self, OutOfMemory>

👎Deprecated
Deprecated alias for Self::exists()
Source§

fn apply_exist( &self, op: BooleanOperator, rhs: &Self, vars: &Self, ) -> Result<Self, OutOfMemory>

👎Deprecated
Deprecated alias for Self::apply_exists()
Source§

fn exist_edge<'id>( manager: &Self::Manager<'id>, root: &<Self::Manager<'id> as Manager>::Edge, vars: &<Self::Manager<'id> as Manager>::Edge, ) -> Result<<Self::Manager<'id> as Manager>::Edge, OutOfMemory>

👎Deprecated
Deprecated alias for Self::exists_edge()
Source§

fn apply_exist_edge<'id>( manager: &Self::Manager<'id>, op: BooleanOperator, lhs: &<Self::Manager<'id> as Manager>::Edge, rhs: &<Self::Manager<'id> as Manager>::Edge, vars: &<Self::Manager<'id> as Manager>::Edge, ) -> Result<<Self::Manager<'id> as Manager>::Edge, OutOfMemory>

👎Deprecated
Deprecated alias for Self::apply_exists_edge()
Source§

impl Clone for BDDFunction

Source§

fn clone(&self) -> BDDFunction

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl DotStyle<()> for BDDFunction

Source§

fn edge_style(no: usize, tag: T) -> (EdgeStyle, bool, Color)

Get the style for the n-th outgoing edge, tagged with tag Read more
Source§

impl Function for BDDFunction

Source§

const REPR_ID: &'static str = <FunctionInner as ::oxidd_core::function::Function>::REPR_ID

Representation identifier such as “BDD” or “MTBDD”
Source§

type Manager<'__id> = <BDDFunctionMT<<IndexDD<NodeWithLevelCons<2>, (), StaticTerminalManagerCons<BDDTerminal>, BDDRulesCons, BDDManagerDataCons, 2> as DD>::Function> as Function>::Manager<'__id>

Type of the associated manager Read more
Source§

type ManagerRef = BDDManagerRef

Source§

fn from_edge<'__id>( manager: &Self::Manager<'__id>, edge: <Self::Manager<'__id> as Manager>::Edge, ) -> Self

Create a new function from a manager reference and an edge
Source§

fn as_edge<'__id>( &self, manager: &Self::Manager<'__id>, ) -> &<Self::Manager<'__id> as Manager>::Edge

Converts this function into the underlying edge (as reference), checking that it belongs to the given manager Read more
Source§

fn into_edge<'__id>( self, manager: &Self::Manager<'__id>, ) -> <Self::Manager<'__id> as Manager>::Edge

Converts this function into the underlying edge, checking that it belongs to the given manager Read more
Source§

fn manager_ref(&self) -> BDDManagerRef

Clone the ManagerRef part
Source§

fn with_manager_shared<__F, __T>(&self, f: __F) -> __T
where __F: for<'__id> FnOnce(&Self::Manager<'__id>, &<Self::Manager<'__id> as Manager>::Edge) -> __T,

Obtain a shared manager reference as well as the underlying edge Read more
Source§

fn with_manager_exclusive<__F, __T>(&self, f: __F) -> __T
where __F: for<'__id> FnOnce(&mut Self::Manager<'__id>, &<Self::Manager<'__id> as Manager>::Edge) -> __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

Create a new function from a manager reference and an edge reference
Source§

fn node_count(&self) -> usize

Count the number of nodes in this function, including terminal nodes Read more
Source§

impl FunctionSubst for BDDFunction

Source§

fn substitute<'__a>( &'__a self, substitution: impl Substitution<Replacement = &'__a Self>, ) -> AllocResult<Self>

Substitute variables in self according to substitution Read more
Source§

fn substitute_edge<'__id, '__a>( manager: &'__a <Self as Function>::Manager<'__id>, edge: &'__a <<Self as Function>::Manager<'__id> as Manager>::Edge, substitution: impl Substitution<Replacement = Borrowed<'__a, <<Self as Function>::Manager<'__id> as Manager>::Edge>>, ) -> AllocResult<<<Self as Function>::Manager<'__id> as Manager>::Edge>

Edge version of Self::substitute()
Source§

impl Hash for BDDFunction

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for BDDFunction

Source§

fn cmp(&self, other: &BDDFunction) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for BDDFunction

Source§

fn eq(&self, other: &BDDFunction) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for BDDFunction

Source§

fn partial_cmp(&self, other: &BDDFunction) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Eq for BDDFunction

Source§

impl StructuralPartialEq for BDDFunction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.