OptionDupedExt

Trait OptionDupedExt 

Source
pub trait OptionDupedExt {
    type Item;

    // Required method
    fn duped(self) -> Option<Self::Item>
       where Self::Item: Dupe;
}
Expand description

Extension traits on Option where it holds a ref.

Required Associated Types§

Required Methods§

Source

fn duped(self) -> Option<Self::Item>
where Self::Item: Dupe,

Like cloned, but with a Dupe constraint.

use std::rc::Rc;

use dupe::OptionDupedExt;
let rc = Rc::new("test");
assert_eq!(Some(&rc).duped(), Some(rc));
assert_eq!(None::<&Rc<String>>.duped(), None);

Implementations on Foreign Types§

Source§

impl<'a, T> OptionDupedExt for Option<&'a T>

Source§

type Item = T

Source§

fn duped(self) -> Option<T>
where T: Dupe,

Implementors§