From 3280092e0852add4a48c143c1f603fc01a822843 Mon Sep 17 00:00:00 2001 From: charles Date: Fri, 8 May 2026 23:47:41 -0700 Subject: [PATCH] Update README supported features list Move oneof, map, and default value support from unsupported to supported features. --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c4f75f9..89f7db7 100644 --- a/README.md +++ b/README.md @@ -306,14 +306,13 @@ The goal is to validate roto's implementation against the Proto3 specification. - **Messages**: Top-level and nested message definitions. - **Enums**: Enum definitions with `from_i32` conversion. - **Field Labels**: Singular and `repeated` fields. +- **Field Presence**: No `has_field()` methods are generated to distinguish between a field being absent and a field being set to its default value. +- **`oneof` Fields**: Generates enums that allow checking which field is set. +- **`map` Fields**: Iterator over underlying key/value pairs. +- **Default Values**: There is an option to select the default value for each field. ### Unsupported Features -- **Default Values**: Missing fields return `RotoError::FieldNotFound` instead of the Proto3 default value (e.g., `0` or `""`). -- **Field Presence**: No `has_field()` methods are generated to distinguish between a field being absent and a field being set to its default value. -- **`oneof` Fields**: Not currently supported in code generation. -- **`map` Fields**: Not currently supported. -- **Packed Repeated Fields**: `roto` expects individual tags for all repeated elements; it does not support the packed encoding used for scalar numeric types in Proto3. - **Reserved Fields**: `reserved` statements are ignored. - **Services**: `service` and `rpc` definitions are ignored. - **Options**: Field and message options are ignored.