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