[][src]Struct adapton::engine::Art

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

Articulations: for incrementally-changing data/computation.

  • Introduced by (produced by) thunk, cell and put

  • Eliminated by (consumed by) force (and set).

The term Art stands for two things here:

  • Adapton Reference / Thunk, and

  • Articulation, for naming and discretizing incrementally-changing data (and computations).

Each art has a unique identity, its Name. Because this identity, each art permits efficient (O(1) time) hashing and equality checks.

The concept of an art abstracts over whether the producer is eager (like a ref cell) or lazy (like a thunk). One uses force to inspect both eager and lazy arts. Consequently, code that consumes structures with arts need only ever use force (not two different functions, depending on whether the art is lazy or eager).

Trait Implementations

impl<T: Clone> Clone for Art<T>[src]

impl<T: Debug> Debug for Art<T>[src]

impl<T: Eq> Eq for Art<T>[src]

impl<T: Hash> Hash for Art<T>[src]

impl<T: PartialEq> PartialEq<Art<T>> for Art<T>[src]

impl<T> StructuralEq for Art<T>[src]

impl<T> StructuralPartialEq for Art<T>[src]

Auto Trait Implementations

impl<T> !RefUnwindSafe for Art<T>

impl<T> !Send for Art<T>

impl<T> !Sync for Art<T>

impl<T> Unpin for Art<T>

impl<T> !UnwindSafe for Art<T>

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.