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

24 lines
1.5 KiB
Markdown

# 未確定事項
今後決める必要がある事項を管理する。
実装または仕様方針が固まった項目は、該当する仕様ファイルへ反映してここから外す。
## 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 の責務として扱う。