Skip to main content

Module serialization

Module serialization 

Source
Expand description

Serialization module for converting external data formats to string values.

These functions convert data from external formats (JSON, MsgPack, Protobuf) into string values ready for use with ExecutionPlan::with_values().

  • null values are skipped (treated as “fact not provided”)
  • JSON numbers, booleans, arrays, objects are converted to their string representation

§Example

use lemma::serialization::from_json;

let json = br#"{"discount": 21, "config": {"key": "value"}, "name": null}"#;
let values = from_json(json, &execution_plan)?;
// discount -> "21"
// config -> "{\"key\":\"value\"}"
// name -> skipped (null)
let plan = execution_plan.with_values(values, &limits)?;

Functions§

deserialize_fact_path_set
Deserializes array of FactPath structures to HashSet.
deserialize_resolved_fact_value_map
Deserializes from array of [FactPath, FactData] tuples.
from_json
Parse JSON to string values for use with ExecutionPlan::with_values().
from_msgpack
Convert MsgPack values to string values for use with ExecutionPlan::with_values().
from_protobuf
Convert Protobuf values to string values for use with ExecutionPlan::with_values().
serialize_fact_path_set
Serializes HashSet as array of FactPath structures.
serialize_resolved_fact_value_map
Serializes HashMap<FactPath, FactData> as array of [FactPath, FactData] tuples.