Skip to content

Commit bec06f1

Browse files
PHPCraftdreamclaude
andcommitted
0.1.2: pick up ktav 0.1.5 (structured errors API)
Upstream Rust crate now exposes Error::Structured(ErrorKind) with byte-offset spans, retroactive #[non_exhaustive] on the error enums, and a public ktav::thin event-based parser. The .NET binding's user-visible behaviour is unchanged: KtavException carries the same human-readable message (Display strings for the seven canonical categories are byte-identical to ktav 0.1.4 — verified by ktav's own pinning tests). Mapping ktav::ErrorKind to a structured .NET exception hierarchy (KtavMissingSeparatorSpaceException, KtavDuplicateKeyException, etc.) is separate follow-up work, tracked in the workspace's STRUCTURED_ERRORS.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d527c35 commit bec06f1

6 files changed

Lines changed: 55 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,24 @@ This changelog tracks **binding releases**, not changes to the Ktav
1111
format itself — see
1212
[`ktav-lang/spec`](https://github.com/ktav-lang/spec/blob/main/CHANGELOG.md).
1313

14+
## 0.1.2 — 2026-05-03
15+
16+
### Changed
17+
18+
- **Picked up `ktav 0.1.5`** — the upstream Rust crate now exposes
19+
`Error::Structured(ErrorKind)` with byte-offset spans, retroactive
20+
`#[non_exhaustive]` on the error enums, and a public `ktav::thin`
21+
event-based parser. The .NET binding's user-visible behaviour is
22+
unchanged: `KtavException` carries the same human-readable message
23+
(Display strings for the seven canonical categories are byte-
24+
identical to ktav 0.1.4 — verified by ktav's own pinning tests).
25+
Mapping `ktav::ErrorKind` to a structured .NET exception hierarchy
26+
(`KtavMissingSeparatorSpaceException`, `KtavDuplicateKeyException`,
27+
etc.) is separate follow-up work tracked in the workspace's
28+
[`STRUCTURED_ERRORS.md`](https://github.com/ktav-lang/.github/blob/main/STRUCTURED_ERRORS.md).
29+
30+
NuGet package: **`Ktav`**, version 0.1.2.
31+
1432
## 0.1.1 — 2026-04-26
1533

1634
### Changed

CHANGELOG.ru.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,24 @@
1111
формата Ktav — для последнего см.
1212
[`ktav-lang/spec`](https://github.com/ktav-lang/spec/blob/main/CHANGELOG.md).
1313

14+
## 0.1.2 — 2026-05-03
15+
16+
### Изменено
17+
18+
- **Подхватили `ktav 0.1.5`** — в upstream Rust crate появился API
19+
структурированных ошибок (`Error::Structured(ErrorKind)` с
20+
byte-offset spans), retroactive `#[non_exhaustive]` на error-enum-ах,
21+
и публичный event-based парсер `ktav::thin`. Поведение .NET-биндинга
22+
для пользователя не меняется: `KtavException` несёт то же читаемое
23+
сообщение (Display-строки семи канонических категорий byte-identical
24+
к ktav 0.1.4 — проверено собственными pinning-тестами ktav). Маппинг
25+
`ktav::ErrorKind` на структурную .NET-иерархию исключений
26+
(`KtavMissingSeparatorSpaceException`, `KtavDuplicateKeyException` и
27+
т.д.) — отдельная follow-up работа, описанная в
28+
[`STRUCTURED_ERRORS.md`](https://github.com/ktav-lang/.github/blob/main/STRUCTURED_ERRORS.md).
29+
30+
NuGet package: **`Ktav`**, версия 0.1.2.
31+
1432
## 0.1.1 — 2026-04-26
1533

1634
### Изменено

CHANGELOG.zh.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@ MINOR 递增视为破坏性变更。
1010
本 changelog 跟踪 **绑定发布**,不覆盖 Ktav 格式自身的变更 ——
1111
后者见 [`ktav-lang/spec`](https://github.com/ktav-lang/spec/blob/main/CHANGELOG.md)
1212

13+
## 0.1.2 —— 2026-05-03
14+
15+
### 变更
16+
17+
- **已采用 `ktav 0.1.5`** —— 上游 Rust crate 引入了结构化错误 API
18+
(`Error::Structured(ErrorKind)` 带字节偏移 span)、对错误枚举追溯
19+
应用了 `#[non_exhaustive]`,以及公开的事件式解析器 `ktav::thin`
20+
.NET 绑定对用户可见的行为没有变化:`KtavException` 仍携带相同的
21+
人类可读消息(七个标准类别的 Display 字符串与 ktav 0.1.4 完全
22+
字节相同,由 ktav 自己的 pinning 测试验证)。将 `ktav::ErrorKind`
23+
映射到结构化 .NET 异常层级(`KtavMissingSeparatorSpaceException`
24+
`KtavDuplicateKeyException` 等)是单独的后续工作,记录在
25+
[`STRUCTURED_ERRORS.md`](https://github.com/ktav-lang/.github/blob/main/STRUCTURED_ERRORS.md)
26+
27+
NuGet 包:**`Ktav`**,版本 0.1.2。
28+
1329
## 0.1.1 —— 2026-04-26
1430

1531
### 变更

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ resolver = "2"
33
members = ["crates/cabi"]
44

55
[workspace.package]
6-
version = "0.1.1"
6+
version = "0.1.2"
77
edition = "2021"
88
license = "MIT"
99
repository = "https://github.com/ktav-lang/csharp"

src/Ktav/Ktav.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<!-- NuGet metadata -->
1313
<PackageId>Ktav</PackageId>
14-
<Version>0.1.1</Version>
14+
<Version>0.1.2</Version>
1515
<Authors>Marat K</Authors>
1616
<Description>.NET bindings for Ktav — a plain configuration format. Thin wrapper around the reference Rust parser via P/Invoke; no native build on the consumer side.</Description>
1717
<PackageLicenseExpression>MIT</PackageLicenseExpression>

0 commit comments

Comments
 (0)