#[repr(u8)]
pub enum ROption<T> { RSome(T), RNone, }
Expand description

Ffi-safe equivalent of the std::option::Option type.

Option is also ffi-safe for NonNull/NonZero types, and references.

Variants§

§

RSome(T)

§

RNone

Implementations§

source§

impl<T> ROption<T>

source

pub const fn as_ref(&self) -> ROption<&T>

Converts from ROption<T> to ROption<&T>.

Example

assert_eq!(RSome(10).as_ref(), RSome(&10));
assert_eq!(RNone::<u32>.as_ref(), RNone);
source

pub fn as_mut(&mut self) -> ROption<&mut T>

Converts from ROption<T> to ROption<&mut T>.

Example

assert_eq!(RSome(10).as_mut(), RSome(&mut 10));
assert_eq!(RNone::<u32>.as_mut(), RNone);
source

pub const fn is_rsome(&self) -> bool

Returns whether self is an RSome

Example

assert_eq!(RSome(10).is_rsome(), true);
assert_eq!(RNone::<u32>.is_rsome(), false);
source

pub const fn is_rnone(&self) -> bool

Returns whether self is an RNone

Example

assert_eq!(RSome(10).is_rnone(), false);
assert_eq!(RNone::<u32>.is_rnone(), true);
source

pub const fn is_some(&self) -> bool

Returns whether self is an RSome

Example

assert_eq!(RSome(10).is_some(), true);
assert_eq!(RNone::<u32>.is_some(), false);
source

pub const fn is_none(&self) -> bool

Returns whether self is an RNone

Example

assert_eq!(RSome(10).is_none(), false);
assert_eq!(RNone::<u32>.is_none(), true);
source

pub fn into_option(self) -> Option<T>

Converts from ROption<T> to Option<T>.

Example

assert_eq!(RSome(10).into_option(), Some(10));
assert_eq!(RNone::<u32>.into_option(), None);
source

pub fn expect(self, msg: &str) -> T

Unwraps the ROption<T>, returning its contents.

Panics

Panics if self is RNone, with the msg message.

Example

assert_eq!(RSome(100).expect("must contain a value"), 100);

This one panics:


let _ = RNone::<()>.expect("Oh noooo!");
source

pub fn unwrap(self) -> T

Unwraps the ROption, returning its contents.

Panics

Panics if self is RNone.

Example

assert_eq!(RSome(500).unwrap(), 500);

This one panics:


let _ = RNone::<()>.unwrap();
source

pub fn unwrap_or(self, def: T) -> T

Returns the value in the ROption<T>, or def if self is RNone.

Example

assert_eq!(RSome(10).unwrap_or(99), 10);
assert_eq!(RNone::<u32>.unwrap_or(99), 99);
source

pub fn unwrap_or_default(self) -> T
where T: Default,

Returns the value in the ROption<T>, or T::default() if self is RNone.

Example

assert_eq!(RSome(10).unwrap_or_default(), 10);
assert_eq!(RNone::<u32>.unwrap_or_default(), 0);
source

pub fn unwrap_or_else<F>(self, f: F) -> T
where F: FnOnce() -> T,

Returns the value in the ROption<T>, or the return value of calling f if self is RNone.

Example

assert_eq!(RSome(10).unwrap_or_else(|| 77), 10);
assert_eq!(RNone::<u32>.unwrap_or_else(|| 77), 77);
source

pub fn map<U, F>(self, f: F) -> ROption<U>
where F: FnOnce(T) -> U,

Converts the ROption<T> to a ROption<U>, transforming the contained value with the f closure.

Example

assert_eq!(RSome(10).map(|x| x * 2), RSome(20));
assert_eq!(RNone::<u32>.map(|x| x * 2), RNone);
source

pub fn map_or<U, F>(self, default: U, f: F) -> U
where F: FnOnce(T) -> U,

Transforms (and returns) the contained value with the f closure, or returns default if self is RNone.

Example

assert_eq!(RSome(10).map_or(77, |x| x * 2), 20);
assert_eq!(RNone::<u32>.map_or(77, |x| x * 2), 77);
source

pub fn map_or_else<U, D, F>(self, otherwise: D, f: F) -> U
where D: FnOnce() -> U, F: FnOnce(T) -> U,

