kdleam/document
KDL 文書の型、構築関数、問い合わせ関数を提供する。
Types
引数または名前付きプロパティである。
pub type KdlEntry {
KdlArgument(ty: option.Option(String), value: KdlValue)
KdlProperty(
key: String,
ty: option.Option(String),
value: KdlValue,
)
}
Constructors
-
KdlArgument(ty: option.Option(String), value: KdlValue) -
KdlProperty( key: String, ty: option.Option(String), value: KdlValue, )
型注釈、名前、順序を持つ項目列、任意の子ノード列である。
pub type KdlNode {
KdlNode(
ty: option.Option(String),
name: String,
entries: List(KdlEntry),
children: option.Option(List(KdlNode)),
)
}
Constructors
-
KdlNode( ty: option.Option(String), name: String, entries: List(KdlEntry), children: option.Option(List(KdlNode)), )
Values
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 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_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 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 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 を返す。