substreams_entity_change/
helpers.rs1use crate::change::ToField;
2use crate::pb::entity::entity_change::Operation;
3use crate::pb::entity::{EntityChange, EntityChanges};
4use std::str;
5
6impl EntityChanges {
7 pub fn push_change<V: AsRef<str>>(
8 &mut self,
9 entity: V,
10 id: V,
11 ordinal: u64,
12 operation: Operation,
13 ) -> &mut EntityChange {
14 let entity_change = EntityChange::new(entity, id, ordinal, operation);
15 self.entity_changes.push(entity_change);
16 return self.entity_changes.last_mut().unwrap();
17 }
18}
19
20impl EntityChange {
21 pub fn new<V: AsRef<str>>(
22 entity: V,
23 id: V,
24 ordinal: u64,
25 operation: Operation,
26 ) -> EntityChange {
27 #[allow(deprecated)]
28 EntityChange {
29 entity: entity.as_ref().to_string(),
30 id: id.as_ref().to_string(),
31 ordinal,
32 operation: operation as i32,
33 fields: vec![],
34 }
35 }
36
37 pub fn change<N: AsRef<str>, T: ToField>(&mut self, name: N, change: T) -> &mut EntityChange {
38 self.fields.push(change.to_field(name));
39 self
40 }
41}