flatbuffers_util/
builder.rs1use flatbuffers::FlatBufferBuilder;
2
3pub struct FBBuilder<T> {
6 builder: FlatBufferBuilder<'static>,
7 _phantom: std::marker::PhantomData<T>,
8}
9
10impl<T> Default for FBBuilder<T> {
11 fn default() -> Self {
12 Self {
13 builder: FlatBufferBuilder::new(),
14 _phantom: std::marker::PhantomData,
15 }
16 }
17}
18
19impl<T> FBBuilder<T> {
20 pub fn new() -> Self {
21 Self::default()
22 }
23
24 pub fn get_mut(&mut self) -> &mut FlatBufferBuilder<'static> {
26 &mut self.builder
27 }
28
29 pub fn finish_owned(mut self, root: flatbuffers::WIPOffset<T>) -> crate::OwnedFB<T> {
35 self.builder.finish_minimal(root);
36 let (buf, index) = self.builder.collapse();
37 unsafe { crate::OwnedFB::new_from_builder_collapse((buf, index)) }
38 }
39}