kdleam/document

KDL 文書の型、構築関数、問い合わせ関数を提供する。

Types

順序を持つノード列である。

pub type KdlDocument {
  KdlDocument(nodes: List(KdlNode))
}

Constructors

  • KdlDocument(nodes: List(KdlNode))

引数または名前付きプロパティである。

pub type KdlEntry {
  KdlArgument(ty: option.Option(String), value: KdlValue)
  KdlProperty(
    key: String,
    ty: option.Option(String),
    value: KdlValue,
  )
}

Constructors

型注釈、名前、順序を持つ項目列、任意の子ノード列である。

pub type KdlNode {
  KdlNode(
    ty: option.Option(String),
    name: String,
    entries: List(KdlEntry),
    children: option.Option(List(KdlNode)),
  )
}

Constructors

入力の生表現と、表現可能な整数・小数の値を保持する。

pub opaque type KdlNumber

文字列、数値、真偽値、null のいずれかである。

pub type KdlValue {
  KdlString(String)
  KdlNumberValue(KdlNumber)
  KdlBool(Bool)
  KdlNull
}

Constructors

  • KdlString(String)
  • KdlNumberValue(KdlNumber)
  • KdlBool(Bool)
  • KdlNull

Values

pub fn as_bool(value: KdlValue) -> option.Option(Bool)

真偽値を返し、値の種類が異なる場合は None を返す。

pub fn as_float(value: KdlValue) -> option.Option(Float)

表現可能な小数を返し、値の種類または表現範囲が合わない場合は None を返す。

pub fn as_int(value: KdlValue) -> option.Option(Int)

表現可能な整数を返し、値の種類または表現範囲が合わない場合は None を返す。

pub fn as_string(value: KdlValue) -> option.Option(String)

文字列値を返し、値の種類が異なる場合は None を返す。

pub fn bool_prop(
  node: KdlNode,
  key: String,
) -> option.Option(Bool)

指定したプロパティが真偽値なら返し、それ以外は None を返す。

pub fn children(node: KdlNode) -> option.Option(List(KdlNode))

子ノード列を返し、子ブロックが無い場合は None を返す。

pub fn entries(node: KdlNode) -> List(KdlEntry)

ノードの項目列を返す。

pub fn entry_ty(entry: KdlEntry) -> option.Option(String)

項目の型注釈を返し、無い場合は None を返す。

pub fn find_child(
  node: KdlNode,
  child_name: String,
) -> option.Option(KdlNode)

指定した名前に最初に一致する子ノードを返し、無い場合は None を返す。

pub fn find_children(
  node: KdlNode,
  child_name: String,
) -> List(KdlNode)

指定した名前に一致するすべての子ノードを順序どおり返す。

pub fn first_arg(node: KdlNode) -> option.Option(KdlValue)

最初の引数の値を返し、無い場合は None を返す。

pub fn first_node(doc: KdlDocument) -> option.Option(KdlNode)

先頭ノードを返し、空の文書では None を返す。

pub fn first_string_arg(node: KdlNode) -> option.Option(String)

最初の引数が文字列なら返し、それ以外は None を返す。

pub fn get(node: KdlNode, key: String) -> option.Option(KdlValue)

指定した名前に最初に一致するプロパティの値を返し、無い場合は None を返す。

pub fn int_prop(node: KdlNode, key: String) -> option.Option(Int)

指定したプロパティが表現可能な整数なら返し、それ以外は None を返す。

pub fn name(node: KdlNode) -> String

ノード名を返す。

pub fn new_document(nodes nodes: List(KdlNode)) -> KdlDocument

指定したノード列から文書を作る。

pub fn new_node(
  name name: String,
  entries entries: List(KdlEntry),
  children children: option.Option(List(KdlNode)),
  ty ty: option.Option(String),
) -> KdlNode

指定した名前、項目、子ノード、型注釈からノードを作る。

pub fn new_number(
  raw: String,
  as_int: option.Option(Int),
  as_float: option.Option(Float),
) -> Result(KdlNumber, Nil)

検証済みの KDL v2 数値表現と整合する数値の値から数値を作る。

数値表現は呼び出し側で妥当性を確認する。空文字列は失敗する。 整数値を指定する場合は、その整数を小数へ変換した値も指定する。 数値構文そのものの検証には kdleam.parse を使う。

pub fn nodes(doc: KdlDocument) -> List(KdlNode)

文書のノード列を返す。

pub fn raw_number(value: KdlValue) -> option.Option(String)

数値の生表現を返し、値の種類が異なる場合は None を返す。

pub fn string_child_values(
  node: KdlNode,
  child_name: String,
) -> List(String)

指定した名前の子ノードから、最初の引数が文字列である値だけを順序どおり返す。

pub fn string_prop(
  node: KdlNode,
  key: String,
) -> option.Option(String)

指定したプロパティが文字列なら返し、それ以外は None を返す。

pub fn ty(node: KdlNode) -> option.Option(String)

ノードの型注釈を返し、無い場合は None を返す。

pub fn value(entry: KdlEntry) -> KdlValue

引数またはプロパティの値を返す。

Search Document