Skip to content

Commit 67ba158

Browse files
committed
Revise features
1 parent b4601e3 commit 67ba158

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,12 @@ func EncodeUser(in User) (out api.User) {
3838

3939
## Features
4040

41-
- **Struct, Union, and Enum conversions**
42-
Automatically matches fields, implementations, and members by name.
43-
41+
- **Code generation for automatic type conversions**
42+
Convgen generates conversion code at compile time, so there's no runtime
43+
reflection overhead. It supports conversions between structs, unions
44+
(interfaces with multiple implementations), and enums (const groups),
45+
automatically matching fields, implementations, and members by name.
46+
4447
```go
4548
convgen.Struct[User, api.User] // func(User) api.User
4649
convgen.StructErr[User, api.User] // func(User) (api.User, error)
@@ -50,8 +53,8 @@ func EncodeUser(in User) (out api.User) {
5053
convgen.EnumErr[Status, api.Status] // func(Status) (api.Status, error)
5154
```
5255

53-
- **Type-safe configuration**
54-
All options are validated at compile time — no reflection, tags, string, or
56+
- **Type-safe configuration that survives refactoring**
57+
All options are validated at compile time — no struct tags, strings, or
5558
comment-based directives.
5659

5760
```go
@@ -62,8 +65,8 @@ func EncodeUser(in User) (out api.User) {
6265
// this directive will be updated accordingly.
6366
convgen.Match(User{}.Name, api.User{}.Username)
6467
```
65-
66-
- **Detailed diagnostics**
68+
69+
- **Batched diagnostics instead of one-error-at-a-time**
6770
*All* matching and conversion errors in a single pass are reported together,
6871
so you can fix everything at once instead of stopping at the first error. In
6972
addition, Convgen provides [Lint](#lint) support for real-time feedback during

0 commit comments

Comments
 (0)