[−][src]Struct adapton::engine::Art
Articulations: for incrementally-changing data/computation.
-
Introduced by (produced by)
thunk
,cell
andput
-
Eliminated by (consumed by)
force
(andset
).
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]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,