1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use casper_types::Key;
use super::op::Op;
use crate::shared::{additive_map::AdditiveMap, transform::Transform};
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct ExecutionEffect {
pub ops: AdditiveMap<Key, Op>,
pub transforms: AdditiveMap<Key, Transform>,
}
impl ExecutionEffect {
pub fn new(ops: AdditiveMap<Key, Op>, transforms: AdditiveMap<Key, Transform>) -> Self {
ExecutionEffect { ops, transforms }
}
}
impl From<&ExecutionEffect> for casper_types::ExecutionEffect {
fn from(effect: &ExecutionEffect) -> Self {
casper_types::ExecutionEffect {
operations: effect
.ops
.iter()
.map(|(key, op)| casper_types::Operation {
key: key.to_formatted_string(),
kind: op.into(),
})
.collect(),
transforms: effect
.transforms
.iter()
.map(|(key, transform)| casper_types::TransformEntry {
key: key.to_formatted_string(),
transform: transform.into(),
})
.collect(),
}
}
}