Transforms (and returns) the contained value with the f closure, or returns otherwise() if self is RNone..

Example

assert_eq!(RSome(10).map_or_else(|| 77, |x| x * 2), 20);
assert_eq!(RNone::<u32>.map_or_else(|| 77, |x| x * 2), 77);
source

pub fn ok_or<E>(self, err: E) -> RResult<T, E>

Transforms the ROption<T> into a RResult<T, E>, mapping RSome(v) to ROk(v) and RNone to RErr(err).

Arguments passed to ok_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use ok_or_else, which is lazily evaluated.

Examples

let x = RSome("foo");
assert_eq!(x.ok_or(0), ROk("foo"));

let x: ROption<&str> = RNone;
assert_eq!(x.ok_or(0), RErr(0));
source

pub fn ok_or_else<E, F>(self, err: F) -> RResult<T, E>
where F: FnOnce() -> E,

Transforms the ROption<T> into a RResult<T, E>, mapping RSome(v) to ROk(v) and RNone to RErr(err()).

Examples

let x = RSome("foo");
assert_eq!(x.ok_or_else(|| 0), ROk("foo"));

let x: ROption<&str> = RNone;
assert_eq!(x.ok_or_else(|| 0), RErr(0));
source

pub fn filter<P>(self, predicate: P) -> Self
where P: FnOnce(&T) -> bool,

Returns self if predicate(&self) is true, otherwise returns RNone.

Example

assert_eq!(RSome(10).filter(|x| (x % 2) == 0), RSome(10));
assert_eq!(RSome(10).filter(|x| (x % 2) == 1), RNone);
assert_eq!(RNone::<u32>.filter(|_| true), RNone);
assert_eq!(RNone::<u32>.filter(|_| false), RNone);
source

pub fn and(self, optb: ROption<T>) -> ROption<T>

Returns self if it is RNone, otherwise returns optb.

Example

assert_eq!(RSome(10).and(RSome(20)), RSome(20));
assert_eq!(RSome(10).and(RNone), RNone);
assert_eq!(RNone::<u32>.and(RSome(20)), RNone);
assert_eq!(RNone::<u32>.and(RNone), RNone);
source

pub fn and_then<F, U>(self, f: F) -> ROption<U>
where F: FnOnce(T) -> ROption<U>,

Returns self if it is RNone, otherwise returns the result of calling f with the value in RSome.

Example

assert_eq!(RSome(10).and_then(|x| RSome(x * 2)), RSome(20));
assert_eq!(RSome(10).and_then(|_| RNone::<u32>), RNone);
assert_eq!(RNone::<u32>.and_then(|x| RSome(x * 2)), RNone);
assert_eq!(RNone::<u32>.and_then(|_| RNone::<u32>), RNone);
source

pub fn or(self, optb: ROption<T>) -> ROption<T>

Returns self if it contains a value, otherwise returns optb.

Example

assert_eq!(RSome(10).or(RSome(20)), RSome(10));
assert_eq!(RSome(10).or(RNone    ), RSome(10));
assert_eq!(RNone::<u32>.or(RSome(20)), RSome(20));
assert_eq!(RNone::<u32>.or(RNone    ), RNone);
source

pub fn or_else<F>(self, f: F) -> ROption<T>
where F: FnOnce() -> ROption<T>,

Returns self if it contains a value, otherwise calls optb and returns the value it evaluates to.

Example

assert_eq!(RSome(10).or_else(|| RSome(20)), RSome(10));
assert_eq!(RSome(10).or_else(|| RNone), RSome(10));
assert_eq!(RNone::<u32>.or_else(|| RSome(20)), RSome(20));
assert_eq!(RNone::<u32>.or_else(|| RNone), RNone);
source

pub fn xor(self, optb: ROption<T>) -> ROption<T>

Returns RNone if both values are RNone or RSome, otherwise returns the value that is anRSome.

Example

assert_eq!(RSome(10).xor(RSome(20)), RNone);
assert_eq!(RSome(10).xor(RNone), RSome(10));
assert_eq!(RNone::<u32>.xor(RSome(20)), RSome(20));
assert_eq!(RNone::<u32>.xor(RNone), RNone);
source

