pub struct Flag(_);
Expand description
Marker type equivalent to Option<()>
for use in attribute parsing.
Implementations
Methods from Deref<Target = Option<()>>
sourcepub fn is_some_and(&self, f: impl FnOnce(&T) -> bool) -> bool
🔬This is a nightly-only experimental API. (is_some_with
)
pub fn is_some_and(&self, f: impl FnOnce(&T) -> bool) -> bool
is_some_with
)Returns true
if the option is a Some
and the value inside of it matches a predicate.
Examples
#![feature(is_some_with)]
let x: Option<u32> = Some(2);
assert_eq!(x.is_some_and(|&x| x > 1), true);
let x: Option<u32> = Some(0);
assert_eq!(x.is_some_and(|&x| x > 1), false);
let x: Option<u32> = None;
assert_eq!(x.is_some_and(|&x| x > 1), false);
1.0.0 · sourcepub fn as_ref(&self) -> Option<&T>
pub fn as_ref(&self) -> Option<&T>
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:?}");
1.40.0 · sourcepub fn as_deref(&self) -> Option<&<T as Deref>::Target>where
T: Deref,
pub fn as_deref(&self) -> Option<&<T as Deref>::Target>where
T: Deref,
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);
1.0.0 · sourcepub fn iter(&self) -> Iter<'_, T>
pub fn iter(&self) -> Iter<'_, T>
Returns an iterator over the possibly contained value.
Examples
let x = Some(4);
assert_eq!(x.iter().next(), Some(&4));
let x: Option<u32> = None;
assert_eq!(x.iter().next(), None);
sourcepub fn contains<U>(&self, x: &U) -> boolwhere
U: PartialEq<T>,
🔬This is a nightly-only experimental API. (option_result_contains
)
pub fn contains<U>(&self, x: &U) -> boolwhere
U: PartialEq<T>,
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);
Trait Implementations
sourceimpl FromMeta for Flag
impl FromMeta for Flag
sourcefn from_meta(mi: &Meta) -> Result<Flag, Error>
fn from_meta(mi: &Meta) -> Result<Flag, Error>
syn::Meta
by dispatching to the format-appropriate
trait function. This generally should not be overridden by implementers. Read morefn from_nested_meta(item: &NestedMeta) -> Result<Self, Error>
sourcefn from_word() -> Result<Self, Error>
fn from_word() -> Result<Self, Error>
sourcefn from_list(items: &[NestedMeta]) -> Result<Self, Error>
fn from_list(items: &[NestedMeta]) -> Result<Self, Error>
sourcefn from_value(value: &Lit) -> Result<Self, Error>
fn from_value(value: &Lit) -> Result<Self, Error>
foo = "bar"
or foo("bar")
.
This dispatches to the appropriate method based on the type of literal encountered,
and generally should not be overridden by implementers. Read more