pub struct Reference {
pub ptr: DeclarationPtr,
pub repr: Option<&'static dyn ReprRuleStored>,
}Expand description
A reference to a declaration (variable, parameter, etc.)
This is a thin wrapper around DeclarationPtr with two main purposes:
- Encapsulate the serde pragmas (e.g., serializing as IDs rather than full objects)
- Enable type-directed traversals of references via uniplate
Fields§
§ptr: DeclarationPtr§repr: Option<&'static dyn ReprRuleStored>Implementations§
Source§impl Reference
impl Reference
pub fn new(ptr: DeclarationPtr) -> Reference
pub fn ptr(&self) -> &DeclarationPtr
pub fn into_ptr(self) -> DeclarationPtr
pub fn name(&self) -> MappedRwLockReadGuard<'_, RawRwLock, Name>
pub fn id(&self) -> ObjId
pub fn domain(&self) -> Option<Moo<Domain>>
pub fn resolved_domain(&self) -> Option<Moo<GroundDomain>>
Sourcepub fn select_repr<R>(
&mut self,
) -> Result<MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, ReprSelectError>
pub fn select_repr<R>( &mut self, ) -> Result<MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, ReprSelectError>
Select the given representation for this reference, if it is currently unrepresented and the representation exists for the underlying variable.
§Errors
- ReprSelectError::AlreadySelected if a different representation is already selected for this reference
- ReprSelectError::DoesNotExist if the representation does not exist for this variable
§Returns
State of the initialised representation
Sourcepub fn select_repr_via(
&mut self,
rule: &'static dyn ReprRuleStored,
) -> Result<MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, ReprSelectError>
pub fn select_repr_via( &mut self, rule: &'static dyn ReprRuleStored, ) -> Result<MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, ReprSelectError>
Same as Reference::select_repr, but type-erased
Sourcepub fn select_or_init_repr_via(
&mut self,
rule: &'static dyn ReprRuleStored,
) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, SymbolTable, Vec<Expression>), ReferenceReprError>
pub fn select_or_init_repr_via( &mut self, rule: &'static dyn ReprRuleStored, ) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, SymbolTable, Vec<Expression>), ReferenceReprError>
Same as Reference::select_or_init_repr, but type-erased
Sourcepub fn select_or_init_repr<R>(
&mut self,
) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, SymbolTable, Vec<Expression>), ReferenceReprError>
pub fn select_or_init_repr<R>( &mut self, ) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, SymbolTable, Vec<Expression>), ReferenceReprError>
Select the given representation for this reference, initialising it if necessary. Will fail if a different representation is already selected.
§Errors
- ReprSelectError if a different representation is already selected for this reference
- [ReprInitError] | [ReprInstantiateError] if the representation could not be initialised
§Returns
(state, symbols, constraints)
where:
stateis an instance of the given representationsymbolsare new variables created by the representationconstraintsare new top-level constraints created by the representation
Sourcepub fn update_or_init_repr<R>(
&mut self,
) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, SymbolTable, Vec<Expression>), ReprError>
pub fn update_or_init_repr<R>( &mut self, ) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>, SymbolTable, Vec<Expression>), ReprError>
Select the given representation for this reference, initialising it if necessary. Will overwrite the existing selection.
§Errors
- [ReprInitError] | [ReprInstantiateError] if the representation could not be initialised
§Returns
(state, symbols, constraints)
where:
stateis an instance of the given representationsymbolsare new variables created by the representationconstraintsare new top-level constraints created by the representation
Sourcepub fn update_or_init_repr_via(
&mut self,
rule: &'static dyn ReprRuleStored,
) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, SymbolTable, Vec<Expression>), ReprError>
pub fn update_or_init_repr_via( &mut self, rule: &'static dyn ReprRuleStored, ) -> Result<(MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>, SymbolTable, Vec<Expression>), ReprError>
Same as Reference::update_or_init_repr, but type-erased
Sourcepub fn get_repr(
&self,
) -> Option<(&'static dyn ReprRuleStored, MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>)>
pub fn get_repr( &self, ) -> Option<(&'static dyn ReprRuleStored, MappedRwLockReadGuard<'_, RawRwLock, dyn ReprStateStored>)>
If this reference has a representation selected, return (rule, state)
where
ruleis a pointer to the representation rulestateis an instance of that representation
Sourcepub fn get_repr_as<R>(
&self,
) -> Option<MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>>
pub fn get_repr_as<R>( &self, ) -> Option<MappedRwLockReadGuard<'_, RawRwLock, <R as ReprRule>::DeclLevel>>
If this reference has this specific representation selected, get its state as a concrete type
Sourcepub fn resolve_expression(&self) -> Option<Expression>
pub fn resolve_expression(&self) -> Option<Expression>
Returns the expression behind a value-letting reference, if this is one.
Prefer Reference::with_resolved_expression when the expression only needs to be
inspected. Returning an owned value here necessarily clones collection-bearing
expressions such as matrix literals.
Sourcepub fn with_resolved_expression<T>(
&self,
inspect: impl FnOnce(&Expression) -> T,
) -> Option<T>
pub fn with_resolved_expression<T>( &self, inspect: impl FnOnce(&Expression) -> T, ) -> Option<T>
Calls inspect with the expression behind a value-letting reference.
The declaration is kept read-locked for the duration of inspect, allowing callers to ask
questions about large value lettings without cloning them. Quantified declarations may
delegate their value to an expression generator; those are handled here as well.
Sourcepub fn resolve_constant(&self) -> Option<Literal>
pub fn resolve_constant(&self) -> Option<Literal>
Evaluates this reference to a literal if it resolves to a constant.
Sourcepub fn resolve_atomic(&self) -> Option<Atom>
pub fn resolve_atomic(&self) -> Option<Atom>
Resolves this reference to an atomic expression, if possible.
Trait Implementations§
Source§impl Biplate<DeclarationPtr> for Reference
impl Biplate<DeclarationPtr> for Reference
Source§fn biplate(
&self,
) -> (Tree<DeclarationPtr>, Box<dyn Fn(Tree<DeclarationPtr>) -> Reference>)
fn biplate( &self, ) -> (Tree<DeclarationPtr>, Box<dyn Fn(Tree<DeclarationPtr>) -> Reference>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Name> for Reference
impl Biplate<Name> for Reference
Source§fn biplate(&self) -> (Tree<Name>, Box<dyn Fn(Tree<Name>) -> Reference>)
fn biplate(&self) -> (Tree<Name>, Box<dyn Fn(Tree<Name>) -> Reference>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for Atom
impl Biplate<Reference> for Atom
Source§fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Atom>)
fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Atom>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for DeclarationPtr
impl Biplate<Reference> for DeclarationPtr
Source§fn biplate(
&self,
) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> DeclarationPtr>)
fn biplate( &self, ) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> DeclarationPtr>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for Domain
impl Biplate<Reference> for Domain
Source§fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Domain>)
fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Domain>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for IntVal
impl Biplate<Reference> for IntVal
Source§fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> IntVal>)
fn biplate(&self) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> IntVal>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for UnresolvedDomain
impl Biplate<Reference> for UnresolvedDomain
Source§fn biplate(
&self,
) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> UnresolvedDomain>)
fn biplate( &self, ) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> UnresolvedDomain>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for Expression
impl Biplate<Reference> for Expression
Source§fn biplate(
&self,
) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Expression>)
fn biplate( &self, ) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Expression>)
§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
fn try_replace_child_at_bi(&mut self, index: usize, child: To) -> bool
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl Biplate<Reference> for Reference
impl Biplate<Reference> for Reference
Source§fn biplate(
&self,
) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Reference>)
fn biplate( &self, ) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Reference>)
Source§fn children_bi_count(&self) -> usize
fn children_bi_count(&self) -> usize
children_bi. Read more§fn with_children_bi(&self, children: VecDeque<To>) -> Self
fn with_children_bi(&self, children: VecDeque<To>) -> Self
§fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
fn descend_bi(&self, op: &impl Fn(To) -> To) -> Self
Uniplate::descend] Read more§fn universe_bi(&self) -> VecDeque<To>
fn universe_bi(&self) -> VecDeque<To>
§fn children_bi(&self) -> VecDeque<To>
fn children_bi(&self) -> VecDeque<To>
§fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
fn transform_bi(&self, op: &impl Fn(To) -> To) -> Self
§fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn holes_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
§fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
fn contexts_bi(&self) -> impl Iterator<Item = (To, impl Fn(To))>
Source§impl CategoryOf for Reference
impl CategoryOf for Reference
Source§fn category_of(&self) -> Category
fn category_of(&self) -> Category
Category of a term.Source§impl<'de> Deserialize<'de> for Reference
impl<'de> Deserialize<'de> for Reference
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Reference, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Reference, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for Reference
Source§impl From<DeclarationPtr> for Reference
impl From<DeclarationPtr> for Reference
Source§fn from(ptr: DeclarationPtr) -> Reference
fn from(ptr: DeclarationPtr) -> Reference
Source§impl From<Reference> for Expression
impl From<Reference> for Expression
Source§fn from(value: Reference) -> Expression
fn from(value: Reference) -> Expression
Source§impl Ord for Reference
impl Ord for Reference
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Reference
impl PartialOrd for Reference
Source§impl Serialize for Reference
impl Serialize for Reference
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for Reference
Source§impl Uniplate for Reference
impl Uniplate for Reference
Source§fn uniplate(
&self,
) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Reference>)
fn uniplate( &self, ) -> (Tree<Reference>, Box<dyn Fn(Tree<Reference>) -> Reference>)
Uniplate. Read more§fn descend(&self, op: &impl Fn(Self) -> Self) -> Self
fn descend(&self, op: &impl Fn(Self) -> Self) -> Self
§fn universe(&self) -> VecDeque<Self>
fn universe(&self) -> VecDeque<Self>
§fn with_children(&self, children: VecDeque<Self>) -> Self
fn with_children(&self, children: VecDeque<Self>) -> Self
§fn transform(&self, f: &impl Fn(Self) -> Self) -> Self
fn transform(&self, f: &impl Fn(Self) -> Self) -> Self
§fn rewrite(&self, f: &impl Fn(Self) -> Option<Self>) -> Self
fn rewrite(&self, f: &impl Fn(Self) -> Option<Self>) -> Self
§fn cata<T>(&self, op: &impl Fn(Self, VecDeque<T>) -> T) -> T
fn cata<T>(&self, op: &impl Fn(Self, VecDeque<T>) -> T) -> T
Auto Trait Implementations§
impl !RefUnwindSafe for Reference
impl !UnwindSafe for Reference
impl Freeze for Reference
impl Send for Reference
impl Sync for Reference
impl Unpin for Reference
impl UnsafeUnpin for Reference
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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 moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Typeable for Twhere
T: HasDomain,
impl<T> Typeable for Twhere
T: HasDomain,
fn return_type(&self) -> ReturnType
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes