mirror of
https://github.com/apple/pkl.git
synced 2026-04-28 19:27:18 +02:00
Motivation: - `Config` mixes configuration representation with decoding logic - `Config.fromPklBinary()` does not scale as decoding gains options (e.g., binary versions or formats) - The decoding API is inconsistent with `ConfigEvaluator` Changes: - Introduce `ConfigDecoder` (with builder) and move `Config.fromPklBinary()` logic into it - Deprecate `Config.fromPklBinary()` methods for removal - Add `ConfigDecoder.forKotlin()` extension function - Update and improve tests Result: - Decoding is separated from `Config` and exposed via a dedicated API - Decoding can evolve independently (e.g., adding options such as binary versions or supporting new formats) - Evaluation and decoding APIs follow a consistent design