Trait stateright::Rewrite

source ·
pub trait Rewrite<R> {
    // Required method
    fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self;
}
Expand description

Implementations can rewrite their instances of the “rewritten” type R based on a specified RewritePlan.

This is used for symmetry reduction when a Model::State implements Representative. See the latter docs for an example.

Required Methods§

source

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

Generates a corresponding instance with values revised based on a particular RewritePlan.

Implementations on Foreign Types§

source§

impl<R> Rewrite<R> for i16

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, V> Rewrite<R> for Vec<V>where V: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for f64

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, T> Rewrite<R> for Option<T>where T: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for u64

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for char

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for ()

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for f32

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for u32

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for usize

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, K, V> Rewrite<R> for BTreeMap<K, V>where K: Ord + Rewrite<R>, V: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R, T0, T1> Rewrite<R> for (T0, T1)where T0: Rewrite<R>, T1: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for u16

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, V> Rewrite<R> for VecDeque<V>where V: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for i32

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for String

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for &'static str

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, V> Rewrite<R> for BTreeSet<V>where V: Ord + Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for i64

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for u8

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for isize

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R, T> Rewrite<R> for Arc<T>where T: Rewrite<R>,

source§

fn rewrite<S>(&self, plan: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for i8

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

source§

impl<R> Rewrite<R> for bool

source§

fn rewrite<S>(&self, _: &RewritePlan<R, S>) -> Self

Implementors§

source§

impl Rewrite<Id> for Id

source§

impl<Msg> Rewrite<Id> for Network<Msg>where Msg: Eq + Hash + Rewrite<Id>,

source§

impl<Msg> Rewrite<Id> for Envelope<Msg>where Msg: Rewrite<Id>,

source§

impl<R, K, V> Rewrite<R> for DenseNatMap<K, V>where K: From<usize> + Rewrite<R>, V: Rewrite<R>, usize: From<K>,

source§

impl<R, K, V> Rewrite<R> for HashableHashMap<K, V>where V: Eq + Hash + Rewrite<R>, K: Eq + Hash + Rewrite<R>,

source§

impl<R, RequestId, Value, InternalMsg> Rewrite<R> for WORegisterMsg<RequestId, Value, InternalMsg>where InternalMsg: Rewrite<R>, RequestId: Clone, Value: Rewrite<R>,

source§

impl<R, ServerState, RequestId> Rewrite<R> for WORegisterActorState<ServerState, RequestId>where ServerState: Rewrite<R> + Clone, RequestId: Clone,

source§

impl<R, V> Rewrite<R> for HashableHashSet<V>where V: Eq + Hash + Rewrite<R>,

source§

impl<T> Rewrite<Id> for Timers<T>where T: Eq + Hash + Clone,