let registry = @data.Registry::new()
let unit = registry.decode("morphir-json", {
unit_id: "Pricing",
content: Text(json_source),
})
let checkpoint = registry.checkpoint(unit) // Binary(Bytes), never UTF-8 text
let restored = registry.decode("ion-binary", {
unit_id: "Pricing",
content: checkpoint,
})morphir_pipeline::{
profile: "morphir-pipeline-v1",
contract: "ir-unit",
unit_id: "Pricing",
ir: {
formatVersion: 4,
distribution: {
Library: {
packageName: "pricing",
dependencies: {},
def: {modules: {}}
}
}
},
metadata: [
{node_id: "value:Pricing.quote/body", data: hint::12.340d0}
]
}mise exec -- moon test -p finos/morphir-engine/data --target allmise exec -- moon run pkgs/morphir-engine/data/examples --target nativepub struct CheckpointInspection {
unit : IRUnit
original_format_version : FormatVersion
} derive(Debug)pub(all) struct IRUnit {
id : String
distribution : IRFile
metadata : Array[NodeMetadata]
annotations : Array[SymbolToken]
provenance : Array[Ion]
} derive(Debug)pub struct Registry {
// private fields
}fn Registry::checkpoint(self : Registry, unit : IRUnit, codec? : String) -> Content raise BoundaryErrorfn Registry::decode(self : Registry, id : String, source : SourceSnapshot) -> IRUnit raise BoundaryErrorfn Registry::inspect_checkpoint(self : Registry, codec : String, content : Content) -> CheckpointInspection raise BoundaryErrorfn Registry::open_checkpoint(self : Registry, codec : String, content : Content) -> IRUnit raise BoundaryErrorfn apply_rewrite(unit : IRUnit, rewrite : Rewrite, component : String, policy_name : String, policy : MetadataPolicy) -> IRUnit raisefn decode_model(format : ModelFormat, bytes : Bytes, unit_id? : String, limits? : Limits) -> IRUnit raise BoundaryErrorfn decode_model_tree(files : Map[String, Bytes], unit_id? : String, limits? : Limits) -> IRUnit raise BoundaryErrorfn inspect_model_source(format : ModelFormat, bytes : Bytes, unit_id? : String, limits? : Limits) -> CheckpointInspection raise BoundaryErrorfn inspect_model_tree(files : Map[String, Bytes], unit_id? : String, limits? : Limits) -> CheckpointInspection raise BoundaryErrorlet model_tree_file_limit : Int