pub fn get_or_insert(&mut self, value: T) -> &mut T

Sets this ROption to RSome(value) if it was RNone. Returns a mutable reference to the inserted/pre-existing RSome.

Example

assert_eq!(RSome(10).get_or_insert(40), &mut 10);
assert_eq!(RSome(20).get_or_insert(55), &mut 20);
assert_eq!(RNone::<u32>.get_or_insert(77), &mut 77);
source

pub fn get_or_insert_with<F>(&mut self, func: F) -> &mut T
where F: FnOnce() -> T,

Sets this ROption to RSome(func()) if it was RNone. Returns a mutable reference to the inserted/pre-existing RSome.

Example

assert_eq!(RSome(10).get_or_insert_with(|| 40), &mut 10);
assert_eq!(RSome(20).get_or_insert_with(|| 55), &mut 20);
assert_eq!(RNone::<u32>.get_or_insert_with(|| 77), &mut 77);
source

pub fn take(&mut self) -> ROption<T>

Takes the value of self, replacing it with RNone

Example

let mut opt0 = RSome(10);
assert_eq!(opt0.take(), RSome(10));
assert_eq!(opt0, RNone);

let mut opt1 = RSome(20);
assert_eq!(opt1.take(), RSome(20));
assert_eq!(opt1, RNone);

let mut opt2 = RNone::<u32>;
assert_eq!(opt2.take(), RNone);
assert_eq!(opt2, RNone);
source

pub fn replace(&mut self, value: T) -> ROption<T>

Replaces the value of self with RSome(value).

Example

let mut opt0 = RSome(10);
assert_eq!(opt0.replace(55), RSome(10));
assert_eq!(opt0, RSome(55));

let mut opt1 = RSome(20);
assert_eq!(opt1.replace(88), RSome(20));
assert_eq!(opt1, RSome(88));

let mut opt2 = RNone::<u32>;
assert_eq!(opt2.replace(33), RNone);
assert_eq!(opt2, RSome(33));
source§

impl<T> ROption<&T>

source

pub fn cloned(self) -> ROption<T>
where T: Clone,

Converts an ROption<&T> to an ROption<T> by cloning its contents.

Example

assert_eq!(RSome(&vec![()]).cloned(), RSome(vec![()]));
assert_eq!(RNone::<&Vec<()>>.cloned(), RNone);
source

pub const fn copied(self) -> ROption<T>
where T: Copy,

Converts an ROption<&T> to an ROption<T> by Copy-ing its contents.

Example

assert_eq!(RSome(&7).copied(), RSome(7));
assert_eq!(RNone::<&u32>.copied(), RNone);
source§

impl<T> ROption<&mut T>

source

pub fn cloned(self) -> ROption<T>
where T: Clone,

Converts an ROption<&mut T> to a ROption<T> by cloning its contents.

Example

assert_eq!(RSome(&mut vec![()]).cloned(), RSome(vec![()]));
assert_eq!(RNone::<&mut Vec<()>>.cloned(), RNone);
source

pub fn copied(self) -> ROption<T>
where T: Copy,

Converts an ROption<&mut T> to a ROption<T> by Copy-ing its contents.

Example

assert_eq!(RSome(&mut 7).copied(), RSome(7));
assert_eq!(RNone::<&mut u32>.copied(), RNone);
source§

impl<T: Deref> ROption<T>

source

pub fn as_deref(&self) -> ROption<&T::Target>

Converts from ROption<T> (or &ROption<T>) to ROption<&T::Target>.

Leaves the original ROption in-place, creating a new one with a reference to the original one, additionally coercing the contents via Deref.

Examples

let x: ROption<RString> = RSome(RString::from("hey"));
assert_eq!(x.as_deref(), RSome("hey"));

let x: ROption<RString> = RNone;
assert_eq!(x.as_deref(), RNone);

Trait Implementations§

source§

impl<T: Clone> Clone for ROption<T>

source§

fn clone(&self) -> ROption<T>

Returns a copy 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<T: Debug> Debug for ROption<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Default for ROption<T>

The default value is RNone.

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'de, T> Deserialize<'de> for ROption<T>
where T: Deserialize<'de>,

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl<T> From<Option<T>> for ROption<T>

source§

