kdleam/value

KDL 文書と汎用的な値の表現を相互に変換する。

Types

null、真偽値、整数、小数、文字列、配列、順序を持つ名前と値の列を表す。

pub type Value {
  Null
  Bool(Bool)
  Integer(Int)
  Float(Float)
  String(String)
  Array(List(Value))
  Object(List(#(String, Value)))
}

Constructors

  • Null
  • Bool(Bool)
  • Integer(Int)
  • Float(Float)
  • String(String)
  • Array(List(Value))
  • Object(List(#(String, Value)))

変換に失敗した理由を保持する。

pub type ValueError {
  ValueError(reason: ValueErrorReason)
}

Constructors

Value と KDL 文書の間で損失なく変換できない 7 種類の理由を表す。

pub type ValueErrorReason {
  TopLevelMustBeObject
  NestedCollectionInArray
  EmptyArrayCannotBeConverted
  PropertyCannotBeConverted
  MixedArgumentsAndChildren
  UnsupportedTypeAnnotation(String)
  NumberCannotBeConverted(String)
}

Constructors

  • TopLevelMustBeObject
  • NestedCollectionInArray
  • EmptyArrayCannotBeConverted
  • PropertyCannotBeConverted
  • MixedArgumentsAndChildren
  • UnsupportedTypeAnnotation(String)
  • NumberCannotBeConverted(String)

Values

pub fn kdl_document_to_value(
  doc: document.KdlDocument,
) -> Result(Value, ValueError)

文書を Object へ損失なく変換する。

プロパティ、未対応の型注釈、混在した構造、表現できない数値は Error にする。

pub fn value_to_kdl_document(
  value: Value,
) -> Result(document.KdlDocument, ValueError)

最上位の Object を文書へ損失なく変換し、表現できない値を Error にする。

Search Document