MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / map_row

Function map_row

src/pglite/parse.rs:87–112  ·  view source on GitHub ↗
(
    row: &DataRowMessage,
    fields: &[FieldInfo],
    parsers: &ParserLookup,
    row_mode: Option<RowMode>,
)

Source from the content-addressed store, hash-verified

85}
86
87fn map_row(
88 row: &DataRowMessage,
89 fields: &[FieldInfo],
90 parsers: &ParserLookup,
91 row_mode: Option<RowMode>,
92) -> Value {
93 match row_mode {
94 Some(RowMode::Array) => {
95 let values: Vec<Value> = row
96 .fields
97 .iter()
98 .zip(fields.iter())
99 .map(|(value, field)| parse_cell(value.as_deref(), field.data_type_id, parsers))
100 .collect();
101 Value::Array(values)
102 }
103 _ => {
104 let mut map = serde_json::Map::with_capacity(fields.len());
105 for (value, field) in row.fields.iter().zip(fields.iter()) {
106 let parsed = parse_cell(value.as_deref(), field.data_type_id, parsers);
107 map.insert(field.name.clone(), parsed);
108 }
109 Value::Object(map)
110 }
111 }
112}
113
114fn parse_cell(value: Option<&str>, type_id: i32, parsers: &ParserLookup) -> Value {
115 match value {

Callers 1

parse_resultsFunction · 0.85

Calls 4

parse_cellFunction · 0.85
iterMethod · 0.80
lenMethod · 0.80
insertMethod · 0.80

Tested by

no test coverage detected