1pub use root::*;
2
3const _: () = ::planus::check_version_compatibility("planus-1.1.1");
4
5#[no_implicit_prelude]
10#[allow(dead_code, clippy::needless_lifetimes)]
11mod root {
12 pub mod rusty_monitor {
17 pub mod schema {
22 #[derive(
27 Clone,
28 Debug,
29 PartialEq,
30 PartialOrd,
31 Eq,
32 Ord,
33 Hash,
34 ::serde::Serialize,
35 ::serde::Deserialize,
36 )]
37 pub struct PriceLevel {
38 pub price: ::planus::alloc::string::String,
40 pub quantity: ::planus::alloc::string::String,
42 pub order_count: u32,
44 }
45
46 #[allow(clippy::derivable_impls)]
47 impl ::core::default::Default for PriceLevel {
48 fn default() -> Self {
49 Self {
50 price: ::core::default::Default::default(),
51 quantity: ::core::default::Default::default(),
52 order_count: 0,
53 }
54 }
55 }
56
57 impl PriceLevel {
58 #[inline]
60 pub const fn builder() -> PriceLevelBuilder<()> {
61 PriceLevelBuilder(())
62 }
63
64 #[allow(clippy::too_many_arguments)]
65 pub fn create(
66 builder: &mut ::planus::Builder,
67 field_price: impl ::planus::WriteAs<::planus::Offset<str>>,
68 field_quantity: impl ::planus::WriteAs<::planus::Offset<str>>,
69 field_order_count: impl ::planus::WriteAsDefault<u32, u32>,
70 ) -> ::planus::Offset<Self> {
71 let prepared_price = field_price.prepare(builder);
72 let prepared_quantity = field_quantity.prepare(builder);
73 let prepared_order_count = field_order_count.prepare(builder, &0);
74
75 let mut table_writer: ::planus::table_writer::TableWriter<10> =
76 ::core::default::Default::default();
77 table_writer.write_entry::<::planus::Offset<str>>(0);
78 table_writer.write_entry::<::planus::Offset<str>>(1);
79 if prepared_order_count.is_some() {
80 table_writer.write_entry::<u32>(2);
81 }
82
83 unsafe {
84 table_writer.finish(builder, |object_writer| {
85 object_writer.write::<_, _, 4>(&prepared_price);
86 object_writer.write::<_, _, 4>(&prepared_quantity);
87 if let ::core::option::Option::Some(prepared_order_count) =
88 prepared_order_count
89 {
90 object_writer.write::<_, _, 4>(&prepared_order_count);
91 }
92 });
93 }
94 builder.current_offset()
95 }
96 }
97
98 impl ::planus::WriteAs<::planus::Offset<PriceLevel>> for PriceLevel {
99 type Prepared = ::planus::Offset<Self>;
100
101 #[inline]
102 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<PriceLevel> {
103 ::planus::WriteAsOffset::prepare(self, builder)
104 }
105 }
106
107 impl ::planus::WriteAsOptional<::planus::Offset<PriceLevel>> for PriceLevel {
108 type Prepared = ::planus::Offset<Self>;
109
110 #[inline]
111 fn prepare(
112 &self,
113 builder: &mut ::planus::Builder,
114 ) -> ::core::option::Option<::planus::Offset<PriceLevel>> {
115 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
116 }
117 }
118
119 impl ::planus::WriteAsOffset<PriceLevel> for PriceLevel {
120 #[inline]
121 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<PriceLevel> {
122 PriceLevel::create(builder, &self.price, &self.quantity, self.order_count)
123 }
124 }
125
126 #[derive(Debug)]
130 #[must_use]
131 pub struct PriceLevelBuilder<State>(State);
132
133 impl PriceLevelBuilder<()> {
134 #[inline]
136 #[allow(clippy::type_complexity)]
137 pub const fn price<T0>(self, value: T0) -> PriceLevelBuilder<(T0,)>
138 where
139 T0: ::planus::WriteAs<::planus::Offset<str>>,
140 {
141 PriceLevelBuilder((value,))
142 }
143 }
144
145 impl<T0> PriceLevelBuilder<(T0,)> {
146 #[inline]
148 #[allow(clippy::type_complexity)]
149 pub fn quantity<T1>(self, value: T1) -> PriceLevelBuilder<(T0, T1)>
150 where
151 T1: ::planus::WriteAs<::planus::Offset<str>>,
152 {
153 let (v0,) = self.0;
154 PriceLevelBuilder((v0, value))
155 }
156 }
157
158 impl<T0, T1> PriceLevelBuilder<(T0, T1)> {
159 #[inline]
161 #[allow(clippy::type_complexity)]
162 pub fn order_count<T2>(self, value: T2) -> PriceLevelBuilder<(T0, T1, T2)>
163 where
164 T2: ::planus::WriteAsDefault<u32, u32>,
165 {
166 let (v0, v1) = self.0;
167 PriceLevelBuilder((v0, v1, value))
168 }
169
170 #[inline]
172 #[allow(clippy::type_complexity)]
173 pub fn order_count_as_default(
174 self,
175 ) -> PriceLevelBuilder<(T0, T1, ::planus::DefaultValue)> {
176 self.order_count(::planus::DefaultValue)
177 }
178 }
179
180 impl<T0, T1, T2> PriceLevelBuilder<(T0, T1, T2)> {
181 #[inline]
183 pub fn finish(self, builder: &mut ::planus::Builder) -> ::planus::Offset<PriceLevel>
184 where
185 Self: ::planus::WriteAsOffset<PriceLevel>,
186 {
187 ::planus::WriteAsOffset::prepare(&self, builder)
188 }
189 }
190
191 impl<
192 T0: ::planus::WriteAs<::planus::Offset<str>>,
193 T1: ::planus::WriteAs<::planus::Offset<str>>,
194 T2: ::planus::WriteAsDefault<u32, u32>,
195 > ::planus::WriteAs<::planus::Offset<PriceLevel>> for PriceLevelBuilder<(T0, T1, T2)>
196 {
197 type Prepared = ::planus::Offset<PriceLevel>;
198
199 #[inline]
200 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<PriceLevel> {
201 ::planus::WriteAsOffset::prepare(self, builder)
202 }
203 }
204
205 impl<
206 T0: ::planus::WriteAs<::planus::Offset<str>>,
207 T1: ::planus::WriteAs<::planus::Offset<str>>,
208 T2: ::planus::WriteAsDefault<u32, u32>,
209 > ::planus::WriteAsOptional<::planus::Offset<PriceLevel>>
210 for PriceLevelBuilder<(T0, T1, T2)>
211 {
212 type Prepared = ::planus::Offset<PriceLevel>;
213
214 #[inline]
215 fn prepare(
216 &self,
217 builder: &mut ::planus::Builder,
218 ) -> ::core::option::Option<::planus::Offset<PriceLevel>> {
219 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
220 }
221 }
222
223 impl<
224 T0: ::planus::WriteAs<::planus::Offset<str>>,
225 T1: ::planus::WriteAs<::planus::Offset<str>>,
226 T2: ::planus::WriteAsDefault<u32, u32>,
227 > ::planus::WriteAsOffset<PriceLevel> for PriceLevelBuilder<(T0, T1, T2)>
228 {
229 #[inline]
230 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<PriceLevel> {
231 let (v0, v1, v2) = &self.0;
232 PriceLevel::create(builder, v0, v1, v2)
233 }
234 }
235
236 #[derive(Copy, Clone)]
238 pub struct PriceLevelRef<'a>(::planus::table_reader::Table<'a>);
239
240 impl<'a> PriceLevelRef<'a> {
241 #[inline]
243 pub fn price(&self) -> ::planus::Result<&'a ::core::primitive::str> {
244 self.0.access_required(0, "PriceLevel", "price")
245 }
246
247 #[inline]
249 pub fn quantity(&self) -> ::planus::Result<&'a ::core::primitive::str> {
250 self.0.access_required(1, "PriceLevel", "quantity")
251 }
252
253 #[inline]
255 pub fn order_count(&self) -> ::planus::Result<u32> {
256 ::core::result::Result::Ok(
257 self.0.access(2, "PriceLevel", "order_count")?.unwrap_or(0),
258 )
259 }
260 }
261
262 impl<'a> ::core::fmt::Debug for PriceLevelRef<'a> {
263 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
264 let mut f = f.debug_struct("PriceLevelRef");
265 f.field("price", &self.price());
266 f.field("quantity", &self.quantity());
267 f.field("order_count", &self.order_count());
268 f.finish()
269 }
270 }
271
272 impl<'a> ::core::convert::TryFrom<PriceLevelRef<'a>> for PriceLevel {
273 type Error = ::planus::Error;
274
275 #[allow(unreachable_code)]
276 fn try_from(value: PriceLevelRef<'a>) -> ::planus::Result<Self> {
277 ::core::result::Result::Ok(Self {
278 price: ::core::convert::Into::into(value.price()?),
279 quantity: ::core::convert::Into::into(value.quantity()?),
280 order_count: ::core::convert::TryInto::try_into(value.order_count()?)?,
281 })
282 }
283 }
284
285 impl<'a> ::planus::TableRead<'a> for PriceLevelRef<'a> {
286 #[inline]
287 fn from_buffer(
288 buffer: ::planus::SliceWithStartOffset<'a>,
289 offset: usize,
290 ) -> ::core::result::Result<Self, ::planus::errors::ErrorKind> {
291 ::core::result::Result::Ok(Self(::planus::table_reader::Table::from_buffer(
292 buffer, offset,
293 )?))
294 }
295 }
296
297 impl<'a> ::planus::VectorReadInner<'a> for PriceLevelRef<'a> {
298 type Error = ::planus::Error;
299 const STRIDE: usize = 4;
300
301 unsafe fn from_buffer(
302 buffer: ::planus::SliceWithStartOffset<'a>,
303 offset: usize,
304 ) -> ::planus::Result<Self> {
305 ::planus::TableRead::from_buffer(buffer, offset).map_err(|error_kind| {
306 error_kind.with_error_location(
307 "[PriceLevelRef]",
308 "get",
309 buffer.offset_from_start,
310 )
311 })
312 }
313 }
314
315 unsafe impl ::planus::VectorWrite<::planus::Offset<PriceLevel>> for PriceLevel {
319 type Value = ::planus::Offset<PriceLevel>;
320 const STRIDE: usize = 4;
321 #[inline]
322 fn prepare(&self, builder: &mut ::planus::Builder) -> Self::Value {
323 ::planus::WriteAs::prepare(self, builder)
324 }
325
326 #[inline]
327 unsafe fn write_values(
328 values: &[::planus::Offset<PriceLevel>],
329 bytes: *mut ::core::mem::MaybeUninit<u8>,
330 buffer_position: u32,
331 ) {
332 let bytes = bytes as *mut [::core::mem::MaybeUninit<u8>; 4];
333 for (i, v) in ::core::iter::Iterator::enumerate(values.iter()) {
334 ::planus::WriteAsPrimitive::write(
335 v,
336 ::planus::Cursor::new(unsafe { &mut *bytes.add(i) }),
337 buffer_position - (Self::STRIDE * i) as u32,
338 );
339 }
340 }
341 }
342
343 impl<'a> ::planus::ReadAsRoot<'a> for PriceLevelRef<'a> {
344 fn read_as_root(slice: &'a [u8]) -> ::planus::Result<Self> {
345 ::planus::TableRead::from_buffer(
346 ::planus::SliceWithStartOffset {
347 buffer: slice,
348 offset_from_start: 0,
349 },
350 0,
351 )
352 .map_err(|error_kind| {
353 error_kind.with_error_location("[PriceLevelRef]", "read_as_root", 0)
354 })
355 }
356 }
357
358 #[derive(
363 Clone,
364 Debug,
365 PartialEq,
366 PartialOrd,
367 Eq,
368 Ord,
369 Hash,
370 ::serde::Serialize,
371 ::serde::Deserialize,
372 )]
373 pub struct OrderBook {
374 pub timestamp_exchange: u64,
376 pub timestamp_system: u64,
378 pub symbol: ::planus::alloc::string::String,
380 pub exchange: ::planus::alloc::string::String,
382 pub bids: ::planus::alloc::vec::Vec<self::PriceLevel>,
384 pub asks: ::planus::alloc::vec::Vec<self::PriceLevel>,
386 pub sequence: u64,
388 pub last_update_id: u64,
390 pub is_snapshot: bool,
392 pub depth: u32,
394 pub checksum: ::core::option::Option<::planus::alloc::string::String>,
396 }
397
398 #[allow(clippy::derivable_impls)]
399 impl ::core::default::Default for OrderBook {
400 fn default() -> Self {
401 Self {
402 timestamp_exchange: 0,
403 timestamp_system: 0,
404 symbol: ::core::default::Default::default(),
405 exchange: ::core::default::Default::default(),
406 bids: ::core::default::Default::default(),
407 asks: ::core::default::Default::default(),
408 sequence: 0,
409 last_update_id: 0,
410 is_snapshot: false,
411 depth: 0,
412 checksum: ::core::default::Default::default(),
413 }
414 }
415 }
416
417 impl OrderBook {
418 #[inline]
420 pub const fn builder() -> OrderBookBuilder<()> {
421 OrderBookBuilder(())
422 }
423
424 #[allow(clippy::too_many_arguments)]
425 pub fn create(
426 builder: &mut ::planus::Builder,
427 field_timestamp_exchange: impl ::planus::WriteAsDefault<u64, u64>,
428 field_timestamp_system: impl ::planus::WriteAsDefault<u64, u64>,
429 field_symbol: impl ::planus::WriteAs<::planus::Offset<str>>,
430 field_exchange: impl ::planus::WriteAs<::planus::Offset<str>>,
431 field_bids: impl ::planus::WriteAs<
432 ::planus::Offset<[::planus::Offset<self::PriceLevel>]>,
433 >,
434 field_asks: impl ::planus::WriteAs<
435 ::planus::Offset<[::planus::Offset<self::PriceLevel>]>,
436 >,
437 field_sequence: impl ::planus::WriteAsDefault<u64, u64>,
438 field_last_update_id: impl ::planus::WriteAsDefault<u64, u64>,
439 field_is_snapshot: impl ::planus::WriteAsDefault<bool, bool>,
440 field_depth: impl ::planus::WriteAsDefault<u32, u32>,
441 field_checksum: impl ::planus::WriteAsOptional<
442 ::planus::Offset<::core::primitive::str>,
443 >,
444 ) -> ::planus::Offset<Self> {
445 let prepared_timestamp_exchange = field_timestamp_exchange.prepare(builder, &0);
446 let prepared_timestamp_system = field_timestamp_system.prepare(builder, &0);
447 let prepared_symbol = field_symbol.prepare(builder);
448 let prepared_exchange = field_exchange.prepare(builder);
449 let prepared_bids = field_bids.prepare(builder);
450 let prepared_asks = field_asks.prepare(builder);
451 let prepared_sequence = field_sequence.prepare(builder, &0);
452 let prepared_last_update_id = field_last_update_id.prepare(builder, &0);
453 let prepared_is_snapshot = field_is_snapshot.prepare(builder, &false);
454 let prepared_depth = field_depth.prepare(builder, &0);
455 let prepared_checksum = field_checksum.prepare(builder);
456
457 let mut table_writer: ::planus::table_writer::TableWriter<26> =
458 ::core::default::Default::default();
459 if prepared_timestamp_exchange.is_some() {
460 table_writer.write_entry::<u64>(0);
461 }
462 if prepared_timestamp_system.is_some() {
463 table_writer.write_entry::<u64>(1);
464 }
465 if prepared_sequence.is_some() {
466 table_writer.write_entry::<u64>(6);
467 }
468 if prepared_last_update_id.is_some() {
469 table_writer.write_entry::<u64>(7);
470 }
471 table_writer.write_entry::<::planus::Offset<str>>(2);
472 table_writer.write_entry::<::planus::Offset<str>>(3);
473 table_writer
474 .write_entry::<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>(4);
475 table_writer
476 .write_entry::<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>(5);
477 if prepared_depth.is_some() {
478 table_writer.write_entry::<u32>(9);
479 }
480 if prepared_checksum.is_some() {
481 table_writer.write_entry::<::planus::Offset<str>>(10);
482 }
483 if prepared_is_snapshot.is_some() {
484 table_writer.write_entry::<bool>(8);
485 }
486
487 unsafe {
488 table_writer.finish(builder, |object_writer| {
489 if let ::core::option::Option::Some(prepared_timestamp_exchange) =
490 prepared_timestamp_exchange
491 {
492 object_writer.write::<_, _, 8>(&prepared_timestamp_exchange);
493 }
494 if let ::core::option::Option::Some(prepared_timestamp_system) =
495 prepared_timestamp_system
496 {
497 object_writer.write::<_, _, 8>(&prepared_timestamp_system);
498 }
499 if let ::core::option::Option::Some(prepared_sequence) =
500 prepared_sequence
501 {
502 object_writer.write::<_, _, 8>(&prepared_sequence);
503 }
504 if let ::core::option::Option::Some(prepared_last_update_id) =
505 prepared_last_update_id
506 {
507 object_writer.write::<_, _, 8>(&prepared_last_update_id);
508 }
509 object_writer.write::<_, _, 4>(&prepared_symbol);
510 object_writer.write::<_, _, 4>(&prepared_exchange);
511 object_writer.write::<_, _, 4>(&prepared_bids);
512 object_writer.write::<_, _, 4>(&prepared_asks);
513 if let ::core::option::Option::Some(prepared_depth) = prepared_depth {
514 object_writer.write::<_, _, 4>(&prepared_depth);
515 }
516 if let ::core::option::Option::Some(prepared_checksum) =
517 prepared_checksum
518 {
519 object_writer.write::<_, _, 4>(&prepared_checksum);
520 }
521 if let ::core::option::Option::Some(prepared_is_snapshot) =
522 prepared_is_snapshot
523 {
524 object_writer.write::<_, _, 1>(&prepared_is_snapshot);
525 }
526 });
527 }
528 builder.current_offset()
529 }
530 }
531
532 impl ::planus::WriteAs<::planus::Offset<OrderBook>> for OrderBook {
533 type Prepared = ::planus::Offset<Self>;
534
535 #[inline]
536 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<OrderBook> {
537 ::planus::WriteAsOffset::prepare(self, builder)
538 }
539 }
540
541 impl ::planus::WriteAsOptional<::planus::Offset<OrderBook>> for OrderBook {
542 type Prepared = ::planus::Offset<Self>;
543
544 #[inline]
545 fn prepare(
546 &self,
547 builder: &mut ::planus::Builder,
548 ) -> ::core::option::Option<::planus::Offset<OrderBook>> {
549 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
550 }
551 }
552
553 impl ::planus::WriteAsOffset<OrderBook> for OrderBook {
554 #[inline]
555 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<OrderBook> {
556 OrderBook::create(
557 builder,
558 self.timestamp_exchange,
559 self.timestamp_system,
560 &self.symbol,
561 &self.exchange,
562 &self.bids,
563 &self.asks,
564 self.sequence,
565 self.last_update_id,
566 self.is_snapshot,
567 self.depth,
568 &self.checksum,
569 )
570 }
571 }
572
573 #[derive(Debug)]
577 #[must_use]
578 pub struct OrderBookBuilder<State>(State);
579
580 impl OrderBookBuilder<()> {
581 #[inline]
583 #[allow(clippy::type_complexity)]
584 pub const fn timestamp_exchange<T0>(self, value: T0) -> OrderBookBuilder<(T0,)>
585 where
586 T0: ::planus::WriteAsDefault<u64, u64>,
587 {
588 OrderBookBuilder((value,))
589 }
590
591 #[inline]
593 #[allow(clippy::type_complexity)]
594 pub const fn timestamp_exchange_as_default(
595 self,
596 ) -> OrderBookBuilder<(::planus::DefaultValue,)> {
597 self.timestamp_exchange(::planus::DefaultValue)
598 }
599 }
600
601 impl<T0> OrderBookBuilder<(T0,)> {
602 #[inline]
604 #[allow(clippy::type_complexity)]
605 pub fn timestamp_system<T1>(self, value: T1) -> OrderBookBuilder<(T0, T1)>
606 where
607 T1: ::planus::WriteAsDefault<u64, u64>,
608 {
609 let (v0,) = self.0;
610 OrderBookBuilder((v0, value))
611 }
612
613 #[inline]
615 #[allow(clippy::type_complexity)]
616 pub fn timestamp_system_as_default(
617 self,
618 ) -> OrderBookBuilder<(T0, ::planus::DefaultValue)> {
619 self.timestamp_system(::planus::DefaultValue)
620 }
621 }
622
623 impl<T0, T1> OrderBookBuilder<(T0, T1)> {
624 #[inline]
626 #[allow(clippy::type_complexity)]
627 pub fn symbol<T2>(self, value: T2) -> OrderBookBuilder<(T0, T1, T2)>
628 where
629 T2: ::planus::WriteAs<::planus::Offset<str>>,
630 {
631 let (v0, v1) = self.0;
632 OrderBookBuilder((v0, v1, value))
633 }
634 }
635
636 impl<T0, T1, T2> OrderBookBuilder<(T0, T1, T2)> {
637 #[inline]
639 #[allow(clippy::type_complexity)]
640 pub fn exchange<T3>(self, value: T3) -> OrderBookBuilder<(T0, T1, T2, T3)>
641 where
642 T3: ::planus::WriteAs<::planus::Offset<str>>,
643 {
644 let (v0, v1, v2) = self.0;
645 OrderBookBuilder((v0, v1, v2, value))
646 }
647 }
648
649 impl<T0, T1, T2, T3> OrderBookBuilder<(T0, T1, T2, T3)> {
650 #[inline]
652 #[allow(clippy::type_complexity)]
653 pub fn bids<T4>(self, value: T4) -> OrderBookBuilder<(T0, T1, T2, T3, T4)>
654 where
655 T4: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
656 {
657 let (v0, v1, v2, v3) = self.0;
658 OrderBookBuilder((v0, v1, v2, v3, value))
659 }
660 }
661
662 impl<T0, T1, T2, T3, T4> OrderBookBuilder<(T0, T1, T2, T3, T4)> {
663 #[inline]
665 #[allow(clippy::type_complexity)]
666 pub fn asks<T5>(self, value: T5) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5)>
667 where
668 T5: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
669 {
670 let (v0, v1, v2, v3, v4) = self.0;
671 OrderBookBuilder((v0, v1, v2, v3, v4, value))
672 }
673 }
674
675 impl<T0, T1, T2, T3, T4, T5> OrderBookBuilder<(T0, T1, T2, T3, T4, T5)> {
676 #[inline]
678 #[allow(clippy::type_complexity)]
679 pub fn sequence<T6>(
680 self,
681 value: T6,
682 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6)>
683 where
684 T6: ::planus::WriteAsDefault<u64, u64>,
685 {
686 let (v0, v1, v2, v3, v4, v5) = self.0;
687 OrderBookBuilder((v0, v1, v2, v3, v4, v5, value))
688 }
689
690 #[inline]
692 #[allow(clippy::type_complexity)]
693 pub fn sequence_as_default(
694 self,
695 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, ::planus::DefaultValue)>
696 {
697 self.sequence(::planus::DefaultValue)
698 }
699 }
700
701 impl<T0, T1, T2, T3, T4, T5, T6> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6)> {
702 #[inline]
704 #[allow(clippy::type_complexity)]
705 pub fn last_update_id<T7>(
706 self,
707 value: T7,
708 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7)>
709 where
710 T7: ::planus::WriteAsDefault<u64, u64>,
711 {
712 let (v0, v1, v2, v3, v4, v5, v6) = self.0;
713 OrderBookBuilder((v0, v1, v2, v3, v4, v5, v6, value))
714 }
715
716 #[inline]
718 #[allow(clippy::type_complexity)]
719 pub fn last_update_id_as_default(
720 self,
721 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, ::planus::DefaultValue)>
722 {
723 self.last_update_id(::planus::DefaultValue)
724 }
725 }
726
727 impl<T0, T1, T2, T3, T4, T5, T6, T7> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7)> {
728 #[inline]
730 #[allow(clippy::type_complexity)]
731 pub fn is_snapshot<T8>(
732 self,
733 value: T8,
734 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
735 where
736 T8: ::planus::WriteAsDefault<bool, bool>,
737 {
738 let (v0, v1, v2, v3, v4, v5, v6, v7) = self.0;
739 OrderBookBuilder((v0, v1, v2, v3, v4, v5, v6, v7, value))
740 }
741
742 #[inline]
744 #[allow(clippy::type_complexity)]
745 pub fn is_snapshot_as_default(
746 self,
747 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, ::planus::DefaultValue)>
748 {
749 self.is_snapshot(::planus::DefaultValue)
750 }
751 }
752
753 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {
754 #[inline]
756 #[allow(clippy::type_complexity)]
757 pub fn depth<T9>(
758 self,
759 value: T9,
760 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
761 where
762 T9: ::planus::WriteAsDefault<u32, u32>,
763 {
764 let (v0, v1, v2, v3, v4, v5, v6, v7, v8) = self.0;
765 OrderBookBuilder((v0, v1, v2, v3, v4, v5, v6, v7, v8, value))
766 }
767
768 #[inline]
770 #[allow(clippy::type_complexity)]
771 pub fn depth_as_default(
772 self,
773 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, ::planus::DefaultValue)>
774 {
775 self.depth(::planus::DefaultValue)
776 }
777 }
778
779 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
780 OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
781 {
782 #[inline]
784 #[allow(clippy::type_complexity)]
785 pub fn checksum<T10>(
786 self,
787 value: T10,
788 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
789 where
790 T10: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
791 {
792 let (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) = self.0;
793 OrderBookBuilder((v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, value))
794 }
795
796 #[inline]
798 #[allow(clippy::type_complexity)]
799 pub fn checksum_as_null(
800 self,
801 ) -> OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, ())>
802 {
803 self.checksum(())
804 }
805 }
806
807 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
808 OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
809 {
810 #[inline]
812 pub fn finish(self, builder: &mut ::planus::Builder) -> ::planus::Offset<OrderBook>
813 where
814 Self: ::planus::WriteAsOffset<OrderBook>,
815 {
816 ::planus::WriteAsOffset::prepare(&self, builder)
817 }
818 }
819
820 impl<
821 T0: ::planus::WriteAsDefault<u64, u64>,
822 T1: ::planus::WriteAsDefault<u64, u64>,
823 T2: ::planus::WriteAs<::planus::Offset<str>>,
824 T3: ::planus::WriteAs<::planus::Offset<str>>,
825 T4: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
826 T5: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
827 T6: ::planus::WriteAsDefault<u64, u64>,
828 T7: ::planus::WriteAsDefault<u64, u64>,
829 T8: ::planus::WriteAsDefault<bool, bool>,
830 T9: ::planus::WriteAsDefault<u32, u32>,
831 T10: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
832 > ::planus::WriteAs<::planus::Offset<OrderBook>>
833 for OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
834 {
835 type Prepared = ::planus::Offset<OrderBook>;
836
837 #[inline]
838 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<OrderBook> {
839 ::planus::WriteAsOffset::prepare(self, builder)
840 }
841 }
842
843 impl<
844 T0: ::planus::WriteAsDefault<u64, u64>,
845 T1: ::planus::WriteAsDefault<u64, u64>,
846 T2: ::planus::WriteAs<::planus::Offset<str>>,
847 T3: ::planus::WriteAs<::planus::Offset<str>>,
848 T4: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
849 T5: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
850 T6: ::planus::WriteAsDefault<u64, u64>,
851 T7: ::planus::WriteAsDefault<u64, u64>,
852 T8: ::planus::WriteAsDefault<bool, bool>,
853 T9: ::planus::WriteAsDefault<u32, u32>,
854 T10: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
855 > ::planus::WriteAsOptional<::planus::Offset<OrderBook>>
856 for OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
857 {
858 type Prepared = ::planus::Offset<OrderBook>;
859
860 #[inline]
861 fn prepare(
862 &self,
863 builder: &mut ::planus::Builder,
864 ) -> ::core::option::Option<::planus::Offset<OrderBook>> {
865 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
866 }
867 }
868
869 impl<
870 T0: ::planus::WriteAsDefault<u64, u64>,
871 T1: ::planus::WriteAsDefault<u64, u64>,
872 T2: ::planus::WriteAs<::planus::Offset<str>>,
873 T3: ::planus::WriteAs<::planus::Offset<str>>,
874 T4: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
875 T5: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::PriceLevel>]>>,
876 T6: ::planus::WriteAsDefault<u64, u64>,
877 T7: ::planus::WriteAsDefault<u64, u64>,
878 T8: ::planus::WriteAsDefault<bool, bool>,
879 T9: ::planus::WriteAsDefault<u32, u32>,
880 T10: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
881 > ::planus::WriteAsOffset<OrderBook>
882 for OrderBookBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
883 {
884 #[inline]
885 fn prepare(&self, builder: &mut ::planus::Builder) -> ::planus::Offset<OrderBook> {
886 let (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) = &self.0;
887 OrderBook::create(builder, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)
888 }
889 }
890
891 #[derive(Copy, Clone)]
893 pub struct OrderBookRef<'a>(::planus::table_reader::Table<'a>);
894
895 impl<'a> OrderBookRef<'a> {
896 #[inline]
898 pub fn timestamp_exchange(&self) -> ::planus::Result<u64> {
899 ::core::result::Result::Ok(
900 self.0
901 .access(0, "OrderBook", "timestamp_exchange")?
902 .unwrap_or(0),
903 )
904 }
905
906 #[inline]
908 pub fn timestamp_system(&self) -> ::planus::Result<u64> {
909 ::core::result::Result::Ok(
910 self.0
911 .access(1, "OrderBook", "timestamp_system")?
912 .unwrap_or(0),
913 )
914 }
915
916 #[inline]
918 pub fn symbol(&self) -> ::planus::Result<&'a ::core::primitive::str> {
919 self.0.access_required(2, "OrderBook", "symbol")
920 }
921
922 #[inline]
924 pub fn exchange(&self) -> ::planus::Result<&'a ::core::primitive::str> {
925 self.0.access_required(3, "OrderBook", "exchange")
926 }
927
928 #[inline]
930 pub fn bids(
931 &self,
932 ) -> ::planus::Result<::planus::Vector<'a, ::planus::Result<self::PriceLevelRef<'a>>>>
933 {
934 self.0.access_required(4, "OrderBook", "bids")
935 }
936
937 #[inline]
939 pub fn asks(
940 &self,
941 ) -> ::planus::Result<::planus::Vector<'a, ::planus::Result<self::PriceLevelRef<'a>>>>
942 {
943 self.0.access_required(5, "OrderBook", "asks")
944 }
945
946 #[inline]
948 pub fn sequence(&self) -> ::planus::Result<u64> {
949 ::core::result::Result::Ok(
950 self.0.access(6, "OrderBook", "sequence")?.unwrap_or(0),
951 )
952 }
953
954 #[inline]
956 pub fn last_update_id(&self) -> ::planus::Result<u64> {
957 ::core::result::Result::Ok(
958 self.0
959 .access(7, "OrderBook", "last_update_id")?
960 .unwrap_or(0),
961 )
962 }
963
964 #[inline]
966 pub fn is_snapshot(&self) -> ::planus::Result<bool> {
967 ::core::result::Result::Ok(
968 self.0
969 .access(8, "OrderBook", "is_snapshot")?
970 .unwrap_or(false),
971 )
972 }
973
974 #[inline]
976 pub fn depth(&self) -> ::planus::Result<u32> {
977 ::core::result::Result::Ok(self.0.access(9, "OrderBook", "depth")?.unwrap_or(0))
978 }
979
980 #[inline]
982 pub fn checksum(
983 &self,
984 ) -> ::planus::Result<::core::option::Option<&'a ::core::primitive::str>>
985 {
986 self.0.access(10, "OrderBook", "checksum")
987 }
988 }
989
990 impl<'a> ::core::fmt::Debug for OrderBookRef<'a> {
991 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
992 let mut f = f.debug_struct("OrderBookRef");
993 f.field("timestamp_exchange", &self.timestamp_exchange());
994 f.field("timestamp_system", &self.timestamp_system());
995 f.field("symbol", &self.symbol());
996 f.field("exchange", &self.exchange());
997 f.field("bids", &self.bids());
998 f.field("asks", &self.asks());
999 f.field("sequence", &self.sequence());
1000 f.field("last_update_id", &self.last_update_id());
1001 f.field("is_snapshot", &self.is_snapshot());
1002 f.field("depth", &self.depth());
1003 if let ::core::option::Option::Some(field_checksum) =
1004 self.checksum().transpose()
1005 {
1006 f.field("checksum", &field_checksum);
1007 }
1008 f.finish()
1009 }
1010 }
1011
1012 impl<'a> ::core::convert::TryFrom<OrderBookRef<'a>> for OrderBook {
1013 type Error = ::planus::Error;
1014
1015 #[allow(unreachable_code)]
1016 fn try_from(value: OrderBookRef<'a>) -> ::planus::Result<Self> {
1017 ::core::result::Result::Ok(Self {
1018 timestamp_exchange: ::core::convert::TryInto::try_into(
1019 value.timestamp_exchange()?,
1020 )?,
1021 timestamp_system: ::core::convert::TryInto::try_into(
1022 value.timestamp_system()?,
1023 )?,
1024 symbol: ::core::convert::Into::into(value.symbol()?),
1025 exchange: ::core::convert::Into::into(value.exchange()?),
1026 bids: value.bids()?.to_vec_result()?,
1027 asks: value.asks()?.to_vec_result()?,
1028 sequence: ::core::convert::TryInto::try_into(value.sequence()?)?,
1029 last_update_id: ::core::convert::TryInto::try_into(
1030 value.last_update_id()?,
1031 )?,
1032 is_snapshot: ::core::convert::TryInto::try_into(value.is_snapshot()?)?,
1033 depth: ::core::convert::TryInto::try_into(value.depth()?)?,
1034 checksum: value.checksum()?.map(::core::convert::Into::into),
1035 })
1036 }
1037 }
1038
1039 impl<'a> ::planus::TableRead<'a> for OrderBookRef<'a> {
1040 #[inline]
1041 fn from_buffer(
1042 buffer: ::planus::SliceWithStartOffset<'a>,
1043 offset: usize,
1044 ) -> ::core::result::Result<Self, ::planus::errors::ErrorKind> {
1045 ::core::result::Result::Ok(Self(::planus::table_reader::Table::from_buffer(
1046 buffer, offset,
1047 )?))
1048 }
1049 }
1050
1051 impl<'a> ::planus::VectorReadInner<'a> for OrderBookRef<'a> {
1052 type Error = ::planus::Error;
1053 const STRIDE: usize = 4;
1054
1055 unsafe fn from_buffer(
1056 buffer: ::planus::SliceWithStartOffset<'a>,
1057 offset: usize,
1058 ) -> ::planus::Result<Self> {
1059 ::planus::TableRead::from_buffer(buffer, offset).map_err(|error_kind| {
1060 error_kind.with_error_location(
1061 "[OrderBookRef]",
1062 "get",
1063 buffer.offset_from_start,
1064 )
1065 })
1066 }
1067 }
1068
1069 unsafe impl ::planus::VectorWrite<::planus::Offset<OrderBook>> for OrderBook {
1073 type Value = ::planus::Offset<OrderBook>;
1074 const STRIDE: usize = 4;
1075 #[inline]
1076 fn prepare(&self, builder: &mut ::planus::Builder) -> Self::Value {
1077 ::planus::WriteAs::prepare(self, builder)
1078 }
1079
1080 #[inline]
1081 unsafe fn write_values(
1082 values: &[::planus::Offset<OrderBook>],
1083 bytes: *mut ::core::mem::MaybeUninit<u8>,
1084 buffer_position: u32,
1085 ) {
1086 let bytes = bytes as *mut [::core::mem::MaybeUninit<u8>; 4];
1087 for (i, v) in ::core::iter::Iterator::enumerate(values.iter()) {
1088 ::planus::WriteAsPrimitive::write(
1089 v,
1090 ::planus::Cursor::new(unsafe { &mut *bytes.add(i) }),
1091 buffer_position - (Self::STRIDE * i) as u32,
1092 );
1093 }
1094 }
1095 }
1096
1097 impl<'a> ::planus::ReadAsRoot<'a> for OrderBookRef<'a> {
1098 fn read_as_root(slice: &'a [u8]) -> ::planus::Result<Self> {
1099 ::planus::TableRead::from_buffer(
1100 ::planus::SliceWithStartOffset {
1101 buffer: slice,
1102 offset_from_start: 0,
1103 },
1104 0,
1105 )
1106 .map_err(|error_kind| {
1107 error_kind.with_error_location("[OrderBookRef]", "read_as_root", 0)
1108 })
1109 }
1110 }
1111
1112 #[derive(
1117 Clone,
1118 Debug,
1119 PartialEq,
1120 PartialOrd,
1121 Eq,
1122 Ord,
1123 Hash,
1124 ::serde::Serialize,
1125 ::serde::Deserialize,
1126 )]
1127 pub struct OrderBookBatch {
1128 pub orderbooks: ::planus::alloc::vec::Vec<self::OrderBook>,
1130 pub batch_timestamp: u64,
1132 pub batch_id: ::core::option::Option<::planus::alloc::string::String>,
1134 }
1135
1136 #[allow(clippy::derivable_impls)]
1137 impl ::core::default::Default for OrderBookBatch {
1138 fn default() -> Self {
1139 Self {
1140 orderbooks: ::core::default::Default::default(),
1141 batch_timestamp: 0,
1142 batch_id: ::core::default::Default::default(),
1143 }
1144 }
1145 }
1146
1147 impl OrderBookBatch {
1148 #[inline]
1150 pub const fn builder() -> OrderBookBatchBuilder<()> {
1151 OrderBookBatchBuilder(())
1152 }
1153
1154 #[allow(clippy::too_many_arguments)]
1155 pub fn create(
1156 builder: &mut ::planus::Builder,
1157 field_orderbooks: impl ::planus::WriteAs<
1158 ::planus::Offset<[::planus::Offset<self::OrderBook>]>,
1159 >,
1160 field_batch_timestamp: impl ::planus::WriteAsDefault<u64, u64>,
1161 field_batch_id: impl ::planus::WriteAsOptional<
1162 ::planus::Offset<::core::primitive::str>,
1163 >,
1164 ) -> ::planus::Offset<Self> {
1165 let prepared_orderbooks = field_orderbooks.prepare(builder);
1166 let prepared_batch_timestamp = field_batch_timestamp.prepare(builder, &0);
1167 let prepared_batch_id = field_batch_id.prepare(builder);
1168
1169 let mut table_writer: ::planus::table_writer::TableWriter<10> =
1170 ::core::default::Default::default();
1171 if prepared_batch_timestamp.is_some() {
1172 table_writer.write_entry::<u64>(1);
1173 }
1174 table_writer
1175 .write_entry::<::planus::Offset<[::planus::Offset<self::OrderBook>]>>(0);
1176 if prepared_batch_id.is_some() {
1177 table_writer.write_entry::<::planus::Offset<str>>(2);
1178 }
1179
1180 unsafe {
1181 table_writer.finish(builder, |object_writer| {
1182 if let ::core::option::Option::Some(prepared_batch_timestamp) =
1183 prepared_batch_timestamp
1184 {
1185 object_writer.write::<_, _, 8>(&prepared_batch_timestamp);
1186 }
1187 object_writer.write::<_, _, 4>(&prepared_orderbooks);
1188 if let ::core::option::Option::Some(prepared_batch_id) =
1189 prepared_batch_id
1190 {
1191 object_writer.write::<_, _, 4>(&prepared_batch_id);
1192 }
1193 });
1194 }
1195 builder.current_offset()
1196 }
1197 }
1198
1199 impl ::planus::WriteAs<::planus::Offset<OrderBookBatch>> for OrderBookBatch {
1200 type Prepared = ::planus::Offset<Self>;
1201
1202 #[inline]
1203 fn prepare(
1204 &self,
1205 builder: &mut ::planus::Builder,
1206 ) -> ::planus::Offset<OrderBookBatch> {
1207 ::planus::WriteAsOffset::prepare(self, builder)
1208 }
1209 }
1210
1211 impl ::planus::WriteAsOptional<::planus::Offset<OrderBookBatch>> for OrderBookBatch {
1212 type Prepared = ::planus::Offset<Self>;
1213
1214 #[inline]
1215 fn prepare(
1216 &self,
1217 builder: &mut ::planus::Builder,
1218 ) -> ::core::option::Option<::planus::Offset<OrderBookBatch>> {
1219 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
1220 }
1221 }
1222
1223 impl ::planus::WriteAsOffset<OrderBookBatch> for OrderBookBatch {
1224 #[inline]
1225 fn prepare(
1226 &self,
1227 builder: &mut ::planus::Builder,
1228 ) -> ::planus::Offset<OrderBookBatch> {
1229 OrderBookBatch::create(
1230 builder,
1231 &self.orderbooks,
1232 self.batch_timestamp,
1233 &self.batch_id,
1234 )
1235 }
1236 }
1237
1238 #[derive(Debug)]
1242 #[must_use]
1243 pub struct OrderBookBatchBuilder<State>(State);
1244
1245 impl OrderBookBatchBuilder<()> {
1246 #[inline]
1248 #[allow(clippy::type_complexity)]
1249 pub const fn orderbooks<T0>(self, value: T0) -> OrderBookBatchBuilder<(T0,)>
1250 where
1251 T0: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::OrderBook>]>>,
1252 {
1253 OrderBookBatchBuilder((value,))
1254 }
1255 }
1256
1257 impl<T0> OrderBookBatchBuilder<(T0,)> {
1258 #[inline]
1260 #[allow(clippy::type_complexity)]
1261 pub fn batch_timestamp<T1>(self, value: T1) -> OrderBookBatchBuilder<(T0, T1)>
1262 where
1263 T1: ::planus::WriteAsDefault<u64, u64>,
1264 {
1265 let (v0,) = self.0;
1266 OrderBookBatchBuilder((v0, value))
1267 }
1268
1269 #[inline]
1271 #[allow(clippy::type_complexity)]
1272 pub fn batch_timestamp_as_default(
1273 self,
1274 ) -> OrderBookBatchBuilder<(T0, ::planus::DefaultValue)> {
1275 self.batch_timestamp(::planus::DefaultValue)
1276 }
1277 }
1278
1279 impl<T0, T1> OrderBookBatchBuilder<(T0, T1)> {
1280 #[inline]
1282 #[allow(clippy::type_complexity)]
1283 pub fn batch_id<T2>(self, value: T2) -> OrderBookBatchBuilder<(T0, T1, T2)>
1284 where
1285 T2: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
1286 {
1287 let (v0, v1) = self.0;
1288 OrderBookBatchBuilder((v0, v1, value))
1289 }
1290
1291 #[inline]
1293 #[allow(clippy::type_complexity)]
1294 pub fn batch_id_as_null(self) -> OrderBookBatchBuilder<(T0, T1, ())> {
1295 self.batch_id(())
1296 }
1297 }
1298
1299 impl<T0, T1, T2> OrderBookBatchBuilder<(T0, T1, T2)> {
1300 #[inline]
1302 pub fn finish(
1303 self,
1304 builder: &mut ::planus::Builder,
1305 ) -> ::planus::Offset<OrderBookBatch>
1306 where
1307 Self: ::planus::WriteAsOffset<OrderBookBatch>,
1308 {
1309 ::planus::WriteAsOffset::prepare(&self, builder)
1310 }
1311 }
1312
1313 impl<
1314 T0: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::OrderBook>]>>,
1315 T1: ::planus::WriteAsDefault<u64, u64>,
1316 T2: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
1317 > ::planus::WriteAs<::planus::Offset<OrderBookBatch>>
1318 for OrderBookBatchBuilder<(T0, T1, T2)>
1319 {
1320 type Prepared = ::planus::Offset<OrderBookBatch>;
1321
1322 #[inline]
1323 fn prepare(
1324 &self,
1325 builder: &mut ::planus::Builder,
1326 ) -> ::planus::Offset<OrderBookBatch> {
1327 ::planus::WriteAsOffset::prepare(self, builder)
1328 }
1329 }
1330
1331 impl<
1332 T0: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::OrderBook>]>>,
1333 T1: ::planus::WriteAsDefault<u64, u64>,
1334 T2: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
1335 > ::planus::WriteAsOptional<::planus::Offset<OrderBookBatch>>
1336 for OrderBookBatchBuilder<(T0, T1, T2)>
1337 {
1338 type Prepared = ::planus::Offset<OrderBookBatch>;
1339
1340 #[inline]
1341 fn prepare(
1342 &self,
1343 builder: &mut ::planus::Builder,
1344 ) -> ::core::option::Option<::planus::Offset<OrderBookBatch>> {
1345 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
1346 }
1347 }
1348
1349 impl<
1350 T0: ::planus::WriteAs<::planus::Offset<[::planus::Offset<self::OrderBook>]>>,
1351 T1: ::planus::WriteAsDefault<u64, u64>,
1352 T2: ::planus::WriteAsOptional<::planus::Offset<::core::primitive::str>>,
1353 > ::planus::WriteAsOffset<OrderBookBatch> for OrderBookBatchBuilder<(T0, T1, T2)>
1354 {
1355 #[inline]
1356 fn prepare(
1357 &self,
1358 builder: &mut ::planus::Builder,
1359 ) -> ::planus::Offset<OrderBookBatch> {
1360 let (v0, v1, v2) = &self.0;
1361 OrderBookBatch::create(builder, v0, v1, v2)
1362 }
1363 }
1364
1365 #[derive(Copy, Clone)]
1367 pub struct OrderBookBatchRef<'a>(::planus::table_reader::Table<'a>);
1368
1369 impl<'a> OrderBookBatchRef<'a> {
1370 #[inline]
1372 pub fn orderbooks(
1373 &self,
1374 ) -> ::planus::Result<::planus::Vector<'a, ::planus::Result<self::OrderBookRef<'a>>>>
1375 {
1376 self.0.access_required(0, "OrderBookBatch", "orderbooks")
1377 }
1378
1379 #[inline]
1381 pub fn batch_timestamp(&self) -> ::planus::Result<u64> {
1382 ::core::result::Result::Ok(
1383 self.0
1384 .access(1, "OrderBookBatch", "batch_timestamp")?
1385 .unwrap_or(0),
1386 )
1387 }
1388
1389 #[inline]
1391 pub fn batch_id(
1392 &self,
1393 ) -> ::planus::Result<::core::option::Option<&'a ::core::primitive::str>>
1394 {
1395 self.0.access(2, "OrderBookBatch", "batch_id")
1396 }
1397 }
1398
1399 impl<'a> ::core::fmt::Debug for OrderBookBatchRef<'a> {
1400 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1401 let mut f = f.debug_struct("OrderBookBatchRef");
1402 f.field("orderbooks", &self.orderbooks());
1403 f.field("batch_timestamp", &self.batch_timestamp());
1404 if let ::core::option::Option::Some(field_batch_id) =
1405 self.batch_id().transpose()
1406 {
1407 f.field("batch_id", &field_batch_id);
1408 }
1409 f.finish()
1410 }
1411 }
1412
1413 impl<'a> ::core::convert::TryFrom<OrderBookBatchRef<'a>> for OrderBookBatch {
1414 type Error = ::planus::Error;
1415
1416 #[allow(unreachable_code)]
1417 fn try_from(value: OrderBookBatchRef<'a>) -> ::planus::Result<Self> {
1418 ::core::result::Result::Ok(Self {
1419 orderbooks: value.orderbooks()?.to_vec_result()?,
1420 batch_timestamp: ::core::convert::TryInto::try_into(
1421 value.batch_timestamp()?,
1422 )?,
1423 batch_id: value.batch_id()?.map(::core::convert::Into::into),
1424 })
1425 }
1426 }
1427
1428 impl<'a> ::planus::TableRead<'a> for OrderBookBatchRef<'a> {
1429 #[inline]
1430 fn from_buffer(
1431 buffer: ::planus::SliceWithStartOffset<'a>,
1432 offset: usize,
1433 ) -> ::core::result::Result<Self, ::planus::errors::ErrorKind> {
1434 ::core::result::Result::Ok(Self(::planus::table_reader::Table::from_buffer(
1435 buffer, offset,
1436 )?))
1437 }
1438 }
1439
1440 impl<'a> ::planus::VectorReadInner<'a> for OrderBookBatchRef<'a> {
1441 type Error = ::planus::Error;
1442 const STRIDE: usize = 4;
1443
1444 unsafe fn from_buffer(
1445 buffer: ::planus::SliceWithStartOffset<'a>,
1446 offset: usize,
1447 ) -> ::planus::Result<Self> {
1448 ::planus::TableRead::from_buffer(buffer, offset).map_err(|error_kind| {
1449 error_kind.with_error_location(
1450 "[OrderBookBatchRef]",
1451 "get",
1452 buffer.offset_from_start,
1453 )
1454 })
1455 }
1456 }
1457
1458 unsafe impl ::planus::VectorWrite<::planus::Offset<OrderBookBatch>> for OrderBookBatch {
1462 type Value = ::planus::Offset<OrderBookBatch>;
1463 const STRIDE: usize = 4;
1464 #[inline]
1465 fn prepare(&self, builder: &mut ::planus::Builder) -> Self::Value {
1466 ::planus::WriteAs::prepare(self, builder)
1467 }
1468
1469 #[inline]
1470 unsafe fn write_values(
1471 values: &[::planus::Offset<OrderBookBatch>],
1472 bytes: *mut ::core::mem::MaybeUninit<u8>,
1473 buffer_position: u32,
1474 ) {
1475 let bytes = bytes as *mut [::core::mem::MaybeUninit<u8>; 4];
1476 for (i, v) in ::core::iter::Iterator::enumerate(values.iter()) {
1477 ::planus::WriteAsPrimitive::write(
1478 v,
1479 ::planus::Cursor::new(unsafe { &mut *bytes.add(i) }),
1480 buffer_position - (Self::STRIDE * i) as u32,
1481 );
1482 }
1483 }
1484 }
1485
1486 impl<'a> ::planus::ReadAsRoot<'a> for OrderBookBatchRef<'a> {
1487 fn read_as_root(slice: &'a [u8]) -> ::planus::Result<Self> {
1488 ::planus::TableRead::from_buffer(
1489 ::planus::SliceWithStartOffset {
1490 buffer: slice,
1491 offset_from_start: 0,
1492 },
1493 0,
1494 )
1495 .map_err(|error_kind| {
1496 error_kind.with_error_location("[OrderBookBatchRef]", "read_as_root", 0)
1497 })
1498 }
1499 }
1500
1501 #[derive(
1506 Clone,
1507 Debug,
1508 PartialEq,
1509 PartialOrd,
1510 Eq,
1511 Ord,
1512 Hash,
1513 ::serde::Serialize,
1514 ::serde::Deserialize,
1515 )]
1516 pub struct OrderBookData {
1517 pub batch: ::planus::alloc::boxed::Box<self::OrderBookBatch>,
1519 pub metadata:
1521 ::core::option::Option<::planus::alloc::boxed::Box<self::OrderBookMetadata>>,
1522 }
1523
1524 #[allow(clippy::derivable_impls)]
1525 impl ::core::default::Default for OrderBookData {
1526 fn default() -> Self {
1527 Self {
1528 batch: ::core::default::Default::default(),
1529 metadata: ::core::default::Default::default(),
1530 }
1531 }
1532 }
1533
1534 impl OrderBookData {
1535 #[inline]
1537 pub const fn builder() -> OrderBookDataBuilder<()> {
1538 OrderBookDataBuilder(())
1539 }
1540
1541 #[allow(clippy::too_many_arguments)]
1542 pub fn create(
1543 builder: &mut ::planus::Builder,
1544 field_batch: impl ::planus::WriteAs<::planus::Offset<self::OrderBookBatch>>,
1545 field_metadata: impl ::planus::WriteAsOptional<
1546 ::planus::Offset<self::OrderBookMetadata>,
1547 >,
1548 ) -> ::planus::Offset<Self> {
1549 let prepared_batch = field_batch.prepare(builder);
1550 let prepared_metadata = field_metadata.prepare(builder);
1551
1552 let mut table_writer: ::planus::table_writer::TableWriter<8> =
1553 ::core::default::Default::default();
1554 table_writer.write_entry::<::planus::Offset<self::OrderBookBatch>>(0);
1555 if prepared_metadata.is_some() {
1556 table_writer.write_entry::<::planus::Offset<self::OrderBookMetadata>>(1);
1557 }
1558
1559 unsafe {
1560 table_writer.finish(builder, |object_writer| {
1561 object_writer.write::<_, _, 4>(&prepared_batch);
1562 if let ::core::option::Option::Some(prepared_metadata) =
1563 prepared_metadata
1564 {
1565 object_writer.write::<_, _, 4>(&prepared_metadata);
1566 }
1567 });
1568 }
1569 builder.current_offset()
1570 }
1571 }
1572
1573 impl ::planus::WriteAs<::planus::Offset<OrderBookData>> for OrderBookData {
1574 type Prepared = ::planus::Offset<Self>;
1575
1576 #[inline]
1577 fn prepare(
1578 &self,
1579 builder: &mut ::planus::Builder,
1580 ) -> ::planus::Offset<OrderBookData> {
1581 ::planus::WriteAsOffset::prepare(self, builder)
1582 }
1583 }
1584
1585 impl ::planus::WriteAsOptional<::planus::Offset<OrderBookData>> for OrderBookData {
1586 type Prepared = ::planus::Offset<Self>;
1587
1588 #[inline]
1589 fn prepare(
1590 &self,
1591 builder: &mut ::planus::Builder,
1592 ) -> ::core::option::Option<::planus::Offset<OrderBookData>> {
1593 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
1594 }
1595 }
1596
1597 impl ::planus::WriteAsOffset<OrderBookData> for OrderBookData {
1598 #[inline]
1599 fn prepare(
1600 &self,
1601 builder: &mut ::planus::Builder,
1602 ) -> ::planus::Offset<OrderBookData> {
1603 OrderBookData::create(builder, &self.batch, &self.metadata)
1604 }
1605 }
1606
1607 #[derive(Debug)]
1611 #[must_use]
1612 pub struct OrderBookDataBuilder<State>(State);
1613
1614 impl OrderBookDataBuilder<()> {
1615 #[inline]
1617 #[allow(clippy::type_complexity)]
1618 pub const fn batch<T0>(self, value: T0) -> OrderBookDataBuilder<(T0,)>
1619 where
1620 T0: ::planus::WriteAs<::planus::Offset<self::OrderBookBatch>>,
1621 {
1622 OrderBookDataBuilder((value,))
1623 }
1624 }
1625
1626 impl<T0> OrderBookDataBuilder<(T0,)> {
1627 #[inline]
1629 #[allow(clippy::type_complexity)]
1630 pub fn metadata<T1>(self, value: T1) -> OrderBookDataBuilder<(T0, T1)>
1631 where
1632 T1: ::planus::WriteAsOptional<::planus::Offset<self::OrderBookMetadata>>,
1633 {
1634 let (v0,) = self.0;
1635 OrderBookDataBuilder((v0, value))
1636 }
1637
1638 #[inline]
1640 #[allow(clippy::type_complexity)]
1641 pub fn metadata_as_null(self) -> OrderBookDataBuilder<(T0, ())> {
1642 self.metadata(())
1643 }
1644 }
1645
1646 impl<T0, T1> OrderBookDataBuilder<(T0, T1)> {
1647 #[inline]
1649 pub fn finish(
1650 self,
1651 builder: &mut ::planus::Builder,
1652 ) -> ::planus::Offset<OrderBookData>
1653 where
1654 Self: ::planus::WriteAsOffset<OrderBookData>,
1655 {
1656 ::planus::WriteAsOffset::prepare(&self, builder)
1657 }
1658 }
1659
1660 impl<
1661 T0: ::planus::WriteAs<::planus::Offset<self::OrderBookBatch>>,
1662 T1: ::planus::WriteAsOptional<::planus::Offset<self::OrderBookMetadata>>,
1663 > ::planus::WriteAs<::planus::Offset<OrderBookData>>
1664 for OrderBookDataBuilder<(T0, T1)>
1665 {
1666 type Prepared = ::planus::Offset<OrderBookData>;
1667
1668 #[inline]
1669 fn prepare(
1670 &self,
1671 builder: &mut ::planus::Builder,
1672 ) -> ::planus::Offset<OrderBookData> {
1673 ::planus::WriteAsOffset::prepare(self, builder)
1674 }
1675 }
1676
1677 impl<
1678 T0: ::planus::WriteAs<::planus::Offset<self::OrderBookBatch>>,
1679 T1: ::planus::WriteAsOptional<::planus::Offset<self::OrderBookMetadata>>,
1680 > ::planus::WriteAsOptional<::planus::Offset<OrderBookData>>
1681 for OrderBookDataBuilder<(T0, T1)>
1682 {
1683 type Prepared = ::planus::Offset<OrderBookData>;
1684
1685 #[inline]
1686 fn prepare(
1687 &self,
1688 builder: &mut ::planus::Builder,
1689 ) -> ::core::option::Option<::planus::Offset<OrderBookData>> {
1690 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
1691 }
1692 }
1693
1694 impl<
1695 T0: ::planus::WriteAs<::planus::Offset<self::OrderBookBatch>>,
1696 T1: ::planus::WriteAsOptional<::planus::Offset<self::OrderBookMetadata>>,
1697 > ::planus::WriteAsOffset<OrderBookData> for OrderBookDataBuilder<(T0, T1)>
1698 {
1699 #[inline]
1700 fn prepare(
1701 &self,
1702 builder: &mut ::planus::Builder,
1703 ) -> ::planus::Offset<OrderBookData> {
1704 let (v0, v1) = &self.0;
1705 OrderBookData::create(builder, v0, v1)
1706 }
1707 }
1708
1709 #[derive(Copy, Clone)]
1711 pub struct OrderBookDataRef<'a>(::planus::table_reader::Table<'a>);
1712
1713 impl<'a> OrderBookDataRef<'a> {
1714 #[inline]
1716 pub fn batch(&self) -> ::planus::Result<self::OrderBookBatchRef<'a>> {
1717 self.0.access_required(0, "OrderBookData", "batch")
1718 }
1719
1720 #[inline]
1722 pub fn metadata(
1723 &self,
1724 ) -> ::planus::Result<::core::option::Option<self::OrderBookMetadataRef<'a>>>
1725 {
1726 self.0.access(1, "OrderBookData", "metadata")
1727 }
1728 }
1729
1730 impl<'a> ::core::fmt::Debug for OrderBookDataRef<'a> {
1731 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1732 let mut f = f.debug_struct("OrderBookDataRef");
1733 f.field("batch", &self.batch());
1734 if let ::core::option::Option::Some(field_metadata) =
1735 self.metadata().transpose()
1736 {
1737 f.field("metadata", &field_metadata);
1738 }
1739 f.finish()
1740 }
1741 }
1742
1743 impl<'a> ::core::convert::TryFrom<OrderBookDataRef<'a>> for OrderBookData {
1744 type Error = ::planus::Error;
1745
1746 #[allow(unreachable_code)]
1747 fn try_from(value: OrderBookDataRef<'a>) -> ::planus::Result<Self> {
1748 ::core::result::Result::Ok(Self {
1749 batch: ::planus::alloc::boxed::Box::new(
1750 ::core::convert::TryInto::try_into(value.batch()?)?,
1751 ),
1752 metadata: if let ::core::option::Option::Some(metadata) =
1753 value.metadata()?
1754 {
1755 ::core::option::Option::Some(::planus::alloc::boxed::Box::new(
1756 ::core::convert::TryInto::try_into(metadata)?,
1757 ))
1758 } else {
1759 ::core::option::Option::None
1760 },
1761 })
1762 }
1763 }
1764
1765 impl<'a> ::planus::TableRead<'a> for OrderBookDataRef<'a> {
1766 #[inline]
1767 fn from_buffer(
1768 buffer: ::planus::SliceWithStartOffset<'a>,
1769 offset: usize,
1770 ) -> ::core::result::Result<Self, ::planus::errors::ErrorKind> {
1771 ::core::result::Result::Ok(Self(::planus::table_reader::Table::from_buffer(
1772 buffer, offset,
1773 )?))
1774 }
1775 }
1776
1777 impl<'a> ::planus::VectorReadInner<'a> for OrderBookDataRef<'a> {
1778 type Error = ::planus::Error;
1779 const STRIDE: usize = 4;
1780
1781 unsafe fn from_buffer(
1782 buffer: ::planus::SliceWithStartOffset<'a>,
1783 offset: usize,
1784 ) -> ::planus::Result<Self> {
1785 ::planus::TableRead::from_buffer(buffer, offset).map_err(|error_kind| {
1786 error_kind.with_error_location(
1787 "[OrderBookDataRef]",
1788 "get",
1789 buffer.offset_from_start,
1790 )
1791 })
1792 }
1793 }
1794
1795 unsafe impl ::planus::VectorWrite<::planus::Offset<OrderBookData>> for OrderBookData {
1799 type Value = ::planus::Offset<OrderBookData>;
1800 const STRIDE: usize = 4;
1801 #[inline]
1802 fn prepare(&self, builder: &mut ::planus::Builder) -> Self::Value {
1803 ::planus::WriteAs::prepare(self, builder)
1804 }
1805
1806 #[inline]
1807 unsafe fn write_values(
1808 values: &[::planus::Offset<OrderBookData>],
1809 bytes: *mut ::core::mem::MaybeUninit<u8>,
1810 buffer_position: u32,
1811 ) {
1812 let bytes = bytes as *mut [::core::mem::MaybeUninit<u8>; 4];
1813 for (i, v) in ::core::iter::Iterator::enumerate(values.iter()) {
1814 ::planus::WriteAsPrimitive::write(
1815 v,
1816 ::planus::Cursor::new(unsafe { &mut *bytes.add(i) }),
1817 buffer_position - (Self::STRIDE * i) as u32,
1818 );
1819 }
1820 }
1821 }
1822
1823 impl<'a> ::planus::ReadAsRoot<'a> for OrderBookDataRef<'a> {
1824 fn read_as_root(slice: &'a [u8]) -> ::planus::Result<Self> {
1825 ::planus::TableRead::from_buffer(
1826 ::planus::SliceWithStartOffset {
1827 buffer: slice,
1828 offset_from_start: 0,
1829 },
1830 0,
1831 )
1832 .map_err(|error_kind| {
1833 error_kind.with_error_location("[OrderBookDataRef]", "read_as_root", 0)
1834 })
1835 }
1836 }
1837
1838 #[derive(
1843 Clone,
1844 Debug,
1845 PartialEq,
1846 PartialOrd,
1847 Eq,
1848 Ord,
1849 Hash,
1850 ::serde::Serialize,
1851 ::serde::Deserialize,
1852 )]
1853 pub struct OrderBookMetadata {
1854 pub file_version: u32,
1856 pub created_at: u64,
1858 pub exchange: ::planus::alloc::string::String,
1860 pub symbol: ::planus::alloc::string::String,
1862 pub date: ::planus::alloc::string::String,
1864 pub total_updates: u64,
1866 pub first_update_time: u64,
1868 pub last_update_time: u64,
1870 pub max_depth: u32,
1872 pub compression_level: u8,
1874 pub snapshot_count: u64,
1876 pub update_count: u64,
1878 }
1879
1880 #[allow(clippy::derivable_impls)]
1881 impl ::core::default::Default for OrderBookMetadata {
1882 fn default() -> Self {
1883 Self {
1884 file_version: 1,
1885 created_at: 0,
1886 exchange: ::core::default::Default::default(),
1887 symbol: ::core::default::Default::default(),
1888 date: ::core::default::Default::default(),
1889 total_updates: 0,
1890 first_update_time: 0,
1891 last_update_time: 0,
1892 max_depth: 0,
1893 compression_level: 0,
1894 snapshot_count: 0,
1895 update_count: 0,
1896 }
1897 }
1898 }
1899
1900 impl OrderBookMetadata {
1901 #[inline]
1903 pub const fn builder() -> OrderBookMetadataBuilder<()> {
1904 OrderBookMetadataBuilder(())
1905 }
1906
1907 #[allow(clippy::too_many_arguments)]
1908 pub fn create(
1909 builder: &mut ::planus::Builder,
1910 field_file_version: impl ::planus::WriteAsDefault<u32, u32>,
1911 field_created_at: impl ::planus::WriteAsDefault<u64, u64>,
1912 field_exchange: impl ::planus::WriteAs<::planus::Offset<str>>,
1913 field_symbol: impl ::planus::WriteAs<::planus::Offset<str>>,
1914 field_date: impl ::planus::WriteAs<::planus::Offset<str>>,
1915 field_total_updates: impl ::planus::WriteAsDefault<u64, u64>,
1916 field_first_update_time: impl ::planus::WriteAsDefault<u64, u64>,
1917 field_last_update_time: impl ::planus::WriteAsDefault<u64, u64>,
1918 field_max_depth: impl ::planus::WriteAsDefault<u32, u32>,
1919 field_compression_level: impl ::planus::WriteAsDefault<u8, u8>,
1920 field_snapshot_count: impl ::planus::WriteAsDefault<u64, u64>,
1921 field_update_count: impl ::planus::WriteAsDefault<u64, u64>,
1922 ) -> ::planus::Offset<Self> {
1923 let prepared_file_version = field_file_version.prepare(builder, &1);
1924 let prepared_created_at = field_created_at.prepare(builder, &0);
1925 let prepared_exchange = field_exchange.prepare(builder);
1926 let prepared_symbol = field_symbol.prepare(builder);
1927 let prepared_date = field_date.prepare(builder);
1928 let prepared_total_updates = field_total_updates.prepare(builder, &0);
1929 let prepared_first_update_time = field_first_update_time.prepare(builder, &0);
1930 let prepared_last_update_time = field_last_update_time.prepare(builder, &0);
1931 let prepared_max_depth = field_max_depth.prepare(builder, &0);
1932 let prepared_compression_level = field_compression_level.prepare(builder, &0);
1933 let prepared_snapshot_count = field_snapshot_count.prepare(builder, &0);
1934 let prepared_update_count = field_update_count.prepare(builder, &0);
1935
1936 let mut table_writer: ::planus::table_writer::TableWriter<28> =
1937 ::core::default::Default::default();
1938 if prepared_created_at.is_some() {
1939 table_writer.write_entry::<u64>(1);
1940 }
1941 if prepared_total_updates.is_some() {
1942 table_writer.write_entry::<u64>(5);
1943 }
1944 if prepared_first_update_time.is_some() {
1945 table_writer.write_entry::<u64>(6);
1946 }
1947 if prepared_last_update_time.is_some() {
1948 table_writer.write_entry::<u64>(7);
1949 }
1950 if prepared_snapshot_count.is_some() {
1951 table_writer.write_entry::<u64>(10);
1952 }
1953 if prepared_update_count.is_some() {
1954 table_writer.write_entry::<u64>(11);
1955 }
1956 if prepared_file_version.is_some() {
1957 table_writer.write_entry::<u32>(0);
1958 }
1959 table_writer.write_entry::<::planus::Offset<str>>(2);
1960 table_writer.write_entry::<::planus::Offset<str>>(3);
1961 table_writer.write_entry::<::planus::Offset<str>>(4);
1962 if prepared_max_depth.is_some() {
1963 table_writer.write_entry::<u32>(8);
1964 }
1965 if prepared_compression_level.is_some() {
1966 table_writer.write_entry::<u8>(9);
1967 }
1968
1969 unsafe {
1970 table_writer.finish(builder, |object_writer| {
1971 if let ::core::option::Option::Some(prepared_created_at) =
1972 prepared_created_at
1973 {
1974 object_writer.write::<_, _, 8>(&prepared_created_at);
1975 }
1976 if let ::core::option::Option::Some(prepared_total_updates) =
1977 prepared_total_updates
1978 {
1979 object_writer.write::<_, _, 8>(&prepared_total_updates);
1980 }
1981 if let ::core::option::Option::Some(prepared_first_update_time) =
1982 prepared_first_update_time
1983 {
1984 object_writer.write::<_, _, 8>(&prepared_first_update_time);
1985 }
1986 if let ::core::option::Option::Some(prepared_last_update_time) =
1987 prepared_last_update_time
1988 {
1989 object_writer.write::<_, _, 8>(&prepared_last_update_time);
1990 }
1991 if let ::core::option::Option::Some(prepared_snapshot_count) =
1992 prepared_snapshot_count
1993 {
1994 object_writer.write::<_, _, 8>(&prepared_snapshot_count);
1995 }
1996 if let ::core::option::Option::Some(prepared_update_count) =
1997 prepared_update_count
1998 {
1999 object_writer.write::<_, _, 8>(&prepared_update_count);
2000 }
2001 if let ::core::option::Option::Some(prepared_file_version) =
2002 prepared_file_version
2003 {
2004 object_writer.write::<_, _, 4>(&prepared_file_version);
2005 }
2006 object_writer.write::<_, _, 4>(&prepared_exchange);
2007 object_writer.write::<_, _, 4>(&prepared_symbol);
2008 object_writer.write::<_, _, 4>(&prepared_date);
2009 if let ::core::option::Option::Some(prepared_max_depth) =
2010 prepared_max_depth
2011 {
2012 object_writer.write::<_, _, 4>(&prepared_max_depth);
2013 }
2014 if let ::core::option::Option::Some(prepared_compression_level) =
2015 prepared_compression_level
2016 {
2017 object_writer.write::<_, _, 1>(&prepared_compression_level);
2018 }
2019 });
2020 }
2021 builder.current_offset()
2022 }
2023 }
2024
2025 impl ::planus::WriteAs<::planus::Offset<OrderBookMetadata>> for OrderBookMetadata {
2026 type Prepared = ::planus::Offset<Self>;
2027
2028 #[inline]
2029 fn prepare(
2030 &self,
2031 builder: &mut ::planus::Builder,
2032 ) -> ::planus::Offset<OrderBookMetadata> {
2033 ::planus::WriteAsOffset::prepare(self, builder)
2034 }
2035 }
2036
2037 impl ::planus::WriteAsOptional<::planus::Offset<OrderBookMetadata>> for OrderBookMetadata {
2038 type Prepared = ::planus::Offset<Self>;
2039
2040 #[inline]
2041 fn prepare(
2042 &self,
2043 builder: &mut ::planus::Builder,
2044 ) -> ::core::option::Option<::planus::Offset<OrderBookMetadata>> {
2045 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
2046 }
2047 }
2048
2049 impl ::planus::WriteAsOffset<OrderBookMetadata> for OrderBookMetadata {
2050 #[inline]
2051 fn prepare(
2052 &self,
2053 builder: &mut ::planus::Builder,
2054 ) -> ::planus::Offset<OrderBookMetadata> {
2055 OrderBookMetadata::create(
2056 builder,
2057 self.file_version,
2058 self.created_at,
2059 &self.exchange,
2060 &self.symbol,
2061 &self.date,
2062 self.total_updates,
2063 self.first_update_time,
2064 self.last_update_time,
2065 self.max_depth,
2066 self.compression_level,
2067 self.snapshot_count,
2068 self.update_count,
2069 )
2070 }
2071 }
2072
2073 #[derive(Debug)]
2077 #[must_use]
2078 pub struct OrderBookMetadataBuilder<State>(State);
2079
2080 impl OrderBookMetadataBuilder<()> {
2081 #[inline]
2083 #[allow(clippy::type_complexity)]
2084 pub const fn file_version<T0>(self, value: T0) -> OrderBookMetadataBuilder<(T0,)>
2085 where
2086 T0: ::planus::WriteAsDefault<u32, u32>,
2087 {
2088 OrderBookMetadataBuilder((value,))
2089 }
2090
2091 #[inline]
2093 #[allow(clippy::type_complexity)]
2094 pub const fn file_version_as_default(
2095 self,
2096 ) -> OrderBookMetadataBuilder<(::planus::DefaultValue,)> {
2097 self.file_version(::planus::DefaultValue)
2098 }
2099 }
2100
2101 impl<T0> OrderBookMetadataBuilder<(T0,)> {
2102 #[inline]
2104 #[allow(clippy::type_complexity)]
2105 pub fn created_at<T1>(self, value: T1) -> OrderBookMetadataBuilder<(T0, T1)>
2106 where
2107 T1: ::planus::WriteAsDefault<u64, u64>,
2108 {
2109 let (v0,) = self.0;
2110 OrderBookMetadataBuilder((v0, value))
2111 }
2112
2113 #[inline]
2115 #[allow(clippy::type_complexity)]
2116 pub fn created_at_as_default(
2117 self,
2118 ) -> OrderBookMetadataBuilder<(T0, ::planus::DefaultValue)> {
2119 self.created_at(::planus::DefaultValue)
2120 }
2121 }
2122
2123 impl<T0, T1> OrderBookMetadataBuilder<(T0, T1)> {
2124 #[inline]
2126 #[allow(clippy::type_complexity)]
2127 pub fn exchange<T2>(self, value: T2) -> OrderBookMetadataBuilder<(T0, T1, T2)>
2128 where
2129 T2: ::planus::WriteAs<::planus::Offset<str>>,
2130 {
2131 let (v0, v1) = self.0;
2132 OrderBookMetadataBuilder((v0, v1, value))
2133 }
2134 }
2135
2136 impl<T0, T1, T2> OrderBookMetadataBuilder<(T0, T1, T2)> {
2137 #[inline]
2139 #[allow(clippy::type_complexity)]
2140 pub fn symbol<T3>(self, value: T3) -> OrderBookMetadataBuilder<(T0, T1, T2, T3)>
2141 where
2142 T3: ::planus::WriteAs<::planus::Offset<str>>,
2143 {
2144 let (v0, v1, v2) = self.0;
2145 OrderBookMetadataBuilder((v0, v1, v2, value))
2146 }
2147 }
2148
2149 impl<T0, T1, T2, T3> OrderBookMetadataBuilder<(T0, T1, T2, T3)> {
2150 #[inline]
2152 #[allow(clippy::type_complexity)]
2153 pub fn date<T4>(self, value: T4) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4)>
2154 where
2155 T4: ::planus::WriteAs<::planus::Offset<str>>,
2156 {
2157 let (v0, v1, v2, v3) = self.0;
2158 OrderBookMetadataBuilder((v0, v1, v2, v3, value))
2159 }
2160 }
2161
2162 impl<T0, T1, T2, T3, T4> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4)> {
2163 #[inline]
2165 #[allow(clippy::type_complexity)]
2166 pub fn total_updates<T5>(
2167 self,
2168 value: T5,
2169 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5)>
2170 where
2171 T5: ::planus::WriteAsDefault<u64, u64>,
2172 {
2173 let (v0, v1, v2, v3, v4) = self.0;
2174 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, value))
2175 }
2176
2177 #[inline]
2179 #[allow(clippy::type_complexity)]
2180 pub fn total_updates_as_default(
2181 self,
2182 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, ::planus::DefaultValue)>
2183 {
2184 self.total_updates(::planus::DefaultValue)
2185 }
2186 }
2187
2188 impl<T0, T1, T2, T3, T4, T5> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5)> {
2189 #[inline]
2191 #[allow(clippy::type_complexity)]
2192 pub fn first_update_time<T6>(
2193 self,
2194 value: T6,
2195 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6)>
2196 where
2197 T6: ::planus::WriteAsDefault<u64, u64>,
2198 {
2199 let (v0, v1, v2, v3, v4, v5) = self.0;
2200 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, value))
2201 }
2202
2203 #[inline]
2205 #[allow(clippy::type_complexity)]
2206 pub fn first_update_time_as_default(
2207 self,
2208 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, ::planus::DefaultValue)>
2209 {
2210 self.first_update_time(::planus::DefaultValue)
2211 }
2212 }
2213
2214 impl<T0, T1, T2, T3, T4, T5, T6> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6)> {
2215 #[inline]
2217 #[allow(clippy::type_complexity)]
2218 pub fn last_update_time<T7>(
2219 self,
2220 value: T7,
2221 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7)>
2222 where
2223 T7: ::planus::WriteAsDefault<u64, u64>,
2224 {
2225 let (v0, v1, v2, v3, v4, v5, v6) = self.0;
2226 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, v6, value))
2227 }
2228
2229 #[inline]
2231 #[allow(clippy::type_complexity)]
2232 pub fn last_update_time_as_default(
2233 self,
2234 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, ::planus::DefaultValue)>
2235 {
2236 self.last_update_time(::planus::DefaultValue)
2237 }
2238 }
2239
2240 impl<T0, T1, T2, T3, T4, T5, T6, T7> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7)> {
2241 #[inline]
2243 #[allow(clippy::type_complexity)]
2244 pub fn max_depth<T8>(
2245 self,
2246 value: T8,
2247 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
2248 where
2249 T8: ::planus::WriteAsDefault<u32, u32>,
2250 {
2251 let (v0, v1, v2, v3, v4, v5, v6, v7) = self.0;
2252 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, v6, v7, value))
2253 }
2254
2255 #[inline]
2257 #[allow(clippy::type_complexity)]
2258 pub fn max_depth_as_default(
2259 self,
2260 ) -> OrderBookMetadataBuilder<(
2261 T0,
2262 T1,
2263 T2,
2264 T3,
2265 T4,
2266 T5,
2267 T6,
2268 T7,
2269 ::planus::DefaultValue,
2270 )> {
2271 self.max_depth(::planus::DefaultValue)
2272 }
2273 }
2274
2275 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8>
2276 OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8)>
2277 {
2278 #[inline]
2280 #[allow(clippy::type_complexity)]
2281 pub fn compression_level<T9>(
2282 self,
2283 value: T9,
2284 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
2285 where
2286 T9: ::planus::WriteAsDefault<u8, u8>,
2287 {
2288 let (v0, v1, v2, v3, v4, v5, v6, v7, v8) = self.0;
2289 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, v6, v7, v8, value))
2290 }
2291
2292 #[inline]
2294 #[allow(clippy::type_complexity)]
2295 pub fn compression_level_as_default(
2296 self,
2297 ) -> OrderBookMetadataBuilder<(
2298 T0,
2299 T1,
2300 T2,
2301 T3,
2302 T4,
2303 T5,
2304 T6,
2305 T7,
2306 T8,
2307 ::planus::DefaultValue,
2308 )> {
2309 self.compression_level(::planus::DefaultValue)
2310 }
2311 }
2312
2313 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
2314 OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)>
2315 {
2316 #[inline]
2318 #[allow(clippy::type_complexity)]
2319 pub fn snapshot_count<T10>(
2320 self,
2321 value: T10,
2322 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
2323 where
2324 T10: ::planus::WriteAsDefault<u64, u64>,
2325 {
2326 let (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) = self.0;
2327 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, value))
2328 }
2329
2330 #[inline]
2332 #[allow(clippy::type_complexity)]
2333 pub fn snapshot_count_as_default(
2334 self,
2335 ) -> OrderBookMetadataBuilder<(
2336 T0,
2337 T1,
2338 T2,
2339 T3,
2340 T4,
2341 T5,
2342 T6,
2343 T7,
2344 T8,
2345 T9,
2346 ::planus::DefaultValue,
2347 )> {
2348 self.snapshot_count(::planus::DefaultValue)
2349 }
2350 }
2351
2352 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
2353 OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
2354 {
2355 #[inline]
2357 #[allow(clippy::type_complexity)]
2358 pub fn update_count<T11>(
2359 self,
2360 value: T11,
2361 ) -> OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
2362 where
2363 T11: ::planus::WriteAsDefault<u64, u64>,
2364 {
2365 let (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) = self.0;
2366 OrderBookMetadataBuilder((v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, value))
2367 }
2368
2369 #[inline]
2371 #[allow(clippy::type_complexity)]
2372 pub fn update_count_as_default(
2373 self,
2374 ) -> OrderBookMetadataBuilder<(
2375 T0,
2376 T1,
2377 T2,
2378 T3,
2379 T4,
2380 T5,
2381 T6,
2382 T7,
2383 T8,
2384 T9,
2385 T10,
2386 ::planus::DefaultValue,
2387 )> {
2388 self.update_count(::planus::DefaultValue)
2389 }
2390 }
2391
2392 impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
2393 OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
2394 {
2395 #[inline]
2397 pub fn finish(
2398 self,
2399 builder: &mut ::planus::Builder,
2400 ) -> ::planus::Offset<OrderBookMetadata>
2401 where
2402 Self: ::planus::WriteAsOffset<OrderBookMetadata>,
2403 {
2404 ::planus::WriteAsOffset::prepare(&self, builder)
2405 }
2406 }
2407
2408 impl<
2409 T0: ::planus::WriteAsDefault<u32, u32>,
2410 T1: ::planus::WriteAsDefault<u64, u64>,
2411 T2: ::planus::WriteAs<::planus::Offset<str>>,
2412 T3: ::planus::WriteAs<::planus::Offset<str>>,
2413 T4: ::planus::WriteAs<::planus::Offset<str>>,
2414 T5: ::planus::WriteAsDefault<u64, u64>,
2415 T6: ::planus::WriteAsDefault<u64, u64>,
2416 T7: ::planus::WriteAsDefault<u64, u64>,
2417 T8: ::planus::WriteAsDefault<u32, u32>,
2418 T9: ::planus::WriteAsDefault<u8, u8>,
2419 T10: ::planus::WriteAsDefault<u64, u64>,
2420 T11: ::planus::WriteAsDefault<u64, u64>,
2421 > ::planus::WriteAs<::planus::Offset<OrderBookMetadata>>
2422 for OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
2423 {
2424 type Prepared = ::planus::Offset<OrderBookMetadata>;
2425
2426 #[inline]
2427 fn prepare(
2428 &self,
2429 builder: &mut ::planus::Builder,
2430 ) -> ::planus::Offset<OrderBookMetadata> {
2431 ::planus::WriteAsOffset::prepare(self, builder)
2432 }
2433 }
2434
2435 impl<
2436 T0: ::planus::WriteAsDefault<u32, u32>,
2437 T1: ::planus::WriteAsDefault<u64, u64>,
2438 T2: ::planus::WriteAs<::planus::Offset<str>>,
2439 T3: ::planus::WriteAs<::planus::Offset<str>>,
2440 T4: ::planus::WriteAs<::planus::Offset<str>>,
2441 T5: ::planus::WriteAsDefault<u64, u64>,
2442 T6: ::planus::WriteAsDefault<u64, u64>,
2443 T7: ::planus::WriteAsDefault<u64, u64>,
2444 T8: ::planus::WriteAsDefault<u32, u32>,
2445 T9: ::planus::WriteAsDefault<u8, u8>,
2446 T10: ::planus::WriteAsDefault<u64, u64>,
2447 T11: ::planus::WriteAsDefault<u64, u64>,
2448 > ::planus::WriteAsOptional<::planus::Offset<OrderBookMetadata>>
2449 for OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
2450 {
2451 type Prepared = ::planus::Offset<OrderBookMetadata>;
2452
2453 #[inline]
2454 fn prepare(
2455 &self,
2456 builder: &mut ::planus::Builder,
2457 ) -> ::core::option::Option<::planus::Offset<OrderBookMetadata>> {
2458 ::core::option::Option::Some(::planus::WriteAsOffset::prepare(self, builder))
2459 }
2460 }
2461
2462 impl<
2463 T0: ::planus::WriteAsDefault<u32, u32>,
2464 T1: ::planus::WriteAsDefault<u64, u64>,
2465 T2: ::planus::WriteAs<::planus::Offset<str>>,
2466 T3: ::planus::WriteAs<::planus::Offset<str>>,
2467 T4: ::planus::WriteAs<::planus::Offset<str>>,
2468 T5: ::planus::WriteAsDefault<u64, u64>,
2469 T6: ::planus::WriteAsDefault<u64, u64>,
2470 T7: ::planus::WriteAsDefault<u64, u64>,
2471 T8: ::planus::WriteAsDefault<u32, u32>,
2472 T9: ::planus::WriteAsDefault<u8, u8>,
2473 T10: ::planus::WriteAsDefault<u64, u64>,
2474 T11: ::planus::WriteAsDefault<u64, u64>,
2475 > ::planus::WriteAsOffset<OrderBookMetadata>
2476 for OrderBookMetadataBuilder<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
2477 {
2478 #[inline]
2479 fn prepare(
2480 &self,
2481 builder: &mut ::planus::Builder,
2482 ) -> ::planus::Offset<OrderBookMetadata> {
2483 let (v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) = &self.0;
2484 OrderBookMetadata::create(
2485 builder, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
2486 )
2487 }
2488 }
2489
2490 #[derive(Copy, Clone)]
2492 pub struct OrderBookMetadataRef<'a>(::planus::table_reader::Table<'a>);
2493
2494 impl<'a> OrderBookMetadataRef<'a> {
2495 #[inline]
2497 pub fn file_version(&self) -> ::planus::Result<u32> {
2498 ::core::result::Result::Ok(
2499 self.0
2500 .access(0, "OrderBookMetadata", "file_version")?
2501 .unwrap_or(1),
2502 )
2503 }
2504
2505 #[inline]
2507 pub fn created_at(&self) -> ::planus::Result<u64> {
2508 ::core::result::Result::Ok(
2509 self.0
2510 .access(1, "OrderBookMetadata", "created_at")?
2511 .unwrap_or(0),
2512 )
2513 }
2514
2515 #[inline]
2517 pub fn exchange(&self) -> ::planus::Result<&'a ::core::primitive::str> {
2518 self.0.access_required(2, "OrderBookMetadata", "exchange")
2519 }
2520
2521 #[inline]
2523 pub fn symbol(&self) -> ::planus::Result<&'a ::core::primitive::str> {
2524 self.0.access_required(3, "OrderBookMetadata", "symbol")
2525 }
2526
2527 #[inline]
2529 pub fn date(&self) -> ::planus::Result<&'a ::core::primitive::str> {
2530 self.0.access_required(4, "OrderBookMetadata", "date")
2531 }
2532
2533 #[inline]
2535 pub fn total_updates(&self) -> ::planus::Result<u64> {
2536 ::core::result::Result::Ok(
2537 self.0
2538 .access(5, "OrderBookMetadata", "total_updates")?
2539 .unwrap_or(0),
2540 )
2541 }
2542
2543 #[inline]
2545 pub fn first_update_time(&self) -> ::planus::Result<u64> {
2546 ::core::result::Result::Ok(
2547 self.0
2548 .access(6, "OrderBookMetadata", "first_update_time")?
2549 .unwrap_or(0),
2550 )
2551 }
2552
2553 #[inline]
2555 pub fn last_update_time(&self) -> ::planus::Result<u64> {
2556 ::core::result::Result::Ok(
2557 self.0
2558 .access(7, "OrderBookMetadata", "last_update_time")?
2559 .unwrap_or(0),
2560 )
2561 }
2562
2563 #[inline]
2565 pub fn max_depth(&self) -> ::planus::Result<u32> {
2566 ::core::result::Result::Ok(
2567 self.0
2568 .access(8, "OrderBookMetadata", "max_depth")?
2569 .unwrap_or(0),
2570 )
2571 }
2572
2573 #[inline]
2575 pub fn compression_level(&self) -> ::planus::Result<u8> {
2576 ::core::result::Result::Ok(
2577 self.0
2578 .access(9, "OrderBookMetadata", "compression_level")?
2579 .unwrap_or(0),
2580 )
2581 }
2582
2583 #[inline]
2585 pub fn snapshot_count(&self) -> ::planus::Result<u64> {
2586 ::core::result::Result::Ok(
2587 self.0
2588 .access(10, "OrderBookMetadata", "snapshot_count")?
2589 .unwrap_or(0),
2590 )
2591 }
2592
2593 #[inline]
2595 pub fn update_count(&self) -> ::planus::Result<u64> {
2596 ::core::result::Result::Ok(
2597 self.0
2598 .access(11, "OrderBookMetadata", "update_count")?
2599 .unwrap_or(0),
2600 )
2601 }
2602 }
2603
2604 impl<'a> ::core::fmt::Debug for OrderBookMetadataRef<'a> {
2605 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2606 let mut f = f.debug_struct("OrderBookMetadataRef");
2607 f.field("file_version", &self.file_version());
2608 f.field("created_at", &self.created_at());
2609 f.field("exchange", &self.exchange());
2610 f.field("symbol", &self.symbol());
2611 f.field("date", &self.date());
2612 f.field("total_updates", &self.total_updates());
2613 f.field("first_update_time", &self.first_update_time());
2614 f.field("last_update_time", &self.last_update_time());
2615 f.field("max_depth", &self.max_depth());
2616 f.field("compression_level", &self.compression_level());
2617 f.field("snapshot_count", &self.snapshot_count());
2618 f.field("update_count", &self.update_count());
2619 f.finish()
2620 }
2621 }
2622
2623 impl<'a> ::core::convert::TryFrom<OrderBookMetadataRef<'a>> for OrderBookMetadata {
2624 type Error = ::planus::Error;
2625
2626 #[allow(unreachable_code)]
2627 fn try_from(value: OrderBookMetadataRef<'a>) -> ::planus::Result<Self> {
2628 ::core::result::Result::Ok(Self {
2629 file_version: ::core::convert::TryInto::try_into(value.file_version()?)?,
2630 created_at: ::core::convert::TryInto::try_into(value.created_at()?)?,
2631 exchange: ::core::convert::Into::into(value.exchange()?),
2632 symbol: ::core::convert::Into::into(value.symbol()?),
2633 date: ::core::convert::Into::into(value.date()?),
2634 total_updates: ::core::convert::TryInto::try_into(value.total_updates()?)?,
2635 first_update_time: ::core::convert::TryInto::try_into(
2636 value.first_update_time()?,
2637 )?,
2638 last_update_time: ::core::convert::TryInto::try_into(
2639 value.last_update_time()?,
2640 )?,
2641 max_depth: ::core::convert::TryInto::try_into(value.max_depth()?)?,
2642 compression_level: ::core::convert::TryInto::try_into(
2643 value.compression_level()?,
2644 )?,
2645 snapshot_count: ::core::convert::TryInto::try_into(
2646 value.snapshot_count()?,
2647 )?,
2648 update_count: ::core::convert::TryInto::try_into(value.update_count()?)?,
2649 })
2650 }
2651 }
2652
2653 impl<'a> ::planus::TableRead<'a> for OrderBookMetadataRef<'a> {
2654 #[inline]
2655 fn from_buffer(
2656 buffer: ::planus::SliceWithStartOffset<'a>,
2657 offset: usize,
2658 ) -> ::core::result::Result<Self, ::planus::errors::ErrorKind> {
2659 ::core::result::Result::Ok(Self(::planus::table_reader::Table::from_buffer(
2660 buffer, offset,
2661 )?))
2662 }
2663 }
2664
2665 impl<'a> ::planus::VectorReadInner<'a> for OrderBookMetadataRef<'a> {
2666 type Error = ::planus::Error;
2667 const STRIDE: usize = 4;
2668
2669 unsafe fn from_buffer(
2670 buffer: ::planus::SliceWithStartOffset<'a>,
2671 offset: usize,
2672 ) -> ::planus::Result<Self> {
2673 ::planus::TableRead::from_buffer(buffer, offset).map_err(|error_kind| {
2674 error_kind.with_error_location(
2675 "[OrderBookMetadataRef]",
2676 "get",
2677 buffer.offset_from_start,
2678 )
2679 })
2680 }
2681 }
2682
2683 unsafe impl ::planus::VectorWrite<::planus::Offset<OrderBookMetadata>> for OrderBookMetadata {
2687 type Value = ::planus::Offset<OrderBookMetadata>;
2688 const STRIDE: usize = 4;
2689 #[inline]
2690 fn prepare(&self, builder: &mut ::planus::Builder) -> Self::Value {
2691 ::planus::WriteAs::prepare(self, builder)
2692 }
2693
2694 #[inline]
2695 unsafe fn write_values(
2696 values: &[::planus::Offset<OrderBookMetadata>],
2697 bytes: *mut ::core::mem::MaybeUninit<u8>,
2698 buffer_position: u32,
2699 ) {
2700 let bytes = bytes as *mut [::core::mem::MaybeUninit<u8>; 4];
2701 for (i, v) in ::core::iter::Iterator::enumerate(values.iter()) {
2702 ::planus::WriteAsPrimitive::write(
2703 v,
2704 ::planus::Cursor::new(unsafe { &mut *bytes.add(i) }),
2705 buffer_position - (Self::STRIDE * i) as u32,
2706 );
2707 }
2708 }
2709 }
2710
2711 impl<'a> ::planus::ReadAsRoot<'a> for OrderBookMetadataRef<'a> {
2712 fn read_as_root(slice: &'a [u8]) -> ::planus::Result<Self> {
2713 ::planus::TableRead::from_buffer(
2714 ::planus::SliceWithStartOffset {
2715 buffer: slice,
2716 offset_from_start: 0,
2717 },
2718 0,
2719 )
2720 .map_err(|error_kind| {
2721 error_kind.with_error_location("[OrderBookMetadataRef]", "read_as_root", 0)
2722 })
2723 }
2724 }
2725 }
2726 }
2727}