fn from(this: Option<T>) -> ROption<T>

Converts to this type from the input type.
source§

impl<T> From<ROption<T>> for Option<T>

source§

fn from(this: ROption<T>) -> Option<T>

Converts to this type from the input type.
source§

impl<T> GetStaticEquivalent_ for ROption<T>
where T: __StableAbi,

§

type StaticEquivalent = _static_ROption<<T as GetStaticEquivalent_>::StaticEquivalent>

The 'static equivalent of Self
source§

impl<T: Hash> Hash for ROption<T>

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<T> IntoReprRust for ROption<T>

§

type ReprRust = Option<T>

The #[repr(Rust)] equivalent.
source§

fn into_rust(self) -> Self::ReprRust

Performs the conversion
source§

impl<T: Ord> Ord for ROption<T>

source§

fn cmp(&self, other: &ROption<T>) -> 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 + PartialOrd,

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

impl<T: PartialEq> PartialEq for ROption<T>

source§

fn eq(&self, other: &ROption<T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: PartialOrd> PartialOrd for ROption<T>

source§

fn partial_cmp(&self, other: &ROption<T>) -> 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

This method 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

This method 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

This method 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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<T> Serialize for ROption<T>
where T: Serialize,

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<T> StableAbi for ROption<T>
where T: __StableAbi,

§

type IsNonZeroType = False

Whether this type has a single invalid bit-pattern. Read more
source§

const LAYOUT: &'static TypeLayout = _

The layout of the type provided by implementors.
source§

const ABI_CONSTS: AbiConsts = _

const-equivalents of the associated types.
source§

impl<T: Copy> Copy for ROption<T>

source§

impl<T: Eq> Eq for ROption<T>

source§

impl<T> StructuralEq for ROption<T>

source§

impl<T> StructuralPartialEq for ROption<T>

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for ROption<T>
where T: RefUnwindSafe,

§

impl<T> Send for ROption<T>
where T: Send,

§

impl<T> Sync for ROption<T>
where T: Sync,

§

impl<T> Unpin for ROption<T>
where T: Unpin,

§

impl<T> UnwindSafe for ROption<T>
where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> AlignerFor<1> for T

§

type Aligner = AlignTo1<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<1024> for T

§

type Aligner = AlignTo1024<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<128> for T

§

type Aligner = AlignTo128<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<16> for T

§

type Aligner = AlignTo16<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<16384> for T

§

type Aligner = AlignTo16384<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<2> for T

§

type Aligner = AlignTo2<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<2048> for T

§

type Aligner = AlignTo2048<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<256> for T

§

type Aligner = AlignTo256<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<32> for T

§

type Aligner = AlignTo32<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<32768> for T

§

type Aligner = AlignTo32768<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<4> for T

§

type Aligner = AlignTo4<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<4096> for T

§

type Aligner = AlignTo4096<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<512> for T

§

type Aligner = AlignTo512<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<64> for T

§

type Aligner = AlignTo64<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<8> for T

§

type Aligner = AlignTo8<T>

The AlignTo* type which aligns Self to ALIGNMENT.
source§

impl<T> AlignerFor<8192> for T

§

type Aligner = AlignTo8192<T>

The AlignTo* type which aligns Self to ALIGNMENT.
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> 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<'a, T> RCowCompatibleRef<'a> for T
where T: Clone + 'a,

§

type RefC = &'a T

The (preferably) ffi-safe equivalent of &Self.
§

type ROwned = T

The owned version of Self::RefC.
source§

fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC

Converts a reference to an FFI-safe type
source§

fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T

Converts an FFI-safe type to a reference
source§

impl<S> ROExtAcc for S

source§

fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F

Gets a reference to a field, determined by offset. Read more
source§

fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F

Gets a muatble reference to a field, determined by offset. Read more
source§

fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F

Gets a const pointer to a field, the field is determined by offset. Read more
source§

fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F

Gets a mutable pointer to a field, determined by offset. Read more
source§

impl<S> ROExtOps<Aligned> for S

source§

fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F

Replaces a field (determined by offset) with value, returning the previous value of the field. Read more
source§

fn f_swap<F>(&mut self, offset: FieldOffset<S, F, Aligned>, right: &mut S)

Swaps a field (determined by offset) with the same field in right. Read more
source§

fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> F
where F: Copy,

Gets a copy of a field (determined by offset). The field is determined by offset. Read more
source§

impl<S> ROExtOps<Unaligned> for S

source§

fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F

Replaces a field (determined by offset) with value, returning the previous value of the field. Read more
source§

fn f_swap<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, right: &mut S)

