harmos_domain/operations/storage/
write_streams.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!(WriteStreams {
33 scope: Optional<Id> => 1,
34});
35
36crate::declare!(WriteStreams {
37 id: "storage.write_streams",
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", "WriteStreams"),
46});
47
48#[derive(Clone, Debug, PartialEq, Eq)]
54pub struct WriteStreams {
55 pub scope: Option<Identifier>,
56}
57
58impl MemorySize for WriteStreams {
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