fluss/row/compacted/
compacted_key_writer.rs1use crate::row::compacted::compacted_row_writer::CompactedRowWriter;
19use bytes::Bytes;
20
21use crate::error::Result;
22use crate::metadata::DataType;
23use crate::row::Decimal;
24use crate::row::binary::{BinaryRowFormat, BinaryWriter, ValueWriter};
25use delegate::delegate;
26
27pub struct CompactedKeyWriter {
31 delegate: CompactedRowWriter,
32}
33
34impl Default for CompactedKeyWriter {
35 fn default() -> Self {
36 Self::new()
37 }
38}
39
40impl CompactedKeyWriter {
41 pub fn new() -> CompactedKeyWriter {
42 CompactedKeyWriter {
43 delegate: CompactedRowWriter::new(0),
46 }
47 }
48
49 pub fn create_value_writer(field_type: &DataType) -> Result<ValueWriter> {
50 ValueWriter::create_value_writer(field_type, Some(&BinaryRowFormat::Compacted))
51 }
52
53 delegate! {
54 to self.delegate {
55 pub fn reset(&mut self);
56
57 #[allow(dead_code)]
58 pub fn position(&self) -> usize;
59
60 #[allow(dead_code)]
61 pub fn buffer(&self) -> &[u8];
62
63 pub fn to_bytes(&self) -> Bytes;
64 }
65 }
66}
67
68impl BinaryWriter for CompactedKeyWriter {
69 delegate! {
70 to self.delegate {
71 fn reset(&mut self);
72
73 fn set_null_at(&mut self, pos: usize);
74
75 fn write_boolean(&mut self, value: bool);
76
77 fn write_byte(&mut self, value: u8);
78
79 fn write_binary(&mut self, bytes: &[u8], length: usize);
80
81 fn write_bytes(&mut self, value: &[u8]);
82
83 fn write_char(&mut self, value: &str, _length: usize);
84
85 fn write_string(&mut self, value: &str);
86
87 fn write_short(&mut self, value: i16);
88
89 fn write_int(&mut self, value: i32);
90
91 fn write_long(&mut self, value: i64);
92
93 fn write_float(&mut self, value: f32);
94
95 fn write_double(&mut self, value: f64);
96
97 fn write_decimal(&mut self, value: &Decimal, precision: u32);
98
99 fn write_time(&mut self, value: i32, precision: u32);
100
101 fn write_timestamp_ntz(&mut self, value: &crate::row::datum::TimestampNtz, precision: u32);
102
103 fn write_timestamp_ltz(&mut self, value: &crate::row::datum::TimestampLtz, precision: u32);
104 }
105 }
106
107 fn complete(&mut self) {
108 }
110}