Struct census::TrackedObject[][src]

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]

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> Drop for TrackedObject<T>
[src]

Executes the destructor for this type. Read more

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

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

The resulting type after dereferencing.

Dereferences the value.

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

Performs the conversion.

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

Immutably borrows from an owned value. Read more

Auto Trait Implementations

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

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