Swaps a field (determined by offset) with the same field in right. Read more
source§

fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> F
where F: Copy,

Gets a copy of a field (determined by offset). The field is determined by offset. Read more
source§

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

source§

fn eq_id(&self, other: &Self) -> bool

Compares the address of self with the address of other. Read more
source§

fn piped<F, U>(self, f: F) -> U
where F: FnOnce(Self) -> U, Self: Sized,

Emulates the pipeline operator, allowing method syntax in more places. Read more
source§

fn piped_ref<'a, F, U>(&'a self, f: F) -> U
where F: FnOnce(&'a Self) -> U,

The same as piped except that the function takes &Self Useful for functions that take &Self instead of Self. Read more
source§

fn piped_mut<'a, F, U>(&'a mut self, f: F) -> U
where F: FnOnce(&'a mut Self) -> U,

The same as piped, except that the function takes &mut Self. Useful for functions that take &mut Self instead of Self.
source§

fn mutated<F>(self, f: F) -> Self
where F: FnOnce(&mut Self), Self: Sized,

Mutates self using a closure taking self by mutable reference, passing it along the method chain. Read more
source§

fn observe<F>(self, f: F) -> Self
where F: FnOnce(&Self), Self: Sized,

Observes the value of self, passing it along unmodified. Useful in long method chains. Read more
source§

fn into_<T>(self) -> T
where Self: Into<T>,

Performs a conversion with Into. using the turbofish .into_::<_>() syntax. Read more
source§

fn as_ref_<T>(&self) -> &T
where Self: AsRef<T>, T: ?Sized,

Performs a reference to reference conversion with AsRef, using the turbofish .as_ref_::<_>() syntax. Read more
source§

fn as_mut_<T>(&mut self) -> &mut T
where Self: AsMut<T>, T: ?Sized,

Performs a mutable reference to mutable reference conversion with AsMut, using the turbofish .as_mut_::<_>() syntax. Read more
source§

fn drop_(self)
where Self: Sized,

Drops self using method notation. Alternative to std::mem::drop. Read more
source§

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

§

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<This> TransmuteElement for This
where This: ?Sized,

source§

unsafe fn transmute_element<T>( self ) -> <Self as CanTransmuteElement<T>>::TransmutedPtr
where Self: CanTransmuteElement<T>,

Transmutes the element type of this pointer.. Read more
source§

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

§

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>,

§

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.
source§

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

§

type Type = T

This is always Self.
source§

fn into_type(self) -> Self::Type
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
source§

fn as_type(&self) -> &Self::Type

Converts a reference back to the original type.
source§

fn as_type_mut(&mut self) -> &mut Self::Type

Converts a mutable reference back to the original type.
source§

fn into_type_box(self: Box<Self>) -> Box<Self::Type>

Converts a box back to the original type.
source§

fn into_type_arc(this: Arc<Self>) -> Arc<Self::Type>

Converts an Arc back to the original type. Read more
source§

fn into_type_rc(this: Rc<Self>) -> Rc<Self::Type>

Converts an Rc back to the original type. Read more
source§

fn from_type(this: Self::Type) -> Self
where Self: Sized, Self::Type: Sized,

Converts a value back to the original type.
source§

fn from_type_ref(this: &Self::Type) -> &Self

Converts a reference back to the original type.
source§

fn from_type_mut(this: &mut Self::Type) -> &mut Self

Converts a mutable reference back to the original type.
source§

fn from_type_box(this: Box<Self::Type>) -> Box<Self>

Converts a box back to the original type.
source§

fn from_type_arc(this: Arc<Self::Type>) -> Arc<Self>

Converts an Arc back to the original type.
source§

fn from_type_rc(this: Rc<Self::Type>) -> Rc<Self>

Converts an Rc back to the original type.
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

impl<This> ValidTag_Bounds for This
where This: Debug + Clone + PartialEq,