JevDSL.CUE (jev_dsl v0.1.0)

Copy Markdown View Source

Deterministic CUE schema exporter for compiled JevDSL.Contract catalogs.

Summary

Functions

Serializes a map of compiled JevDSL.Contract structs into a deterministic CUE schema string.

Functions

export(contracts_map)

@spec export(%{optional(atom() | String.t()) => JevDSL.Contract.t() | map()}) ::
  String.t()

Serializes a map of compiled JevDSL.Contract structs into a deterministic CUE schema string.

Examples

iex> q = %JevDSL.Question{name: :is_spam, type: :noul, instructions: "Spam?", criteria: %{}}
iex> prep = SystemOneSDK.prepare!([is_spam: SystemOneSDK.noul("Spam?")])
iex> contract = %JevDSL.Contract{name: :is_spam, questions: [q], prepared: prep}
iex> JevDSL.CUE.export(%{is_spam: contract})
"is_spam: {\n  is_spam: {\n    type: \"noul\"\n    instructions: \"Spam?\"\n    criteria: {}\n  }\n}"