1extern crate alloc;
4
5use crate::array::*;
6use crate::dtype::*;
7
8#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
9pub const ENUM_MIN_MESSAGE_VERSION: u8 = 0;
10#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
11pub const ENUM_MAX_MESSAGE_VERSION: u8 = 0;
12#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
13#[allow(non_camel_case_types)]
14pub const ENUM_VALUES_MESSAGE_VERSION: [MessageVersion; 1] = [
15 MessageVersion::V0,
16];
17
18#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19#[repr(transparent)]
20pub struct MessageVersion(pub u8);
21#[allow(non_upper_case_globals)]
22impl MessageVersion {
23 pub const V0: Self = Self(0);
24
25 pub const ENUM_MIN: u8 = 0;
26 pub const ENUM_MAX: u8 = 0;
27 pub const ENUM_VALUES: &'static [Self] = &[
28 Self::V0,
29 ];
30 pub fn variant_name(self) -> Option<&'static str> {
32 match self {
33 Self::V0 => Some("V0"),
34 _ => None,
35 }
36 }
37}
38impl ::core::fmt::Debug for MessageVersion {
39 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
40 if let Some(name) = self.variant_name() {
41 f.write_str(name)
42 } else {
43 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
44 }
45 }
46}
47impl<'a> ::flatbuffers::Follow<'a> for MessageVersion {
48 type Inner = Self;
49 #[inline]
50 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
51 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
52 Self(b)
53 }
54}
55
56impl ::flatbuffers::Push for MessageVersion {
57 type Output = MessageVersion;
58 #[inline]
59 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
60 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
61 }
62}
63
64impl ::flatbuffers::EndianScalar for MessageVersion {
65 type Scalar = u8;
66 #[inline]
67 fn to_little_endian(self) -> u8 {
68 self.0.to_le()
69 }
70 #[inline]
71 #[allow(clippy::wrong_self_convention)]
72 fn from_little_endian(v: u8) -> Self {
73 let b = u8::from_le(v);
74 Self(b)
75 }
76}
77
78impl<'a> ::flatbuffers::Verifiable for MessageVersion {
79 #[inline]
80 fn run_verifier(
81 v: &mut ::flatbuffers::Verifier, pos: usize
82 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
83 u8::run_verifier(v, pos)
84 }
85}
86
87impl ::flatbuffers::SimpleToVerifyInSlice for MessageVersion {}
88#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
89pub const ENUM_MIN_MESSAGE_HEADER: u8 = 0;
90#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
91pub const ENUM_MAX_MESSAGE_HEADER: u8 = 3;
92#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
93#[allow(non_camel_case_types)]
94pub const ENUM_VALUES_MESSAGE_HEADER: [MessageHeader; 4] = [
95 MessageHeader::NONE,
96 MessageHeader::ArrayMessage,
97 MessageHeader::BufferMessage,
98 MessageHeader::DTypeMessage,
99];
100
101#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
102#[repr(transparent)]
103pub struct MessageHeader(pub u8);
104#[allow(non_upper_case_globals)]
105impl MessageHeader {
106 pub const NONE: Self = Self(0);
107 pub const ArrayMessage: Self = Self(1);
108 pub const BufferMessage: Self = Self(2);
109 pub const DTypeMessage: Self = Self(3);
110
111 pub const ENUM_MIN: u8 = 0;
112 pub const ENUM_MAX: u8 = 3;
113 pub const ENUM_VALUES: &'static [Self] = &[
114 Self::NONE,
115 Self::ArrayMessage,
116 Self::BufferMessage,
117 Self::DTypeMessage,
118 ];
119 pub fn variant_name(self) -> Option<&'static str> {
121 match self {
122 Self::NONE => Some("NONE"),
123 Self::ArrayMessage => Some("ArrayMessage"),
124 Self::BufferMessage => Some("BufferMessage"),
125 Self::DTypeMessage => Some("DTypeMessage"),
126 _ => None,
127 }
128 }
129}
130impl ::core::fmt::Debug for MessageHeader {
131 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
132 if let Some(name) = self.variant_name() {
133 f.write_str(name)
134 } else {
135 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
136 }
137 }
138}
139impl<'a> ::flatbuffers::Follow<'a> for MessageHeader {
140 type Inner = Self;
141 #[inline]
142 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
143 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
144 Self(b)
145 }
146}
147
148impl ::flatbuffers::Push for MessageHeader {
149 type Output = MessageHeader;
150 #[inline]
151 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
152 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
153 }
154}
155
156impl ::flatbuffers::EndianScalar for MessageHeader {
157 type Scalar = u8;
158 #[inline]
159 fn to_little_endian(self) -> u8 {
160 self.0.to_le()
161 }
162 #[inline]
163 #[allow(clippy::wrong_self_convention)]
164 fn from_little_endian(v: u8) -> Self {
165 let b = u8::from_le(v);
166 Self(b)
167 }
168}
169
170impl<'a> ::flatbuffers::Verifiable for MessageHeader {
171 #[inline]
172 fn run_verifier(
173 v: &mut ::flatbuffers::Verifier, pos: usize
174 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
175 u8::run_verifier(v, pos)
176 }
177}
178
179impl ::flatbuffers::SimpleToVerifyInSlice for MessageHeader {}
180pub struct MessageHeaderUnionTableOffset {}
181
182pub enum ArrayMessageOffset {}
183#[derive(Copy, Clone, PartialEq)]
184
185pub struct ArrayMessage<'a> {
187 pub _tab: ::flatbuffers::Table<'a>,
188}
189
190impl<'a> ::flatbuffers::Follow<'a> for ArrayMessage<'a> {
191 type Inner = ArrayMessage<'a>;
192 #[inline]
193 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
194 Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
195 }
196}
197
198impl<'a> ArrayMessage<'a> {
199 pub const VT_ROW_COUNT: ::flatbuffers::VOffsetT = 4;
200 pub const VT_ENCODINGS: ::flatbuffers::VOffsetT = 6;
201
202 #[inline]
203 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
204 ArrayMessage { _tab: table }
205 }
206 #[allow(unused_mut)]
207 pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: ::flatbuffers::Allocator + 'bldr>(
208 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
209 args: &'args ArrayMessageArgs<'args>
210 ) -> ::flatbuffers::WIPOffset<ArrayMessage<'bldr>> {
211 let mut builder = ArrayMessageBuilder::new(_fbb);
212 if let Some(x) = args.encodings { builder.add_encodings(x); }
213 builder.add_row_count(args.row_count);
214 builder.finish()
215 }
216
217
218 #[inline]
220 pub fn row_count(&self) -> u32 {
221 unsafe { self._tab.get::<u32>(ArrayMessage::VT_ROW_COUNT, Some(0)).unwrap()}
225 }
226 #[inline]
228 pub fn encodings(&self) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
229 unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>>>(ArrayMessage::VT_ENCODINGS, None)}
233 }
234}
235
236impl ::flatbuffers::Verifiable for ArrayMessage<'_> {
237 #[inline]
238 fn run_verifier(
239 v: &mut ::flatbuffers::Verifier, pos: usize
240 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
241 v.visit_table(pos)?
242 .visit_field::<u32>("row_count", Self::VT_ROW_COUNT, false)?
243 .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>>>("encodings", Self::VT_ENCODINGS, false)?
244 .finish();
245 Ok(())
246 }
247}
248pub struct ArrayMessageArgs<'a> {
249 pub row_count: u32,
250 pub encodings: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>>>,
251}
252impl<'a> Default for ArrayMessageArgs<'a> {
253 #[inline]
254 fn default() -> Self {
255 ArrayMessageArgs {
256 row_count: 0,
257 encodings: None,
258 }
259 }
260}
261
262pub struct ArrayMessageBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
263 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
264 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
265}
266impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ArrayMessageBuilder<'a, 'b, A> {
267 #[inline]
268 pub fn add_row_count(&mut self, row_count: u32) {
269 self.fbb_.push_slot::<u32>(ArrayMessage::VT_ROW_COUNT, row_count, 0);
270 }
271 #[inline]
272 pub fn add_encodings(&mut self, encodings: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b , ::flatbuffers::ForwardsUOffset<&'b str>>>) {
273 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(ArrayMessage::VT_ENCODINGS, encodings);
274 }
275 #[inline]
276 pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> ArrayMessageBuilder<'a, 'b, A> {
277 let start = _fbb.start_table();
278 ArrayMessageBuilder {
279 fbb_: _fbb,
280 start_: start,
281 }
282 }
283 #[inline]
284 pub fn finish(self) -> ::flatbuffers::WIPOffset<ArrayMessage<'a>> {
285 let o = self.fbb_.end_table(self.start_);
286 ::flatbuffers::WIPOffset::new(o.value())
287 }
288}
289
290impl ::core::fmt::Debug for ArrayMessage<'_> {
291 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
292 let mut ds = f.debug_struct("ArrayMessage");
293 ds.field("row_count", &self.row_count());
294 ds.field("encodings", &self.encodings());
295 ds.finish()
296 }
297}
298pub enum BufferMessageOffset {}
299#[derive(Copy, Clone, PartialEq)]
300
301pub struct BufferMessage<'a> {
303 pub _tab: ::flatbuffers::Table<'a>,
304}
305
306impl<'a> ::flatbuffers::Follow<'a> for BufferMessage<'a> {
307 type Inner = BufferMessage<'a>;
308 #[inline]
309 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
310 Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
311 }
312}
313
314impl<'a> BufferMessage<'a> {
315 pub const VT_ALIGNMENT_EXPONENT: ::flatbuffers::VOffsetT = 4;
316
317 #[inline]
318 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
319 BufferMessage { _tab: table }
320 }
321 #[allow(unused_mut)]
322 pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: ::flatbuffers::Allocator + 'bldr>(
323 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
324 args: &'args BufferMessageArgs
325 ) -> ::flatbuffers::WIPOffset<BufferMessage<'bldr>> {
326 let mut builder = BufferMessageBuilder::new(_fbb);
327 builder.add_alignment_exponent(args.alignment_exponent);
328 builder.finish()
329 }
330
331
332 #[inline]
333 pub fn alignment_exponent(&self) -> u8 {
334 unsafe { self._tab.get::<u8>(BufferMessage::VT_ALIGNMENT_EXPONENT, Some(0)).unwrap()}
338 }
339}
340
341impl ::flatbuffers::Verifiable for BufferMessage<'_> {
342 #[inline]
343 fn run_verifier(
344 v: &mut ::flatbuffers::Verifier, pos: usize
345 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
346 v.visit_table(pos)?
347 .visit_field::<u8>("alignment_exponent", Self::VT_ALIGNMENT_EXPONENT, false)?
348 .finish();
349 Ok(())
350 }
351}
352pub struct BufferMessageArgs {
353 pub alignment_exponent: u8,
354}
355impl<'a> Default for BufferMessageArgs {
356 #[inline]
357 fn default() -> Self {
358 BufferMessageArgs {
359 alignment_exponent: 0,
360 }
361 }
362}
363
364pub struct BufferMessageBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
365 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
366 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
367}
368impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> BufferMessageBuilder<'a, 'b, A> {
369 #[inline]
370 pub fn add_alignment_exponent(&mut self, alignment_exponent: u8) {
371 self.fbb_.push_slot::<u8>(BufferMessage::VT_ALIGNMENT_EXPONENT, alignment_exponent, 0);
372 }
373 #[inline]
374 pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> BufferMessageBuilder<'a, 'b, A> {
375 let start = _fbb.start_table();
376 BufferMessageBuilder {
377 fbb_: _fbb,
378 start_: start,
379 }
380 }
381 #[inline]
382 pub fn finish(self) -> ::flatbuffers::WIPOffset<BufferMessage<'a>> {
383 let o = self.fbb_.end_table(self.start_);
384 ::flatbuffers::WIPOffset::new(o.value())
385 }
386}
387
388impl ::core::fmt::Debug for BufferMessage<'_> {
389 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
390 let mut ds = f.debug_struct("BufferMessage");
391 ds.field("alignment_exponent", &self.alignment_exponent());
392 ds.finish()
393 }
394}
395pub enum DTypeMessageOffset {}
396#[derive(Copy, Clone, PartialEq)]
397
398pub struct DTypeMessage<'a> {
400 pub _tab: ::flatbuffers::Table<'a>,
401}
402
403impl<'a> ::flatbuffers::Follow<'a> for DTypeMessage<'a> {
404 type Inner = DTypeMessage<'a>;
405 #[inline]
406 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
407 Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
408 }
409}
410
411impl<'a> DTypeMessage<'a> {
412
413 #[inline]
414 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
415 DTypeMessage { _tab: table }
416 }
417 #[allow(unused_mut)]
418 pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: ::flatbuffers::Allocator + 'bldr>(
419 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
420 _args: &'args DTypeMessageArgs
421 ) -> ::flatbuffers::WIPOffset<DTypeMessage<'bldr>> {
422 let mut builder = DTypeMessageBuilder::new(_fbb);
423 builder.finish()
424 }
425
426}
427
428impl ::flatbuffers::Verifiable for DTypeMessage<'_> {
429 #[inline]
430 fn run_verifier(
431 v: &mut ::flatbuffers::Verifier, pos: usize
432 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
433 v.visit_table(pos)?
434 .finish();
435 Ok(())
436 }
437}
438pub struct DTypeMessageArgs {
439}
440impl<'a> Default for DTypeMessageArgs {
441 #[inline]
442 fn default() -> Self {
443 DTypeMessageArgs {
444 }
445 }
446}
447
448pub struct DTypeMessageBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
449 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
450 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
451}
452impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> DTypeMessageBuilder<'a, 'b, A> {
453 #[inline]
454 pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> DTypeMessageBuilder<'a, 'b, A> {
455 let start = _fbb.start_table();
456 DTypeMessageBuilder {
457 fbb_: _fbb,
458 start_: start,
459 }
460 }
461 #[inline]
462 pub fn finish(self) -> ::flatbuffers::WIPOffset<DTypeMessage<'a>> {
463 let o = self.fbb_.end_table(self.start_);
464 ::flatbuffers::WIPOffset::new(o.value())
465 }
466}
467
468impl ::core::fmt::Debug for DTypeMessage<'_> {
469 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
470 let mut ds = f.debug_struct("DTypeMessage");
471 ds.finish()
472 }
473}
474pub enum MessageOffset {}
475#[derive(Copy, Clone, PartialEq)]
476
477pub struct Message<'a> {
478 pub _tab: ::flatbuffers::Table<'a>,
479}
480
481impl<'a> ::flatbuffers::Follow<'a> for Message<'a> {
482 type Inner = Message<'a>;
483 #[inline]
484 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
485 Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
486 }
487}
488
489impl<'a> Message<'a> {
490 pub const VT_VERSION: ::flatbuffers::VOffsetT = 4;
491 pub const VT_HEADER_TYPE: ::flatbuffers::VOffsetT = 6;
492 pub const VT_HEADER: ::flatbuffers::VOffsetT = 8;
493 pub const VT_BODY_SIZE: ::flatbuffers::VOffsetT = 10;
494
495 #[inline]
496 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
497 Message { _tab: table }
498 }
499 #[allow(unused_mut)]
500 pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: ::flatbuffers::Allocator + 'bldr>(
501 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
502 args: &'args MessageArgs
503 ) -> ::flatbuffers::WIPOffset<Message<'bldr>> {
504 let mut builder = MessageBuilder::new(_fbb);
505 builder.add_body_size(args.body_size);
506 if let Some(x) = args.header { builder.add_header(x); }
507 builder.add_header_type(args.header_type);
508 builder.add_version(args.version);
509 builder.finish()
510 }
511
512
513 #[inline]
514 pub fn version(&self) -> MessageVersion {
515 unsafe { self._tab.get::<MessageVersion>(Message::VT_VERSION, Some(MessageVersion::V0)).unwrap()}
519 }
520 #[inline]
521 pub fn header_type(&self) -> MessageHeader {
522 unsafe { self._tab.get::<MessageHeader>(Message::VT_HEADER_TYPE, Some(MessageHeader::NONE)).unwrap()}
526 }
527 #[inline]
528 pub fn header(&self) -> Option<::flatbuffers::Table<'a>> {
529 unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Table<'a>>>(Message::VT_HEADER, None)}
533 }
534 #[inline]
535 pub fn body_size(&self) -> u64 {
536 unsafe { self._tab.get::<u64>(Message::VT_BODY_SIZE, Some(0)).unwrap()}
540 }
541 #[inline]
542 #[allow(non_snake_case)]
543 pub fn header_as_array_message(&self) -> Option<ArrayMessage<'a>> {
544 if self.header_type() == MessageHeader::ArrayMessage {
545 self.header().map(|t| {
546 unsafe { ArrayMessage::init_from_table(t) }
550 })
551 } else {
552 None
553 }
554 }
555
556 #[inline]
557 #[allow(non_snake_case)]
558 pub fn header_as_buffer_message(&self) -> Option<BufferMessage<'a>> {
559 if self.header_type() == MessageHeader::BufferMessage {
560 self.header().map(|t| {
561 unsafe { BufferMessage::init_from_table(t) }
565 })
566 } else {
567 None
568 }
569 }
570
571 #[inline]
572 #[allow(non_snake_case)]
573 pub fn header_as_dtype_message(&self) -> Option<DTypeMessage<'a>> {
574 if self.header_type() == MessageHeader::DTypeMessage {
575 self.header().map(|t| {
576 unsafe { DTypeMessage::init_from_table(t) }
580 })
581 } else {
582 None
583 }
584 }
585
586}
587
588impl ::flatbuffers::Verifiable for Message<'_> {
589 #[inline]
590 fn run_verifier(
591 v: &mut ::flatbuffers::Verifier, pos: usize
592 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
593 v.visit_table(pos)?
594 .visit_field::<MessageVersion>("version", Self::VT_VERSION, false)?
595 .visit_union::<MessageHeader, _>("header_type", Self::VT_HEADER_TYPE, "header", Self::VT_HEADER, false, |key, v, pos| {
596 match key {
597 MessageHeader::ArrayMessage => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ArrayMessage>>("MessageHeader::ArrayMessage", pos),
598 MessageHeader::BufferMessage => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<BufferMessage>>("MessageHeader::BufferMessage", pos),
599 MessageHeader::DTypeMessage => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<DTypeMessage>>("MessageHeader::DTypeMessage", pos),
600 _ => Ok(()),
601 }
602 })?
603 .visit_field::<u64>("body_size", Self::VT_BODY_SIZE, false)?
604 .finish();
605 Ok(())
606 }
607}
608pub struct MessageArgs {
609 pub version: MessageVersion,
610 pub header_type: MessageHeader,
611 pub header: Option<::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>>,
612 pub body_size: u64,
613}
614impl<'a> Default for MessageArgs {
615 #[inline]
616 fn default() -> Self {
617 MessageArgs {
618 version: MessageVersion::V0,
619 header_type: MessageHeader::NONE,
620 header: None,
621 body_size: 0,
622 }
623 }
624}
625
626pub struct MessageBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
627 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
628 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
629}
630impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> MessageBuilder<'a, 'b, A> {
631 #[inline]
632 pub fn add_version(&mut self, version: MessageVersion) {
633 self.fbb_.push_slot::<MessageVersion>(Message::VT_VERSION, version, MessageVersion::V0);
634 }
635 #[inline]
636 pub fn add_header_type(&mut self, header_type: MessageHeader) {
637 self.fbb_.push_slot::<MessageHeader>(Message::VT_HEADER_TYPE, header_type, MessageHeader::NONE);
638 }
639 #[inline]
640 pub fn add_header(&mut self, header: ::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>) {
641 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Message::VT_HEADER, header);
642 }
643 #[inline]
644 pub fn add_body_size(&mut self, body_size: u64) {
645 self.fbb_.push_slot::<u64>(Message::VT_BODY_SIZE, body_size, 0);
646 }
647 #[inline]
648 pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> MessageBuilder<'a, 'b, A> {
649 let start = _fbb.start_table();
650 MessageBuilder {
651 fbb_: _fbb,
652 start_: start,
653 }
654 }
655 #[inline]
656 pub fn finish(self) -> ::flatbuffers::WIPOffset<Message<'a>> {
657 let o = self.fbb_.end_table(self.start_);
658 ::flatbuffers::WIPOffset::new(o.value())
659 }
660}
661
662impl ::core::fmt::Debug for Message<'_> {
663 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
664 let mut ds = f.debug_struct("Message");
665 ds.field("version", &self.version());
666 ds.field("header_type", &self.header_type());
667 match self.header_type() {
668 MessageHeader::ArrayMessage => {
669 if let Some(x) = self.header_as_array_message() {
670 ds.field("header", &x)
671 } else {
672 ds.field("header", &"InvalidFlatbuffer: Union discriminant does not match value.")
673 }
674 },
675 MessageHeader::BufferMessage => {
676 if let Some(x) = self.header_as_buffer_message() {
677 ds.field("header", &x)
678 } else {
679 ds.field("header", &"InvalidFlatbuffer: Union discriminant does not match value.")
680 }
681 },
682 MessageHeader::DTypeMessage => {
683 if let Some(x) = self.header_as_dtype_message() {
684 ds.field("header", &x)
685 } else {
686 ds.field("header", &"InvalidFlatbuffer: Union discriminant does not match value.")
687 }
688 },
689 _ => {
690 let x: Option<()> = None;
691 ds.field("header", &x)
692 },
693 };
694 ds.field("body_size", &self.body_size());
695 ds.finish()
696 }
697}
698#[inline]
699pub fn root_as_message(buf: &[u8]) -> Result<Message<'_>, ::flatbuffers::InvalidFlatbuffer> {
706 ::flatbuffers::root::<Message>(buf)
707}
708#[inline]
709pub fn size_prefixed_root_as_message(buf: &[u8]) -> Result<Message<'_>, ::flatbuffers::InvalidFlatbuffer> {
716 ::flatbuffers::size_prefixed_root::<Message>(buf)
717}
718#[inline]
719pub fn root_as_message_with_opts<'b, 'o>(
726 opts: &'o ::flatbuffers::VerifierOptions,
727 buf: &'b [u8],
728) -> Result<Message<'b>, ::flatbuffers::InvalidFlatbuffer> {
729 ::flatbuffers::root_with_opts::<Message<'b>>(opts, buf)
730}
731#[inline]
732pub fn size_prefixed_root_as_message_with_opts<'b, 'o>(
739 opts: &'o ::flatbuffers::VerifierOptions,
740 buf: &'b [u8],
741) -> Result<Message<'b>, ::flatbuffers::InvalidFlatbuffer> {
742 ::flatbuffers::size_prefixed_root_with_opts::<Message<'b>>(opts, buf)
743}
744#[inline]
745pub unsafe fn root_as_message_unchecked(buf: &[u8]) -> Message<'_> {
749 unsafe { ::flatbuffers::root_unchecked::<Message>(buf) }
750}
751#[inline]
752pub unsafe fn size_prefixed_root_as_message_unchecked(buf: &[u8]) -> Message<'_> {
756 unsafe { ::flatbuffers::size_prefixed_root_unchecked::<Message>(buf) }
757}
758#[inline]
759pub fn finish_message_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(
760 fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
761 root: ::flatbuffers::WIPOffset<Message<'a>>) {
762 fbb.finish(root, None);
763}
764
765#[inline]
766pub fn finish_size_prefixed_message_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>, root: ::flatbuffers::WIPOffset<Message<'a>>) {
767 fbb.finish_size_prefixed(root, None);
768}