pub struct ObjectMarker<T: ?Sized> { /* private fields */ }Implementations§
Trait Implementations§
Source§impl<T: ?Sized> Clone for ObjectMarker<T>
impl<T: ?Sized> Clone for ObjectMarker<T>
impl<T: ?Sized> Copy for ObjectMarker<T>
Source§impl<T: ?Sized> Debug for ObjectMarker<T>
impl<T: ?Sized> Debug for ObjectMarker<T>
Source§impl<T: ?Sized> Default for ObjectMarker<T>
impl<T: ?Sized> Default for ObjectMarker<T>
impl<T: ?Sized> Eq for ObjectMarker<T>
Source§impl<T: ?Sized> Hash for ObjectMarker<T>
impl<T: ?Sized> Hash for ObjectMarker<T>
Source§impl<T: ?Sized> InlineOutput for ObjectMarker<T>
impl<T: ?Sized> InlineOutput for ObjectMarker<T>
Source§impl<T: ?Sized> ListHashes for ObjectMarker<T>
impl<T: ?Sized> ListHashes for ObjectMarker<T>
Source§fn list_hashes(&self, visitor: &mut (impl ?Sized + FnMut(Hash)))
fn list_hashes(&self, visitor: &mut (impl ?Sized + FnMut(Hash)))
[
Hash]-only part of Topological::traverse.Source§fn topology_hash(&self) -> Hash
fn topology_hash(&self) -> Hash
[
Hash] of all [Hash]es the object refers to other objects by.Source§fn point_count(&self) -> usize
fn point_count(&self) -> usize
How many others this object refers to.
Source§impl<T: ?Sized> MaybeHasNiche for ObjectMarker<T>
impl<T: ?Sized> MaybeHasNiche for ObjectMarker<T>
Source§type MnArray = NoNiche<ZeroNoNiche<<ObjectMarker<T> as Size>::Size>>
type MnArray = NoNiche<ZeroNoNiche<<ObjectMarker<T> as Size>::Size>>
Should implement [
MnArray]. Not constraint explicitly, because that breaks things.Source§impl<T: ?Sized> Ord for ObjectMarker<T>
impl<T: ?Sized> Ord for ObjectMarker<T>
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl<T: ?Sized, __I: ParseInput> Parse<__I> for ObjectMarker<T>
impl<T: ?Sized, __I: ParseInput> Parse<__I> for ObjectMarker<T>
Source§impl<T: ?Sized, __I: ParseInput> ParseInline<__I> for ObjectMarker<T>
impl<T: ?Sized, __I: ParseInput> ParseInline<__I> for ObjectMarker<T>
Source§fn parse_inline(input: &mut __I) -> Result<Self>
fn parse_inline(input: &mut __I) -> Result<Self>
Parse without consuming the whole stream. Errors on unexpected EOF.
Source§fn parse_as_inline(input: I) -> Result<Self>
fn parse_as_inline(input: I) -> Result<Self>
For implementing
Parse::parse.Source§fn parse_vec(input: I) -> Result<Vec<Self>>
fn parse_vec(input: I) -> Result<Vec<Self>>
Parse a
Vec of Self. Customisable for optimisations.Source§fn parse_vec_n(input: &mut I, n: usize) -> Result<Vec<Self>>
fn parse_vec_n(input: &mut I, n: usize) -> Result<Vec<Self>>
Parse a
Vec of Self of length n. Customisable for optimisations.Source§fn parse_array<const N: usize>(input: &mut I) -> Result<[Self; N]>
fn parse_array<const N: usize>(input: &mut I) -> Result<[Self; N]>
Parse an array of
Self. Customisable for optimisations.Source§fn parse_generic_array<N: ArrayLength>(
input: &mut I,
) -> Result<GenericArray<Self, N>>
fn parse_generic_array<N: ArrayLength>( input: &mut I, ) -> Result<GenericArray<Self, N>>
Parse a
GenericArray of Self. Customisable for optimisations.Source§impl<T: ?Sized> PartialEq for ObjectMarker<T>
impl<T: ?Sized> PartialEq for ObjectMarker<T>
Source§impl<T: ?Sized> PartialOrd for ObjectMarker<T>
impl<T: ?Sized> PartialOrd for ObjectMarker<T>
Source§impl<T: ?Sized> ToOutput for ObjectMarker<T>
impl<T: ?Sized> ToOutput for ObjectMarker<T>
Source§fn to_output(&self, output: &mut (impl ?Sized + Output))
fn to_output(&self, output: &mut (impl ?Sized + Output))
Provide object’s byte representation to an
Output.Source§fn mangle_hash(&self) -> Hash
fn mangle_hash(&self) -> Hash
“Mangle hash” of the object. This is used to introduce runtime distinction between
data-identical objects similarly to compile-time
Tagged::HASH.Source§fn output<T: FromOutput<Output: Default>>(&self) -> T
fn output<T: FromOutput<Output: Default>>(&self) -> T
Source§impl<T: ?Sized> Topological for ObjectMarker<T>
impl<T: ?Sized> Topological for ObjectMarker<T>
Source§fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
fn traverse(&self, visitor: &mut (impl ?Sized + PointVisitor))
List what objects this one refers to. Read more
Source§fn byte_node(&self) -> ByteNodewhere
Self: ToOutput,
fn byte_node(&self) -> ByteNodewhere
Self: ToOutput,
Useful in
Resolve::resolve and FetchBytes::fetch_bytes.Source§fn to_resolve(&self) -> Arc<dyn Resolve> ⓘ
fn to_resolve(&self) -> Arc<dyn Resolve> ⓘ
Reconstruct a
Resolve usable for Parse::parseing this object based on references.Auto Trait Implementations§
impl<T> Freeze for ObjectMarker<T>
impl<T> RefUnwindSafe for ObjectMarker<T>
impl<T> Send for ObjectMarker<T>
impl<T> Sync for ObjectMarker<T>
impl<T> Unpin for ObjectMarker<T>
impl<T> UnsafeUnpin for ObjectMarker<T>
impl<T> UnwindSafe for ObjectMarker<T>
Blanket Implementations§
Source§impl<T> AsAny for T
impl<T> AsAny for T
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> Component for T
Source§impl<T> DefaultHash for T
impl<T> DefaultHash for T
fn default_hash() -> Hash
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T, U> EquivalentFor<U> for Twhere
U: Equivalent<T>,
impl<T, U> EquivalentFor<U> for Twhere
U: Equivalent<T>,
fn equivalent_for(self) -> U
Source§impl<T, Extra> ExtraFor<T> for Extra
impl<T, Extra> ExtraFor<T> for Extra
Source§impl<T, E> ExtraNoneOutput<E> for Twhere
T: OptionOutput,
impl<T, E> ExtraNoneOutput<E> for Twhere
T: OptionOutput,
fn extra_some_output(&self, output: &mut (impl Output + ?Sized))
fn extra_none_output(_: &E, output: &mut (impl Output + ?Sized))
fn extra_option_output( option: &ExtraOption<T, E>, output: &mut (impl Output + ?Sized), )
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.impl<T, Extra> Inline<Extra> for T
impl<T, Extra> Object<Extra> for T
Source§impl<T> OptionOutput for Twhere
T: ToOutput + TaggedOption,
impl<T> OptionOutput for Twhere
T: ToOutput + TaggedOption,
Source§fn to_option_output(option: Option<&T>, output: &mut (impl Output + ?Sized))
fn to_option_output(option: Option<&T>, output: &mut (impl Output + ?Sized))
Provide
ToOutput::to_output for Option<Self>.Source§impl<T, B, I> OptionParse<I> for Twhere
T: Parse<I> + MaybeHasNiche,
<T as MaybeHasNiche>::MnArray: MnArray,
<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche: Niche<NeedsTag = B>,
B: OptionParseBit<T, I>,
I: ParseInput,
impl<T, B, I> OptionParse<I> for Twhere
T: Parse<I> + MaybeHasNiche,
<T as MaybeHasNiche>::MnArray: MnArray,
<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche: Niche<NeedsTag = B>,
B: OptionParseBit<T, I>,
I: ParseInput,
Source§fn parse_option(input: I) -> Result<Option<T>, Error>
fn parse_option(input: I) -> Result<Option<T>, Error>
Provide
Parse::parse for Option<Self>.Source§impl<T, B, I> OptionParseInline<I> for Twhere
T: ParseInline<I> + MaybeHasNiche,
<T as MaybeHasNiche>::MnArray: MnArray,
<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche: Niche<NeedsTag = B>,
B: OptionParseBitInline<T, I>,
I: ParseInput,
impl<T, B, I> OptionParseInline<I> for Twhere
T: ParseInline<I> + MaybeHasNiche,
<T as MaybeHasNiche>::MnArray: MnArray,
<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche: Niche<NeedsTag = B>,
B: OptionParseBitInline<T, I>,
I: ParseInput,
Source§fn parse_option_inline(input: &mut I) -> Result<Option<T>, Error>
fn parse_option_inline(input: &mut I) -> Result<Option<T>, Error>
Provide
ParseInline::parse_inline for Option<Self>.Source§impl<T> ParseSlice for T
impl<T> ParseSlice for T
Source§impl<T, Extra> ParseSliceExtra<Extra> for T
impl<T, Extra> ParseSliceExtra<Extra> for T
fn parse_slice_extra( slice: &[u8], resolve: &Arc<dyn Resolve>, extra: &Extra, ) -> Result<Self>
fn reparse_extra(&self, extra: &Extra) -> Result<Self>where
Self: Traversible,
Source§impl<T> ParseSliceRefless for Twhere
T: for<'a> Parse<ReflessInput<'a>>,
impl<T> ParseSliceRefless for Twhere
T: for<'a> Parse<ReflessInput<'a>>,
fn parse_slice_refless(slice: &[u8]) -> Result<Self>
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.impl<T> ReflessInline for T
impl<T> ReflessObject for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.