casey / casey/x-serialization-format
Building: Template structs vs builder
- Dominant language
- Rust
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Considering two methods of building values to write to buffers.
Template structs:
```rust
data::write(&mut buffer, Foo::Template {
bar: Some(1),
baz: Some("foo"),
sub: Some(FooTemplate {
bar: Some(2),
baz: Some("bar"),
sub: None,
})
});
```
Or builders:
```rust
Foo::Builder::new(&mut buffer)
.set_bar(1)
.set_baz("foo")
.build_sub() // returns Option builder
.some()
.set_bar(1)
.build_baz()
.push("foo")
.push("bar")
.done()
.build_sub()
.none() // returns ()
.build()
```
Values must be written to a buffer in traversal order, so buffers either have to panic if fields are provided out of order (gross), or order of initialization has to be moved into the type system.
Template structs seem nicer and more concise.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.