mysql_binlog_connector_rust/column/json/
json_formatter.rs1use crate::column::column_type::ColumnType;
2
3pub trait JsonFormatter {
5 fn begin_object(&mut self, num_elements: u32);
6
7 fn begin_array(&mut self, num_elements: u32);
8
9 fn end_object(&mut self);
10
11 fn end_array(&mut self);
12
13 fn name(&mut self, name: &str);
14
15 fn value_string(&mut self, value: &str);
16
17 fn value_int(&mut self, value: i32);
18
19 fn value_long(&mut self, value: i64);
20
21 fn value_double(&mut self, value: f64);
22
23 fn value_big_int(&mut self, value: i128);
24
25 fn value_decimal(&mut self, value: &str);
26
27 fn value_bool(&mut self, value: bool);
28
29 fn value_null(&mut self);
30
31 fn value_year(&mut self, year: i32);
32
33 fn value_date(&mut self, year: i32, month: i32, day: i32);
34
35 #[allow(clippy::too_many_arguments)]
36 fn value_datetime(
37 &mut self,
38 year: i32,
39 month: i32,
40 day: i32,
41 hour: i32,
42 min: i32,
43 sec: i32,
44 micro_seconds: i32,
45 );
46
47 fn value_time(&mut self, hour: i32, min: i32, sec: i32, micro_seconds: i32);
48
49 fn value_timestamp(&mut self, seconds_past_epoch: i64, micro_seconds: i32);
50
51 fn value_opaque(&mut self, column_type: &ColumnType, value: &[u8]);
52
53 fn next_entry(&mut self);
54}