pub trait DiscreteSteps<Delta>: Clone {
// Required methods
fn delta() -> Delta;
fn steps_between(start: &Self, end: &Self) -> Option<Delta>;
fn forward_checked(start: Self, delta: Delta) -> Option<Self>;
fn backward_checked(start: Self, delta: Delta) -> Option<Self>;
// Provided methods
fn forward(start: Self, delta: Delta) -> Self { ... }
fn backward(start: Self, delta: Delta) -> Self { ... }
fn forward_delta_checked(start: Self) -> Option<Self> { ... }
fn backward_delta_checked(start: Self) -> Option<Self> { ... }
fn forward_delta(start: Self) -> Self { ... }
fn backward_delta(start: Self) -> Self { ... }
}
Required Methods§
fn delta() -> Delta
fn steps_between(start: &Self, end: &Self) -> Option<Delta>
fn forward_checked(start: Self, delta: Delta) -> Option<Self>
fn backward_checked(start: Self, delta: Delta) -> Option<Self>
Provided Methods§
fn forward_delta_checked(start: Self) -> Option<Self>
fn backward_delta_checked(start: Self) -> Option<Self>
fn forward_delta(start: Self) -> Self
fn backward_delta(start: Self) -> Self
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.