Function std::rc::try_unwrap [] [src]

pub fn try_unwrap<T>(rc: Rc<T>) -> Result<T, Rc<T>>
Unstable

Unwraps the contained value if the Rc<T>`Rc` is unique.

If the Rc<T>`Rcis not unique, an` is not unique, an Err`Erris returned with the same` is returned with the same Rc<T>`Rc`.

Examples

#![feature(alloc)] fn main() { use std::rc::{self, Rc}; let x = Rc::new(3); assert_eq!(rc::try_unwrap(x), Ok(3)); let x = Rc::new(4); let _y = x.clone(); assert_eq!(rc::try_unwrap(x), Err(Rc::new(4))); }
use std::rc::{self, Rc};

let x = Rc::new(3);
assert_eq!(rc::try_unwrap(x), Ok(3));

let x = Rc::new(4);
let _y = x.clone();
assert_eq!(rc::try_unwrap(x), Err(Rc::new(4)));