[][src]Struct census::TrackedObject

pub struct TrackedObject<T> { /* fields omitted */ }

Your tracked object.

A tracked object contains reference counting logic and an Arc to your object.

It is cloneable but calling clone will not clone your internal object.

Your object cannot be mutated. You can borrow it using the Deref interface.

Methods

impl<T> TrackedObject<T>
[src]

pub fn map<F>(&self, f: F) -> TrackedObject<T> where
    F: FnOnce(&T) -> T, 
[src]

Creates a new object from an existing one.

The new object will be registered in your original object's inventory.

let inventory = Inventory::new();

let seven = inventory.track(7);
let fourteen = seven.map(|i| i * 2);
assert_eq!(*fourteen, 14);

let living_instances = inventory.list();
assert_eq!(living_instances.len(), 2);

Trait Implementations

impl<T> AsRef<T> for TrackedObject<T>
[src]

impl<T> Clone for TrackedObject<T>
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T> Drop for TrackedObject<T>
[src]

impl<T> Deref for TrackedObject<T>
[src]

type Target = T

The resulting type after dereferencing.

impl<T> Borrow<T> for TrackedObject<T>
[src]

Auto Trait Implementations

impl<T> Send for TrackedObject<T> where
    T: Send + Sync

impl<T> Sync for TrackedObject<T> where
    T: Send + Sync

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.