Decodal/doc/manual/souce/open-issues.md

1.5 KiB

未確定事項

今後決める必要がある事項を管理する。 実装または仕様方針が固まった項目は、該当する仕様ファイルへ反映してここから外す。

Materialize target and host projection

Decodal の評価結果は、制約・default・関数値を含む中間値になり得る。 そのため、Decodal 単独で常に「最終成果物」を一意に決めるのではなく、host 側が期待する型や出力形式を与えて materialize / decode する経路を明確にする必要がある。

決めること:

  • Rust API で評価結果の field/path を選択して decode / materialize できるようにするか。
  • decodal-derive の struct schema と評価結果を合成して decode する経路を、主要な materialize path として位置づけるか。
  • CLI / WASM では target path を指定して JSON-compatible value へ materialize する形にするか。
  • 制約や関数値が残った値を出力したい場合、materialize ではなく inspect/debug API として分けるか。

現時点の案:

  • Rust では evaluate -> select field/path -> expected schema と合成 -> decode を主経路にする。
  • CLI / WASM では、明示された target path または module 全体を JSON-compatible value として materialize する。
  • materialize できない unresolved abstract value、default のない制約値、関数値は diagnostic にする。
  • Decodal 言語内には materialize 構文を追加せず、host API / CLI / WASM の責務として扱う。