harmos_domain/operations/storage/
write_objects.rs1use super::IO_POLICY;
22use crate::Identifier;
23use crate::MemorySize;
24use crate::model::storage::codec::{Id, Optional, product};
25use crate::model::storage::{DataBatch, WriteCompletion, WriteReceipt};
26use crate::operations::{ReplaySafety, Visibility};
27
28product!(WriteObjects {
33 scope: Optional<Id> => 1,
34});
35
36crate::declare!(WriteObjects {
37 id: "storage.write_objects",
38 version: 1,
39 policy: IO_POLICY,
40 response: WriteCompletion,
41 input: DataBatch,
42 output: WriteReceipt,
43 visibility: Visibility::Shared,
44 replay: ReplaySafety::Unknown,
45 grpc: ("harmos.storage.v1", "Storage", "WriteObjects"),
46});
47
48#[derive(Clone, Debug, PartialEq, Eq)]
54pub struct WriteObjects {
55 pub scope: Option<Identifier>,
56}
57
58impl MemorySize for WriteObjects {
65 fn memory_size(&self) -> usize {
66 std::mem::size_of::<Self>().saturating_add(self.scope.memory_size().saturating_sub(std::mem::size_of_val(&self.scope)))
67 }
68}
69
70