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.