Trait dupe::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>

§

type Item = T

source§

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

Implementors§