Struct proc_macro_kwargs::parse::ExplicitOption [−][src]
pub struct ExplicitOption<T>(pub Option<T>);
Expand description
A version of Option
that is parsed with explicit Some(<inner>)
or None
syntax
This is as opposed to a regular Option
, which requires
no extra syntax and always parses to Some
(it’s intended for use with optional args)
Tuple Fields
0: Option<T>
Methods from Deref<Target = Option<T>>
🔬 This is a nightly-only experimental API. (option_result_contains
)
option_result_contains
)Returns true
if the option is a Some
value containing the given value.
Examples
#![feature(option_result_contains)] let x: Option<u32> = Some(2); assert_eq!(x.contains(&2), true); let x: Option<u32> = Some(3); assert_eq!(x.contains(&2), false); let x: Option<u32> = None; assert_eq!(x.contains(&2), false);
Converts from &Option<T>
to Option<&T>
.
Examples
Converts an Option<
String
>
into an Option<
usize
>
, preserving the original.
The map
method takes the self
argument by value, consuming the original,
so this technique uses as_ref
to first take an Option
to a reference
to the value inside the original.
let text: Option<String> = Some("Hello, world!".to_string()); // First, cast `Option<String>` to `Option<&String>` with `as_ref`, // then consume *that* with `map`, leaving `text` on the stack. let text_length: Option<usize> = text.as_ref().map(|s| s.len()); println!("still can print text: {:?}", text);
Converts from Option<T>
(or &Option<T>
) to Option<&T::Target>
.
Leaves the original Option in-place, creating a new one with a reference
to the original one, additionally coercing the contents via Deref
.
Examples
let x: Option<String> = Some("hey".to_owned()); assert_eq!(x.as_deref(), Some("hey")); let x: Option<String> = None; assert_eq!(x.as_deref(), None);
Trait Implementations
Performs the conversion.
Parse the argument to the macro
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl<T> RefUnwindSafe for ExplicitOption<T> where
T: RefUnwindSafe,
impl<T> Send for ExplicitOption<T> where
T: Send,
impl<T> Sync for ExplicitOption<T> where
T: Sync,
impl<T> Unpin for ExplicitOption<T> where
T: Unpin,
impl<T> UnwindSafe for ExplicitOption<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key
and return true
if they are equal.