1use reifydb_type::value::row_number::RowNumber;
5use serde::{Deserialize, Serialize};
6
7use crate::encoded::{row::EncodedRow, shape::RowShape};
8
9#[derive(Debug, Clone)]
10pub struct Row {
11 pub number: RowNumber,
12 pub encoded: EncodedRow,
13 pub shape: RowShape,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub struct RowTtl {
19 pub duration_nanos: u64,
21 pub anchor: RowTtlAnchor,
23 pub cleanup_mode: RowTtlCleanupMode,
25}
26
27#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
29pub enum RowTtlAnchor {
30 #[default]
32 Created,
33
34 Updated,
36}
37
38#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
40pub enum RowTtlCleanupMode {
41 Delete,
43
44 Drop,
46}