Enum Optional

Source
pub enum Optional<T> {
    Set(T),
    Unset(T),
}
Expand description

A protobuf value from a field that may not be set.

This can be pattern matched with match or if let to determine if the field is set and access the field data.

Two Optionals are equal if they match both presence and the field values.

Variants§

§

Set(T)

The field is set; it is present in the serialized message.

  • For an _opt() accessor, this contains a View<impl Proxied>.
  • For a _mut() accessor, this contains a [PresentField] that can be used to access the current value, convert to Mut, clear presence, or set a new value.
§

Unset(T)

The field is unset; it is absent in the serialized message.

  • For an _opt() accessor, this contains a View<impl Proxied> with the default value.
  • For a _mut() accessor, this contains an [AbsentField] that can be used to access the default or set a new value.

Implementations§

Source§

impl<T> Optional<T>

Source

pub fn into_inner(self) -> T

Gets the field value, ignoring whether it was set or not.

Source

pub fn new(val: T, is_set: bool) -> Self

Constructs an Optional<T> with a T value and presence bit.

Source

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

Converts into an Option of the set value, ignoring any unset value.

Source

pub fn is_set(&self) -> bool

Returns if the field is set.

Source

pub fn is_unset(&self) -> bool

Returns if the field is unset.

Trait Implementations§

Source§

impl<T: Clone> Clone for Optional<T>

Source§

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

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<T: Debug> Debug for Optional<T>

Source§

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

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

impl<T> From<Optional<T>> for Option<T>

Source§

fn from(x: Optional<T>) -> Option<T>

Converts to this type from the input type.
Source§

impl<T: PartialEq> PartialEq for Optional<T>

Source§

fn eq(&self, other: &Optional<T>) -> 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<T: Copy> Copy for Optional<T>

Source§

impl<T: Eq> Eq for Optional<T>

Source§

impl<T> StructuralPartialEq for Optional<T>

Auto Trait Implementations§

§

impl<T> Freeze for Optional<T>
where T: Freeze,

§

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

§

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

§

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

§

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

§

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

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