yumemi/gen/glance_util

glance の木を覗くための小道具。glance は定義を逆順に積むので、順を戻すのもここ。

Values

pub fn args(
  expression: glance.Expression,
) -> List(glance.Expression)

呼び出しの引数。ラベルは無視して順に返す。

pub fn ctor_module(
  expression: glance.Expression,
) -> option.Option(String)

構成子の module 修飾(article.Published -> “article”)。

pub fn ctor_name(
  expression: glance.Expression,
) -> option.Option(String)

構成子の名。module 修飾は落とす(q.Select -> “Select”)。

pub fn find_constant(
  module: glance.Module,
  name: String,
) -> option.Option(glance.Constant)
pub fn find_custom_type(
  module: glance.Module,
  name: String,
) -> option.Option(glance.CustomType)
pub fn find_function(
  module: glance.Module,
  name: String,
) -> option.Option(glance.Function)
pub fn find_type_alias(
  module: glance.Module,
  name: String,
) -> option.Option(glance.TypeAlias)
pub fn in_order(module: glance.Module) -> glance.Module

glance は Module の各リストへ先頭から積むので、宣言順に戻す。

pub fn int_value(
  expression: glance.Expression,
) -> option.Option(String)
pub fn labelled(
  expression: glance.Expression,
  label: String,
) -> option.Option(glance.Expression)

ラベル付き引数を名で引く。

pub fn list_elements(
  expression: glance.Expression,
) -> List(glance.Expression)
pub fn string_value(
  expression: glance.Expression,
) -> option.Option(String)
pub fn type_module(
  annotation: glance.Type,
) -> option.Option(String)
pub fn type_name(
  annotation: glance.Type,
) -> option.Option(String)

型注釈の名(q.Select(P) -> “Select”)。

pub fn type_params(annotation: glance.Type) -> List(glance.Type)
pub fn variant_field_label(
  field: glance.VariantField,
) -> option.Option(String)
pub fn variant_field_type(
  field: glance.VariantField,
) -> glance.Type
✨ Search Document