Trait im::shared::Shared [] [src]

pub trait Shared<A> {
    fn shared(self) -> Arc<A>;
}

Automatic Arc wrapping

The Shared trait provides automatic wrapping for things which take Arcs, meaning that anything which takes an argument of type Shared<A> will accept either an A or an Arc<A>.

Because everything stored in im's persistent data structures is wrapped in Arcs, Shared makes you have to worry less about whether what you've got is an A or an Arc<A> or a reference to such - the compiler will just figure it out for you, which is as it should be.

Required Methods

Implementations on Foreign Types

impl<'a, A> Shared<A> for &'a A where
    A: Clone
[src]

[src]

impl<A> Shared<A> for Arc<A>
[src]

[src]

impl<'a, A> Shared<A> for &'a Arc<A>
[src]

[src]

Implementors