MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / write

Method write

nodedb-query/src/expr/codec.rs:19–99  ·  view source on GitHub ↗
(&self, writer: &mut W)

Source from the content-addressed store, hash-verified

17
18impl zerompk::ToMessagePack for SqlExpr {
19 fn write<W: zerompk::Write>(&self, writer: &mut W) -> zerompk::Result<()> {
20 match self {
21 SqlExpr::Column(s) => {
22 writer.write_array_len(2)?;
23 writer.write_u8(0)?;
24 writer.write_string(s)
25 }
26 SqlExpr::Literal(v) => {
27 writer.write_array_len(2)?;
28 writer.write_u8(1)?;
29 v.write(writer)
30 }
31 SqlExpr::BinaryOp { left, op, right } => {
32 writer.write_array_len(4)?;
33 writer.write_u8(2)?;
34 left.write(writer)?;
35 op.write(writer)?;
36 right.write(writer)
37 }
38 SqlExpr::Negate(inner) => {
39 writer.write_array_len(2)?;
40 writer.write_u8(3)?;
41 inner.write(writer)
42 }
43 SqlExpr::Function { name, args } => {
44 writer.write_array_len(3)?;
45 writer.write_u8(4)?;
46 writer.write_string(name)?;
47 args.write(writer)
48 }
49 SqlExpr::Cast { expr, to_type } => {
50 writer.write_array_len(3)?;
51 writer.write_u8(5)?;
52 expr.write(writer)?;
53 to_type.write(writer)
54 }
55 SqlExpr::Case {
56 operand,
57 when_thens,
58 else_expr,
59 } => {
60 writer.write_array_len(4)?;
61 writer.write_u8(6)?;
62 operand.write(writer)?;
63 writer.write_array_len(when_thens.len())?;
64 for (cond, val) in when_thens {
65 writer.write_array_len(2)?;
66 cond.write(writer)?;
67 val.write(writer)?;
68 }
69 else_expr.write(writer)
70 }
71 SqlExpr::Coalesce(exprs) => {
72 writer.write_array_len(2)?;
73 writer.write_u8(7)?;
74 exprs.write(writer)
75 }
76 SqlExpr::NullIf(e1, e2) => {

Callers 2

hash_field_bytesFunction · 0.45
hash_field_bytes_withFunction · 0.45

Calls 1

lenMethod · 0.45

Tested by

no test coverage detected