reifydb_client/domain/frame/
mod.rs1use std::ops::{Deref, Index};
5
6use serde::{Deserialize, Serialize};
7
8mod column;
9mod display;
10
11pub use column::FrameColumn;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct Frame {
15 #[serde(default)]
16 pub row_numbers: Vec<u64>,
17 #[serde(default)]
18 pub columns: Vec<FrameColumn>,
19}
20
21impl Deref for Frame {
22 type Target = [FrameColumn];
23
24 fn deref(&self) -> &Self::Target {
25 &self.columns
26 }
27}
28
29impl Index<usize> for Frame {
30 type Output = FrameColumn;
31
32 fn index(&self, index: usize) -> &Self::Output {
33 self.columns.index(index)
34 }
35}
36
37impl Frame {
38 pub fn new(row_numbers: Vec<u64>, columns: Vec<FrameColumn>) -> Self {
39 Self {
40 row_numbers,
41 columns,
42 }
43 }
44}