# Crate delta_inc

## Traits

A trait capturing the notion of a type where a delta can be computed between two of its items. For example, given `a1=[0,1,2]` and `a2=[1,1,2]`, we could compute a delta `d` such that `a1.transform_into(d)` returns `a2`. Observe that the delta has an orientation which (implicitly) means it goes from this item to the other,
A trait capturing the essence of an incremental computation from `self` to some item `T`. This is similar to the `Into` trait, but with the ability to work with deltas. To understand this, consider the following:
A trait describing something which can be transformed by applying a delta. For example, an array `[0,1,2]` can be transformed into another `[3,1,2]` by applying a delta which assigns element `0` to `3`. This trait describes the functional case, where the receiver is not modified. Furthermore, this trait allows for the possibility that the transformation may not succeed.
A trait describing something which can be transformed in place by applying a delta. For example, an array `[0,1,2]` can be transformed into another `[3,1,2]` by applying a delta which assigns element `0` to `3`. This trait describes the imperatice case where the receiver is modified in place. Furthermore, this trait allows for the possibility that an error is returned.
A trait describing something which can be transformed in place by applying a delta. For example, an array `[0,1,2]` can be transformed into another `[3,1,2]` by applying a delta which assigns element `0` to `3`. This trait describes the imperative case where the receiver is modified in place.
A trait describing something which can be transformed by applying a delta. For example, an array `[0,1,2]` can be transformed into another `[3,1,2]` by applying a delta which assigns element `0` to `3`. This trait describes the functional case, where the receiver is not modified.