yumemi/gen/emit/root

束6 ── src/gen/root/<service>.gleam。Service の root / actor / 手順書の器。 root は allow module の Entity と Args の key / path_key 型から決める。 Actor は主体が1つなら その型、複数か Anyone だけなら pub type Actor = allow.Actor (variant は gen/allow/<m> が持つ ── emit/allow)。

Values

pub fn actor_is_sum(subjects: List(model.Subject)) -> Bool

root の Actor が allow の Actor の別名になる形か。emit/allow が Actor の variant を集めるのに使う。

pub fn allow_path(service: model.Service) -> String

root が import する allow module の道。allow を import しない Service は module 名の _ 前。

pub fn carried(
  app: model.App,
  service: model.Service,
) -> List(#(String, String, String))

root に載せる入口の値(Carried)。

pub fn emit(
  app: model.App,
  hashes: hash.Hashes,
) -> List(types.File)
pub fn notes(app: model.App) -> List(stop.Note)
pub fn path_root(
  app: model.App,
  service: model.Service,
) -> option.Option(model.Entity)

口の path の導出が見る root。主体の行を root にする Service(OwnRoot)は path に鍵を持たない。

pub fn root_for(
  app: model.App,
  service: model.Service,
) -> option.Option(model.Entity)
pub fn shape_of(
  app: model.App,
  service: model.Service,
) -> option.Option(model.RootShape)

server.roots のうち root の Entity を決める行(Rootless / OwnRoot / RootOf)。

pub fn who_is_allow_entity(
  app: model.App,
  service: model.Service,
  who: String,
) -> Bool

allow の句の who(As<X>)の X が allow の Entity そのものか(主体の行 = allow の行)。 句が全部 Self の読みを絞らない規則(emit/sql)と入口の相の門(emit/http の phaseGates)は この形に限る(WGy r4)── X が別の Entity なら Self は読みの行を主体に縛る句で、門を主体の相で閉じない。

pub fn with_version(
  app: model.App,
  service: model.Service,
) -> Bool

root に version を載せるか(WithVersion)。

✨ Search Document