Skip to main content

Module serialization

Module serialization 

Source
Expand description

Serialization: Lemma values ↔ JSON.

Input (deserialization): JSON → string fact values for evaluation.

  • from_json parses JSON and converts each value to a string for ExecutionPlan::with_values().
  • null values are skipped (treated as “fact not provided”).

Output (serialization): Lemma evaluation results → JSON.

  • literal_value_to_json converts a LiteralValue to (serde_json::Value, Option<unit>) for use in API/CLI responses.

§Example (input)

use lemma::serialization::from_json;

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

§Example (output)

use lemma::serialization::literal_value_to_json;

let (json_value, unit) = literal_value_to_json(&literal_value);

Functions§

deserialize_fact_path_set
Deserializes array of FactPath structures to HashSet.
deserialize_resolved_fact_value_map
Deserializes from array of [FactPath, FactData] tuples, preserving order.
from_json
Parse JSON to string values for use with ExecutionPlan::with_values().
literal_value_to_json
Convert a Lemma literal value to a JSON value and optional unit string.
serialize_fact_path_set
Serializes HashSet as array of FactPath structures.
serialize_resolved_fact_value_map
Serializes IndexMap<FactPath, FactData> as array of [FactPath, FactData] tuples.