1extern crate alloc;
4
5#[allow(unused_imports, dead_code)]
6pub mod plexus {
7
8 #[deprecated(
9 since = "2.0.0",
10 note = "Use associated constants instead. This will no longer be generated in 2021."
11 )]
12 pub const ENUM_MIN_CAPABILITY_ORDERING_CONTRACT: u8 = 0;
13 #[deprecated(
14 since = "2.0.0",
15 note = "Use associated constants instead. This will no longer be generated in 2021."
16 )]
17 pub const ENUM_MAX_CAPABILITY_ORDERING_CONTRACT: u8 = 6;
18 #[deprecated(
19 since = "2.0.0",
20 note = "Use associated constants instead. This will no longer be generated in 2021."
21 )]
22 #[allow(non_camel_case_types)]
23 pub const ENUM_VALUES_CAPABILITY_ORDERING_CONTRACT: [CapabilityOrderingContract; 7] = [
24 CapabilityOrderingContract::engine_defined_stable,
25 CapabilityOrderingContract::stable_pass_through,
26 CapabilityOrderingContract::fan_out_deterministic_per_input,
27 CapabilityOrderingContract::deterministic_sort_stable_ties,
28 CapabilityOrderingContract::unspecified_without_sort,
29 CapabilityOrderingContract::stable_concat_or_unspecified_distinct,
30 CapabilityOrderingContract::score_desc_stable_ties,
31 ];
32
33 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
34 #[repr(transparent)]
35 pub struct CapabilityOrderingContract(pub u8);
36 #[allow(non_upper_case_globals)]
37 impl CapabilityOrderingContract {
38 pub const engine_defined_stable: Self = Self(0);
39 pub const stable_pass_through: Self = Self(1);
40 pub const fan_out_deterministic_per_input: Self = Self(2);
41 pub const deterministic_sort_stable_ties: Self = Self(3);
42 pub const unspecified_without_sort: Self = Self(4);
43 pub const stable_concat_or_unspecified_distinct: Self = Self(5);
44 pub const score_desc_stable_ties: Self = Self(6);
45
46 pub const ENUM_MIN: u8 = 0;
47 pub const ENUM_MAX: u8 = 6;
48 pub const ENUM_VALUES: &'static [Self] = &[
49 Self::engine_defined_stable,
50 Self::stable_pass_through,
51 Self::fan_out_deterministic_per_input,
52 Self::deterministic_sort_stable_ties,
53 Self::unspecified_without_sort,
54 Self::stable_concat_or_unspecified_distinct,
55 Self::score_desc_stable_ties,
56 ];
57 pub fn variant_name(self) -> Option<&'static str> {
59 match self {
60 Self::engine_defined_stable => Some("engine_defined_stable"),
61 Self::stable_pass_through => Some("stable_pass_through"),
62 Self::fan_out_deterministic_per_input => Some("fan_out_deterministic_per_input"),
63 Self::deterministic_sort_stable_ties => Some("deterministic_sort_stable_ties"),
64 Self::unspecified_without_sort => Some("unspecified_without_sort"),
65 Self::stable_concat_or_unspecified_distinct => {
66 Some("stable_concat_or_unspecified_distinct")
67 }
68 Self::score_desc_stable_ties => Some("score_desc_stable_ties"),
69 _ => None,
70 }
71 }
72 }
73 impl ::core::fmt::Debug for CapabilityOrderingContract {
74 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
75 if let Some(name) = self.variant_name() {
76 f.write_str(name)
77 } else {
78 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
79 }
80 }
81 }
82 impl<'a> ::flatbuffers::Follow<'a> for CapabilityOrderingContract {
83 type Inner = Self;
84 #[inline]
85 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
86 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
87 Self(b)
88 }
89 }
90
91 impl ::flatbuffers::Push for CapabilityOrderingContract {
92 type Output = CapabilityOrderingContract;
93 #[inline]
94 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
95 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
96 }
97 }
98
99 impl ::flatbuffers::EndianScalar for CapabilityOrderingContract {
100 type Scalar = u8;
101 #[inline]
102 fn to_little_endian(self) -> u8 {
103 self.0.to_le()
104 }
105 #[inline]
106 #[allow(clippy::wrong_self_convention)]
107 fn from_little_endian(v: u8) -> Self {
108 let b = u8::from_le(v);
109 Self(b)
110 }
111 }
112
113 impl<'a> ::flatbuffers::Verifiable for CapabilityOrderingContract {
114 #[inline]
115 fn run_verifier(
116 v: &mut ::flatbuffers::Verifier,
117 pos: usize,
118 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
119 u8::run_verifier(v, pos)
120 }
121 }
122
123 impl ::flatbuffers::SimpleToVerifyInSlice for CapabilityOrderingContract {}
124 #[deprecated(
125 since = "2.0.0",
126 note = "Use associated constants instead. This will no longer be generated in 2021."
127 )]
128 pub const ENUM_MIN_COL_KIND: u8 = 0;
129 #[deprecated(
130 since = "2.0.0",
131 note = "Use associated constants instead. This will no longer be generated in 2021."
132 )]
133 pub const ENUM_MAX_COL_KIND: u8 = 12;
134 #[deprecated(
135 since = "2.0.0",
136 note = "Use associated constants instead. This will no longer be generated in 2021."
137 )]
138 #[allow(non_camel_case_types)]
139 pub const ENUM_VALUES_COL_KIND: [ColKind; 13] = [
140 ColKind::node,
141 ColKind::rel,
142 ColKind::value,
143 ColKind::bool,
144 ColKind::int64,
145 ColKind::float64,
146 ColKind::string,
147 ColKind::null,
148 ColKind::list,
149 ColKind::map,
150 ColKind::path,
151 ColKind::graph,
152 ColKind::vector,
153 ];
154
155 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
156 #[repr(transparent)]
157 pub struct ColKind(pub u8);
158 #[allow(non_upper_case_globals)]
159 impl ColKind {
160 pub const node: Self = Self(0);
161 pub const rel: Self = Self(1);
162 pub const value: Self = Self(2);
163 pub const bool: Self = Self(3);
164 pub const int64: Self = Self(4);
165 pub const float64: Self = Self(5);
166 pub const string: Self = Self(6);
167 pub const null: Self = Self(7);
168 pub const list: Self = Self(8);
169 pub const map: Self = Self(9);
170 pub const path: Self = Self(10);
171 pub const graph: Self = Self(11);
172 pub const vector: Self = Self(12);
173
174 pub const ENUM_MIN: u8 = 0;
175 pub const ENUM_MAX: u8 = 12;
176 pub const ENUM_VALUES: &'static [Self] = &[
177 Self::node,
178 Self::rel,
179 Self::value,
180 Self::bool,
181 Self::int64,
182 Self::float64,
183 Self::string,
184 Self::null,
185 Self::list,
186 Self::map,
187 Self::path,
188 Self::graph,
189 Self::vector,
190 ];
191 pub fn variant_name(self) -> Option<&'static str> {
193 match self {
194 Self::node => Some("node"),
195 Self::rel => Some("rel"),
196 Self::value => Some("value"),
197 Self::bool => Some("bool"),
198 Self::int64 => Some("int64"),
199 Self::float64 => Some("float64"),
200 Self::string => Some("string"),
201 Self::null => Some("null"),
202 Self::list => Some("list"),
203 Self::map => Some("map"),
204 Self::path => Some("path"),
205 Self::graph => Some("graph"),
206 Self::vector => Some("vector"),
207 _ => None,
208 }
209 }
210 }
211 impl ::core::fmt::Debug for ColKind {
212 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
213 if let Some(name) = self.variant_name() {
214 f.write_str(name)
215 } else {
216 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
217 }
218 }
219 }
220 impl<'a> ::flatbuffers::Follow<'a> for ColKind {
221 type Inner = Self;
222 #[inline]
223 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
224 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
225 Self(b)
226 }
227 }
228
229 impl ::flatbuffers::Push for ColKind {
230 type Output = ColKind;
231 #[inline]
232 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
233 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
234 }
235 }
236
237 impl ::flatbuffers::EndianScalar for ColKind {
238 type Scalar = u8;
239 #[inline]
240 fn to_little_endian(self) -> u8 {
241 self.0.to_le()
242 }
243 #[inline]
244 #[allow(clippy::wrong_self_convention)]
245 fn from_little_endian(v: u8) -> Self {
246 let b = u8::from_le(v);
247 Self(b)
248 }
249 }
250
251 impl<'a> ::flatbuffers::Verifiable for ColKind {
252 #[inline]
253 fn run_verifier(
254 v: &mut ::flatbuffers::Verifier,
255 pos: usize,
256 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
257 u8::run_verifier(v, pos)
258 }
259 }
260
261 impl ::flatbuffers::SimpleToVerifyInSlice for ColKind {}
262 #[deprecated(
263 since = "2.0.0",
264 note = "Use associated constants instead. This will no longer be generated in 2021."
265 )]
266 pub const ENUM_MIN_LOGICAL_TYPE: u8 = 0;
267 #[deprecated(
268 since = "2.0.0",
269 note = "Use associated constants instead. This will no longer be generated in 2021."
270 )]
271 pub const ENUM_MAX_LOGICAL_TYPE: u8 = 11;
272 #[deprecated(
273 since = "2.0.0",
274 note = "Use associated constants instead. This will no longer be generated in 2021."
275 )]
276 #[allow(non_camel_case_types)]
277 pub const ENUM_VALUES_LOGICAL_TYPE: [LogicalType; 12] = [
278 LogicalType::unknown,
279 LogicalType::bool,
280 LogicalType::int64,
281 LogicalType::float64,
282 LogicalType::string,
283 LogicalType::null,
284 LogicalType::list,
285 LogicalType::map,
286 LogicalType::node_ref,
287 LogicalType::rel_ref,
288 LogicalType::path,
289 LogicalType::vector,
290 ];
291
292 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
295 #[repr(transparent)]
296 pub struct LogicalType(pub u8);
297 #[allow(non_upper_case_globals)]
298 impl LogicalType {
299 pub const unknown: Self = Self(0);
300 pub const bool: Self = Self(1);
301 pub const int64: Self = Self(2);
302 pub const float64: Self = Self(3);
303 pub const string: Self = Self(4);
304 pub const null: Self = Self(5);
305 pub const list: Self = Self(6);
306 pub const map: Self = Self(7);
307 pub const node_ref: Self = Self(8);
308 pub const rel_ref: Self = Self(9);
309 pub const path: Self = Self(10);
310 pub const vector: Self = Self(11);
311
312 pub const ENUM_MIN: u8 = 0;
313 pub const ENUM_MAX: u8 = 11;
314 pub const ENUM_VALUES: &'static [Self] = &[
315 Self::unknown,
316 Self::bool,
317 Self::int64,
318 Self::float64,
319 Self::string,
320 Self::null,
321 Self::list,
322 Self::map,
323 Self::node_ref,
324 Self::rel_ref,
325 Self::path,
326 Self::vector,
327 ];
328 pub fn variant_name(self) -> Option<&'static str> {
330 match self {
331 Self::unknown => Some("unknown"),
332 Self::bool => Some("bool"),
333 Self::int64 => Some("int64"),
334 Self::float64 => Some("float64"),
335 Self::string => Some("string"),
336 Self::null => Some("null"),
337 Self::list => Some("list"),
338 Self::map => Some("map"),
339 Self::node_ref => Some("node_ref"),
340 Self::rel_ref => Some("rel_ref"),
341 Self::path => Some("path"),
342 Self::vector => Some("vector"),
343 _ => None,
344 }
345 }
346 }
347 impl ::core::fmt::Debug for LogicalType {
348 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
349 if let Some(name) = self.variant_name() {
350 f.write_str(name)
351 } else {
352 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
353 }
354 }
355 }
356 impl<'a> ::flatbuffers::Follow<'a> for LogicalType {
357 type Inner = Self;
358 #[inline]
359 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
360 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
361 Self(b)
362 }
363 }
364
365 impl ::flatbuffers::Push for LogicalType {
366 type Output = LogicalType;
367 #[inline]
368 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
369 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
370 }
371 }
372
373 impl ::flatbuffers::EndianScalar for LogicalType {
374 type Scalar = u8;
375 #[inline]
376 fn to_little_endian(self) -> u8 {
377 self.0.to_le()
378 }
379 #[inline]
380 #[allow(clippy::wrong_self_convention)]
381 fn from_little_endian(v: u8) -> Self {
382 let b = u8::from_le(v);
383 Self(b)
384 }
385 }
386
387 impl<'a> ::flatbuffers::Verifiable for LogicalType {
388 #[inline]
389 fn run_verifier(
390 v: &mut ::flatbuffers::Verifier,
391 pos: usize,
392 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
393 u8::run_verifier(v, pos)
394 }
395 }
396
397 impl ::flatbuffers::SimpleToVerifyInSlice for LogicalType {}
398 #[deprecated(
399 since = "2.0.0",
400 note = "Use associated constants instead. This will no longer be generated in 2021."
401 )]
402 pub const ENUM_MIN_CMP_OP: u8 = 0;
403 #[deprecated(
404 since = "2.0.0",
405 note = "Use associated constants instead. This will no longer be generated in 2021."
406 )]
407 pub const ENUM_MAX_CMP_OP: u8 = 5;
408 #[deprecated(
409 since = "2.0.0",
410 note = "Use associated constants instead. This will no longer be generated in 2021."
411 )]
412 #[allow(non_camel_case_types)]
413 pub const ENUM_VALUES_CMP_OP: [CmpOp; 6] = [
414 CmpOp::eq,
415 CmpOp::ne,
416 CmpOp::lt,
417 CmpOp::gt,
418 CmpOp::le,
419 CmpOp::ge,
420 ];
421
422 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
423 #[repr(transparent)]
424 pub struct CmpOp(pub u8);
425 #[allow(non_upper_case_globals)]
426 impl CmpOp {
427 pub const eq: Self = Self(0);
428 pub const ne: Self = Self(1);
429 pub const lt: Self = Self(2);
430 pub const gt: Self = Self(3);
431 pub const le: Self = Self(4);
432 pub const ge: Self = Self(5);
433
434 pub const ENUM_MIN: u8 = 0;
435 pub const ENUM_MAX: u8 = 5;
436 pub const ENUM_VALUES: &'static [Self] =
437 &[Self::eq, Self::ne, Self::lt, Self::gt, Self::le, Self::ge];
438 pub fn variant_name(self) -> Option<&'static str> {
440 match self {
441 Self::eq => Some("eq"),
442 Self::ne => Some("ne"),
443 Self::lt => Some("lt"),
444 Self::gt => Some("gt"),
445 Self::le => Some("le"),
446 Self::ge => Some("ge"),
447 _ => None,
448 }
449 }
450 }
451 impl ::core::fmt::Debug for CmpOp {
452 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
453 if let Some(name) = self.variant_name() {
454 f.write_str(name)
455 } else {
456 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
457 }
458 }
459 }
460 impl<'a> ::flatbuffers::Follow<'a> for CmpOp {
461 type Inner = Self;
462 #[inline]
463 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
464 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
465 Self(b)
466 }
467 }
468
469 impl ::flatbuffers::Push for CmpOp {
470 type Output = CmpOp;
471 #[inline]
472 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
473 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
474 }
475 }
476
477 impl ::flatbuffers::EndianScalar for CmpOp {
478 type Scalar = u8;
479 #[inline]
480 fn to_little_endian(self) -> u8 {
481 self.0.to_le()
482 }
483 #[inline]
484 #[allow(clippy::wrong_self_convention)]
485 fn from_little_endian(v: u8) -> Self {
486 let b = u8::from_le(v);
487 Self(b)
488 }
489 }
490
491 impl<'a> ::flatbuffers::Verifiable for CmpOp {
492 #[inline]
493 fn run_verifier(
494 v: &mut ::flatbuffers::Verifier,
495 pos: usize,
496 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
497 u8::run_verifier(v, pos)
498 }
499 }
500
501 impl ::flatbuffers::SimpleToVerifyInSlice for CmpOp {}
502 #[deprecated(
503 since = "2.0.0",
504 note = "Use associated constants instead. This will no longer be generated in 2021."
505 )]
506 pub const ENUM_MIN_AGG_FN: u8 = 0;
507 #[deprecated(
508 since = "2.0.0",
509 note = "Use associated constants instead. This will no longer be generated in 2021."
510 )]
511 pub const ENUM_MAX_AGG_FN: u8 = 6;
512 #[deprecated(
513 since = "2.0.0",
514 note = "Use associated constants instead. This will no longer be generated in 2021."
515 )]
516 #[allow(non_camel_case_types)]
517 pub const ENUM_VALUES_AGG_FN: [AggFn; 7] = [
518 AggFn::count_star,
519 AggFn::count,
520 AggFn::sum,
521 AggFn::avg,
522 AggFn::min,
523 AggFn::max,
524 AggFn::collect,
525 ];
526
527 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
528 #[repr(transparent)]
529 pub struct AggFn(pub u8);
530 #[allow(non_upper_case_globals)]
531 impl AggFn {
532 pub const count_star: Self = Self(0);
533 pub const count: Self = Self(1);
534 pub const sum: Self = Self(2);
535 pub const avg: Self = Self(3);
536 pub const min: Self = Self(4);
537 pub const max: Self = Self(5);
538 pub const collect: Self = Self(6);
539
540 pub const ENUM_MIN: u8 = 0;
541 pub const ENUM_MAX: u8 = 6;
542 pub const ENUM_VALUES: &'static [Self] = &[
543 Self::count_star,
544 Self::count,
545 Self::sum,
546 Self::avg,
547 Self::min,
548 Self::max,
549 Self::collect,
550 ];
551 pub fn variant_name(self) -> Option<&'static str> {
553 match self {
554 Self::count_star => Some("count_star"),
555 Self::count => Some("count"),
556 Self::sum => Some("sum"),
557 Self::avg => Some("avg"),
558 Self::min => Some("min"),
559 Self::max => Some("max"),
560 Self::collect => Some("collect"),
561 _ => None,
562 }
563 }
564 }
565 impl ::core::fmt::Debug for AggFn {
566 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
567 if let Some(name) = self.variant_name() {
568 f.write_str(name)
569 } else {
570 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
571 }
572 }
573 }
574 impl<'a> ::flatbuffers::Follow<'a> for AggFn {
575 type Inner = Self;
576 #[inline]
577 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
578 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
579 Self(b)
580 }
581 }
582
583 impl ::flatbuffers::Push for AggFn {
584 type Output = AggFn;
585 #[inline]
586 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
587 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
588 }
589 }
590
591 impl ::flatbuffers::EndianScalar for AggFn {
592 type Scalar = u8;
593 #[inline]
594 fn to_little_endian(self) -> u8 {
595 self.0.to_le()
596 }
597 #[inline]
598 #[allow(clippy::wrong_self_convention)]
599 fn from_little_endian(v: u8) -> Self {
600 let b = u8::from_le(v);
601 Self(b)
602 }
603 }
604
605 impl<'a> ::flatbuffers::Verifiable for AggFn {
606 #[inline]
607 fn run_verifier(
608 v: &mut ::flatbuffers::Verifier,
609 pos: usize,
610 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
611 u8::run_verifier(v, pos)
612 }
613 }
614
615 impl ::flatbuffers::SimpleToVerifyInSlice for AggFn {}
616 #[deprecated(
617 since = "2.0.0",
618 note = "Use associated constants instead. This will no longer be generated in 2021."
619 )]
620 pub const ENUM_MIN_ARITH_OP: u8 = 0;
621 #[deprecated(
622 since = "2.0.0",
623 note = "Use associated constants instead. This will no longer be generated in 2021."
624 )]
625 pub const ENUM_MAX_ARITH_OP: u8 = 3;
626 #[deprecated(
627 since = "2.0.0",
628 note = "Use associated constants instead. This will no longer be generated in 2021."
629 )]
630 #[allow(non_camel_case_types)]
631 pub const ENUM_VALUES_ARITH_OP: [ArithOp; 4] =
632 [ArithOp::add, ArithOp::sub, ArithOp::mul, ArithOp::div];
633
634 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
635 #[repr(transparent)]
636 pub struct ArithOp(pub u8);
637 #[allow(non_upper_case_globals)]
638 impl ArithOp {
639 pub const add: Self = Self(0);
640 pub const sub: Self = Self(1);
641 pub const mul: Self = Self(2);
642 pub const div: Self = Self(3);
643
644 pub const ENUM_MIN: u8 = 0;
645 pub const ENUM_MAX: u8 = 3;
646 pub const ENUM_VALUES: &'static [Self] = &[Self::add, Self::sub, Self::mul, Self::div];
647 pub fn variant_name(self) -> Option<&'static str> {
649 match self {
650 Self::add => Some("add"),
651 Self::sub => Some("sub"),
652 Self::mul => Some("mul"),
653 Self::div => Some("div"),
654 _ => None,
655 }
656 }
657 }
658 impl ::core::fmt::Debug for ArithOp {
659 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
660 if let Some(name) = self.variant_name() {
661 f.write_str(name)
662 } else {
663 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
664 }
665 }
666 }
667 impl<'a> ::flatbuffers::Follow<'a> for ArithOp {
668 type Inner = Self;
669 #[inline]
670 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
671 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
672 Self(b)
673 }
674 }
675
676 impl ::flatbuffers::Push for ArithOp {
677 type Output = ArithOp;
678 #[inline]
679 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
680 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
681 }
682 }
683
684 impl ::flatbuffers::EndianScalar for ArithOp {
685 type Scalar = u8;
686 #[inline]
687 fn to_little_endian(self) -> u8 {
688 self.0.to_le()
689 }
690 #[inline]
691 #[allow(clippy::wrong_self_convention)]
692 fn from_little_endian(v: u8) -> Self {
693 let b = u8::from_le(v);
694 Self(b)
695 }
696 }
697
698 impl<'a> ::flatbuffers::Verifiable for ArithOp {
699 #[inline]
700 fn run_verifier(
701 v: &mut ::flatbuffers::Verifier,
702 pos: usize,
703 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
704 u8::run_verifier(v, pos)
705 }
706 }
707
708 impl ::flatbuffers::SimpleToVerifyInSlice for ArithOp {}
709 #[deprecated(
710 since = "2.0.0",
711 note = "Use associated constants instead. This will no longer be generated in 2021."
712 )]
713 pub const ENUM_MIN_VECTOR_METRIC: u8 = 0;
714 #[deprecated(
715 since = "2.0.0",
716 note = "Use associated constants instead. This will no longer be generated in 2021."
717 )]
718 pub const ENUM_MAX_VECTOR_METRIC: u8 = 2;
719 #[deprecated(
720 since = "2.0.0",
721 note = "Use associated constants instead. This will no longer be generated in 2021."
722 )]
723 #[allow(non_camel_case_types)]
724 pub const ENUM_VALUES_VECTOR_METRIC: [VectorMetric; 3] = [
725 VectorMetric::cosine,
726 VectorMetric::l2,
727 VectorMetric::dot_product,
728 ];
729
730 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
731 #[repr(transparent)]
732 pub struct VectorMetric(pub u8);
733 #[allow(non_upper_case_globals)]
734 impl VectorMetric {
735 pub const cosine: Self = Self(0);
736 pub const l2: Self = Self(1);
737 pub const dot_product: Self = Self(2);
738
739 pub const ENUM_MIN: u8 = 0;
740 pub const ENUM_MAX: u8 = 2;
741 pub const ENUM_VALUES: &'static [Self] = &[Self::cosine, Self::l2, Self::dot_product];
742 pub fn variant_name(self) -> Option<&'static str> {
744 match self {
745 Self::cosine => Some("cosine"),
746 Self::l2 => Some("l2"),
747 Self::dot_product => Some("dot_product"),
748 _ => None,
749 }
750 }
751 }
752 impl ::core::fmt::Debug for VectorMetric {
753 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
754 if let Some(name) = self.variant_name() {
755 f.write_str(name)
756 } else {
757 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
758 }
759 }
760 }
761 impl<'a> ::flatbuffers::Follow<'a> for VectorMetric {
762 type Inner = Self;
763 #[inline]
764 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
765 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
766 Self(b)
767 }
768 }
769
770 impl ::flatbuffers::Push for VectorMetric {
771 type Output = VectorMetric;
772 #[inline]
773 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
774 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
775 }
776 }
777
778 impl ::flatbuffers::EndianScalar for VectorMetric {
779 type Scalar = u8;
780 #[inline]
781 fn to_little_endian(self) -> u8 {
782 self.0.to_le()
783 }
784 #[inline]
785 #[allow(clippy::wrong_self_convention)]
786 fn from_little_endian(v: u8) -> Self {
787 let b = u8::from_le(v);
788 Self(b)
789 }
790 }
791
792 impl<'a> ::flatbuffers::Verifiable for VectorMetric {
793 #[inline]
794 fn run_verifier(
795 v: &mut ::flatbuffers::Verifier,
796 pos: usize,
797 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
798 u8::run_verifier(v, pos)
799 }
800 }
801
802 impl ::flatbuffers::SimpleToVerifyInSlice for VectorMetric {}
803 #[deprecated(
804 since = "2.0.0",
805 note = "Use associated constants instead. This will no longer be generated in 2021."
806 )]
807 pub const ENUM_MIN_EXPR_NODE: u8 = 0;
808 #[deprecated(
809 since = "2.0.0",
810 note = "Use associated constants instead. This will no longer be generated in 2021."
811 )]
812 pub const ENUM_MAX_EXPR_NODE: u8 = 26;
813 #[deprecated(
814 since = "2.0.0",
815 note = "Use associated constants instead. This will no longer be generated in 2021."
816 )]
817 #[allow(non_camel_case_types)]
818 pub const ENUM_VALUES_EXPR_NODE: [ExprNode; 27] = [
819 ExprNode::NONE,
820 ExprNode::ColRefExpr,
821 ExprNode::PropAccessExpr,
822 ExprNode::IntLiteralExpr,
823 ExprNode::FloatLiteralExpr,
824 ExprNode::BoolLiteralExpr,
825 ExprNode::StringLiteralExpr,
826 ExprNode::NullLiteralExpr,
827 ExprNode::CmpExpr,
828 ExprNode::AndExpr,
829 ExprNode::OrExpr,
830 ExprNode::NotExpr,
831 ExprNode::IsNullExpr,
832 ExprNode::IsNotNullExpr,
833 ExprNode::StartsWithExpr,
834 ExprNode::EndsWithExpr,
835 ExprNode::ContainsExpr,
836 ExprNode::InExpr,
837 ExprNode::ListLiteralExpr,
838 ExprNode::MapLiteralExpr,
839 ExprNode::ExistsExpr,
840 ExprNode::ListComprehensionExpr,
841 ExprNode::AggExpr,
842 ExprNode::ArithExpr,
843 ExprNode::ParamExpr,
844 ExprNode::CaseExpr,
845 ExprNode::VectorSimilarityExpr,
846 ];
847
848 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
849 #[repr(transparent)]
850 pub struct ExprNode(pub u8);
851 #[allow(non_upper_case_globals)]
852 impl ExprNode {
853 pub const NONE: Self = Self(0);
854 pub const ColRefExpr: Self = Self(1);
855 pub const PropAccessExpr: Self = Self(2);
856 pub const IntLiteralExpr: Self = Self(3);
857 pub const FloatLiteralExpr: Self = Self(4);
858 pub const BoolLiteralExpr: Self = Self(5);
859 pub const StringLiteralExpr: Self = Self(6);
860 pub const NullLiteralExpr: Self = Self(7);
861 pub const CmpExpr: Self = Self(8);
862 pub const AndExpr: Self = Self(9);
863 pub const OrExpr: Self = Self(10);
864 pub const NotExpr: Self = Self(11);
865 pub const IsNullExpr: Self = Self(12);
866 pub const IsNotNullExpr: Self = Self(13);
867 pub const StartsWithExpr: Self = Self(14);
868 pub const EndsWithExpr: Self = Self(15);
869 pub const ContainsExpr: Self = Self(16);
870 pub const InExpr: Self = Self(17);
871 pub const ListLiteralExpr: Self = Self(18);
872 pub const MapLiteralExpr: Self = Self(19);
873 pub const ExistsExpr: Self = Self(20);
874 pub const ListComprehensionExpr: Self = Self(21);
875 pub const AggExpr: Self = Self(22);
876 pub const ArithExpr: Self = Self(23);
877 pub const ParamExpr: Self = Self(24);
878 pub const CaseExpr: Self = Self(25);
879 pub const VectorSimilarityExpr: Self = Self(26);
880
881 pub const ENUM_MIN: u8 = 0;
882 pub const ENUM_MAX: u8 = 26;
883 pub const ENUM_VALUES: &'static [Self] = &[
884 Self::NONE,
885 Self::ColRefExpr,
886 Self::PropAccessExpr,
887 Self::IntLiteralExpr,
888 Self::FloatLiteralExpr,
889 Self::BoolLiteralExpr,
890 Self::StringLiteralExpr,
891 Self::NullLiteralExpr,
892 Self::CmpExpr,
893 Self::AndExpr,
894 Self::OrExpr,
895 Self::NotExpr,
896 Self::IsNullExpr,
897 Self::IsNotNullExpr,
898 Self::StartsWithExpr,
899 Self::EndsWithExpr,
900 Self::ContainsExpr,
901 Self::InExpr,
902 Self::ListLiteralExpr,
903 Self::MapLiteralExpr,
904 Self::ExistsExpr,
905 Self::ListComprehensionExpr,
906 Self::AggExpr,
907 Self::ArithExpr,
908 Self::ParamExpr,
909 Self::CaseExpr,
910 Self::VectorSimilarityExpr,
911 ];
912 pub fn variant_name(self) -> Option<&'static str> {
914 match self {
915 Self::NONE => Some("NONE"),
916 Self::ColRefExpr => Some("ColRefExpr"),
917 Self::PropAccessExpr => Some("PropAccessExpr"),
918 Self::IntLiteralExpr => Some("IntLiteralExpr"),
919 Self::FloatLiteralExpr => Some("FloatLiteralExpr"),
920 Self::BoolLiteralExpr => Some("BoolLiteralExpr"),
921 Self::StringLiteralExpr => Some("StringLiteralExpr"),
922 Self::NullLiteralExpr => Some("NullLiteralExpr"),
923 Self::CmpExpr => Some("CmpExpr"),
924 Self::AndExpr => Some("AndExpr"),
925 Self::OrExpr => Some("OrExpr"),
926 Self::NotExpr => Some("NotExpr"),
927 Self::IsNullExpr => Some("IsNullExpr"),
928 Self::IsNotNullExpr => Some("IsNotNullExpr"),
929 Self::StartsWithExpr => Some("StartsWithExpr"),
930 Self::EndsWithExpr => Some("EndsWithExpr"),
931 Self::ContainsExpr => Some("ContainsExpr"),
932 Self::InExpr => Some("InExpr"),
933 Self::ListLiteralExpr => Some("ListLiteralExpr"),
934 Self::MapLiteralExpr => Some("MapLiteralExpr"),
935 Self::ExistsExpr => Some("ExistsExpr"),
936 Self::ListComprehensionExpr => Some("ListComprehensionExpr"),
937 Self::AggExpr => Some("AggExpr"),
938 Self::ArithExpr => Some("ArithExpr"),
939 Self::ParamExpr => Some("ParamExpr"),
940 Self::CaseExpr => Some("CaseExpr"),
941 Self::VectorSimilarityExpr => Some("VectorSimilarityExpr"),
942 _ => None,
943 }
944 }
945 }
946 impl ::core::fmt::Debug for ExprNode {
947 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
948 if let Some(name) = self.variant_name() {
949 f.write_str(name)
950 } else {
951 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
952 }
953 }
954 }
955 impl<'a> ::flatbuffers::Follow<'a> for ExprNode {
956 type Inner = Self;
957 #[inline]
958 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
959 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
960 Self(b)
961 }
962 }
963
964 impl ::flatbuffers::Push for ExprNode {
965 type Output = ExprNode;
966 #[inline]
967 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
968 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
969 }
970 }
971
972 impl ::flatbuffers::EndianScalar for ExprNode {
973 type Scalar = u8;
974 #[inline]
975 fn to_little_endian(self) -> u8 {
976 self.0.to_le()
977 }
978 #[inline]
979 #[allow(clippy::wrong_self_convention)]
980 fn from_little_endian(v: u8) -> Self {
981 let b = u8::from_le(v);
982 Self(b)
983 }
984 }
985
986 impl<'a> ::flatbuffers::Verifiable for ExprNode {
987 #[inline]
988 fn run_verifier(
989 v: &mut ::flatbuffers::Verifier,
990 pos: usize,
991 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
992 u8::run_verifier(v, pos)
993 }
994 }
995
996 impl ::flatbuffers::SimpleToVerifyInSlice for ExprNode {}
997 pub struct ExprNodeUnionTableOffset {}
998
999 #[deprecated(
1000 since = "2.0.0",
1001 note = "Use associated constants instead. This will no longer be generated in 2021."
1002 )]
1003 pub const ENUM_MIN_EXPAND_DIR: u8 = 0;
1004 #[deprecated(
1005 since = "2.0.0",
1006 note = "Use associated constants instead. This will no longer be generated in 2021."
1007 )]
1008 pub const ENUM_MAX_EXPAND_DIR: u8 = 2;
1009 #[deprecated(
1010 since = "2.0.0",
1011 note = "Use associated constants instead. This will no longer be generated in 2021."
1012 )]
1013 #[allow(non_camel_case_types)]
1014 pub const ENUM_VALUES_EXPAND_DIR: [ExpandDir; 3] =
1015 [ExpandDir::out, ExpandDir::in_, ExpandDir::both];
1016
1017 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1018 #[repr(transparent)]
1019 pub struct ExpandDir(pub u8);
1020 #[allow(non_upper_case_globals)]
1021 impl ExpandDir {
1022 pub const out: Self = Self(0);
1023 pub const in_: Self = Self(1);
1024 pub const both: Self = Self(2);
1025
1026 pub const ENUM_MIN: u8 = 0;
1027 pub const ENUM_MAX: u8 = 2;
1028 pub const ENUM_VALUES: &'static [Self] = &[Self::out, Self::in_, Self::both];
1029 pub fn variant_name(self) -> Option<&'static str> {
1031 match self {
1032 Self::out => Some("out"),
1033 Self::in_ => Some("in_"),
1034 Self::both => Some("both"),
1035 _ => None,
1036 }
1037 }
1038 }
1039 impl ::core::fmt::Debug for ExpandDir {
1040 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
1041 if let Some(name) = self.variant_name() {
1042 f.write_str(name)
1043 } else {
1044 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
1045 }
1046 }
1047 }
1048 impl<'a> ::flatbuffers::Follow<'a> for ExpandDir {
1049 type Inner = Self;
1050 #[inline]
1051 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1052 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
1053 Self(b)
1054 }
1055 }
1056
1057 impl ::flatbuffers::Push for ExpandDir {
1058 type Output = ExpandDir;
1059 #[inline]
1060 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
1061 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
1062 }
1063 }
1064
1065 impl ::flatbuffers::EndianScalar for ExpandDir {
1066 type Scalar = u8;
1067 #[inline]
1068 fn to_little_endian(self) -> u8 {
1069 self.0.to_le()
1070 }
1071 #[inline]
1072 #[allow(clippy::wrong_self_convention)]
1073 fn from_little_endian(v: u8) -> Self {
1074 let b = u8::from_le(v);
1075 Self(b)
1076 }
1077 }
1078
1079 impl<'a> ::flatbuffers::Verifiable for ExpandDir {
1080 #[inline]
1081 fn run_verifier(
1082 v: &mut ::flatbuffers::Verifier,
1083 pos: usize,
1084 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1085 u8::run_verifier(v, pos)
1086 }
1087 }
1088
1089 impl ::flatbuffers::SimpleToVerifyInSlice for ExpandDir {}
1090 #[deprecated(
1091 since = "2.0.0",
1092 note = "Use associated constants instead. This will no longer be generated in 2021."
1093 )]
1094 pub const ENUM_MIN_SORT_DIR: u8 = 0;
1095 #[deprecated(
1096 since = "2.0.0",
1097 note = "Use associated constants instead. This will no longer be generated in 2021."
1098 )]
1099 pub const ENUM_MAX_SORT_DIR: u8 = 1;
1100 #[deprecated(
1101 since = "2.0.0",
1102 note = "Use associated constants instead. This will no longer be generated in 2021."
1103 )]
1104 #[allow(non_camel_case_types)]
1105 pub const ENUM_VALUES_SORT_DIR: [SortDir; 2] = [SortDir::asc, SortDir::desc];
1106
1107 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1108 #[repr(transparent)]
1109 pub struct SortDir(pub u8);
1110 #[allow(non_upper_case_globals)]
1111 impl SortDir {
1112 pub const asc: Self = Self(0);
1113 pub const desc: Self = Self(1);
1114
1115 pub const ENUM_MIN: u8 = 0;
1116 pub const ENUM_MAX: u8 = 1;
1117 pub const ENUM_VALUES: &'static [Self] = &[Self::asc, Self::desc];
1118 pub fn variant_name(self) -> Option<&'static str> {
1120 match self {
1121 Self::asc => Some("asc"),
1122 Self::desc => Some("desc"),
1123 _ => None,
1124 }
1125 }
1126 }
1127 impl ::core::fmt::Debug for SortDir {
1128 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
1129 if let Some(name) = self.variant_name() {
1130 f.write_str(name)
1131 } else {
1132 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
1133 }
1134 }
1135 }
1136 impl<'a> ::flatbuffers::Follow<'a> for SortDir {
1137 type Inner = Self;
1138 #[inline]
1139 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1140 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
1141 Self(b)
1142 }
1143 }
1144
1145 impl ::flatbuffers::Push for SortDir {
1146 type Output = SortDir;
1147 #[inline]
1148 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
1149 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
1150 }
1151 }
1152
1153 impl ::flatbuffers::EndianScalar for SortDir {
1154 type Scalar = u8;
1155 #[inline]
1156 fn to_little_endian(self) -> u8 {
1157 self.0.to_le()
1158 }
1159 #[inline]
1160 #[allow(clippy::wrong_self_convention)]
1161 fn from_little_endian(v: u8) -> Self {
1162 let b = u8::from_le(v);
1163 Self(b)
1164 }
1165 }
1166
1167 impl<'a> ::flatbuffers::Verifiable for SortDir {
1168 #[inline]
1169 fn run_verifier(
1170 v: &mut ::flatbuffers::Verifier,
1171 pos: usize,
1172 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1173 u8::run_verifier(v, pos)
1174 }
1175 }
1176
1177 impl ::flatbuffers::SimpleToVerifyInSlice for SortDir {}
1178 #[deprecated(
1179 since = "2.0.0",
1180 note = "Use associated constants instead. This will no longer be generated in 2021."
1181 )]
1182 pub const ENUM_MIN_OP_NODE: u8 = 0;
1183 #[deprecated(
1184 since = "2.0.0",
1185 note = "Use associated constants instead. This will no longer be generated in 2021."
1186 )]
1187 pub const ENUM_MAX_OP_NODE: u8 = 25;
1188 #[deprecated(
1189 since = "2.0.0",
1190 note = "Use associated constants instead. This will no longer be generated in 2021."
1191 )]
1192 #[allow(non_camel_case_types)]
1193 pub const ENUM_VALUES_OP_NODE: [OpNode; 26] = [
1194 OpNode::NONE,
1195 OpNode::ScanNodesOp,
1196 OpNode::ScanRelsOp,
1197 OpNode::ExpandOp,
1198 OpNode::OptionalExpandOp,
1199 OpNode::SemiExpandOp,
1200 OpNode::ExpandVarLenOp,
1201 OpNode::FilterOp,
1202 OpNode::BlockMarkerOp,
1203 OpNode::ProjectOp,
1204 OpNode::AggregateOp,
1205 OpNode::SortOp,
1206 OpNode::LimitOp,
1207 OpNode::UnwindOp,
1208 OpNode::PathConstructOp,
1209 OpNode::UnionOp,
1210 OpNode::CreateNodeOp,
1211 OpNode::CreateRelOp,
1212 OpNode::MergeOp,
1213 OpNode::DeleteOp,
1214 OpNode::SetPropertyOp,
1215 OpNode::RemovePropertyOp,
1216 OpNode::VectorScanOp,
1217 OpNode::RerankOp,
1218 OpNode::ReturnOp,
1219 OpNode::ConstRowOp,
1220 ];
1221
1222 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1223 #[repr(transparent)]
1224 pub struct OpNode(pub u8);
1225 #[allow(non_upper_case_globals)]
1226 impl OpNode {
1227 pub const NONE: Self = Self(0);
1228 pub const ScanNodesOp: Self = Self(1);
1229 pub const ScanRelsOp: Self = Self(2);
1230 pub const ExpandOp: Self = Self(3);
1231 pub const OptionalExpandOp: Self = Self(4);
1232 pub const SemiExpandOp: Self = Self(5);
1233 pub const ExpandVarLenOp: Self = Self(6);
1234 pub const FilterOp: Self = Self(7);
1235 pub const BlockMarkerOp: Self = Self(8);
1236 pub const ProjectOp: Self = Self(9);
1237 pub const AggregateOp: Self = Self(10);
1238 pub const SortOp: Self = Self(11);
1239 pub const LimitOp: Self = Self(12);
1240 pub const UnwindOp: Self = Self(13);
1241 pub const PathConstructOp: Self = Self(14);
1242 pub const UnionOp: Self = Self(15);
1243 pub const CreateNodeOp: Self = Self(16);
1244 pub const CreateRelOp: Self = Self(17);
1245 pub const MergeOp: Self = Self(18);
1246 pub const DeleteOp: Self = Self(19);
1247 pub const SetPropertyOp: Self = Self(20);
1248 pub const RemovePropertyOp: Self = Self(21);
1249 pub const VectorScanOp: Self = Self(22);
1250 pub const RerankOp: Self = Self(23);
1251 pub const ReturnOp: Self = Self(24);
1252 pub const ConstRowOp: Self = Self(25);
1253
1254 pub const ENUM_MIN: u8 = 0;
1255 pub const ENUM_MAX: u8 = 25;
1256 pub const ENUM_VALUES: &'static [Self] = &[
1257 Self::NONE,
1258 Self::ScanNodesOp,
1259 Self::ScanRelsOp,
1260 Self::ExpandOp,
1261 Self::OptionalExpandOp,
1262 Self::SemiExpandOp,
1263 Self::ExpandVarLenOp,
1264 Self::FilterOp,
1265 Self::BlockMarkerOp,
1266 Self::ProjectOp,
1267 Self::AggregateOp,
1268 Self::SortOp,
1269 Self::LimitOp,
1270 Self::UnwindOp,
1271 Self::PathConstructOp,
1272 Self::UnionOp,
1273 Self::CreateNodeOp,
1274 Self::CreateRelOp,
1275 Self::MergeOp,
1276 Self::DeleteOp,
1277 Self::SetPropertyOp,
1278 Self::RemovePropertyOp,
1279 Self::VectorScanOp,
1280 Self::RerankOp,
1281 Self::ReturnOp,
1282 Self::ConstRowOp,
1283 ];
1284 pub fn variant_name(self) -> Option<&'static str> {
1286 match self {
1287 Self::NONE => Some("NONE"),
1288 Self::ScanNodesOp => Some("ScanNodesOp"),
1289 Self::ScanRelsOp => Some("ScanRelsOp"),
1290 Self::ExpandOp => Some("ExpandOp"),
1291 Self::OptionalExpandOp => Some("OptionalExpandOp"),
1292 Self::SemiExpandOp => Some("SemiExpandOp"),
1293 Self::ExpandVarLenOp => Some("ExpandVarLenOp"),
1294 Self::FilterOp => Some("FilterOp"),
1295 Self::BlockMarkerOp => Some("BlockMarkerOp"),
1296 Self::ProjectOp => Some("ProjectOp"),
1297 Self::AggregateOp => Some("AggregateOp"),
1298 Self::SortOp => Some("SortOp"),
1299 Self::LimitOp => Some("LimitOp"),
1300 Self::UnwindOp => Some("UnwindOp"),
1301 Self::PathConstructOp => Some("PathConstructOp"),
1302 Self::UnionOp => Some("UnionOp"),
1303 Self::CreateNodeOp => Some("CreateNodeOp"),
1304 Self::CreateRelOp => Some("CreateRelOp"),
1305 Self::MergeOp => Some("MergeOp"),
1306 Self::DeleteOp => Some("DeleteOp"),
1307 Self::SetPropertyOp => Some("SetPropertyOp"),
1308 Self::RemovePropertyOp => Some("RemovePropertyOp"),
1309 Self::VectorScanOp => Some("VectorScanOp"),
1310 Self::RerankOp => Some("RerankOp"),
1311 Self::ReturnOp => Some("ReturnOp"),
1312 Self::ConstRowOp => Some("ConstRowOp"),
1313 _ => None,
1314 }
1315 }
1316 }
1317 impl ::core::fmt::Debug for OpNode {
1318 fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
1319 if let Some(name) = self.variant_name() {
1320 f.write_str(name)
1321 } else {
1322 f.write_fmt(format_args!("<UNKNOWN {:?}>", self.0))
1323 }
1324 }
1325 }
1326 impl<'a> ::flatbuffers::Follow<'a> for OpNode {
1327 type Inner = Self;
1328 #[inline]
1329 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1330 let b = unsafe { ::flatbuffers::read_scalar_at::<u8>(buf, loc) };
1331 Self(b)
1332 }
1333 }
1334
1335 impl ::flatbuffers::Push for OpNode {
1336 type Output = OpNode;
1337 #[inline]
1338 unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
1339 unsafe { ::flatbuffers::emplace_scalar::<u8>(dst, self.0) };
1340 }
1341 }
1342
1343 impl ::flatbuffers::EndianScalar for OpNode {
1344 type Scalar = u8;
1345 #[inline]
1346 fn to_little_endian(self) -> u8 {
1347 self.0.to_le()
1348 }
1349 #[inline]
1350 #[allow(clippy::wrong_self_convention)]
1351 fn from_little_endian(v: u8) -> Self {
1352 let b = u8::from_le(v);
1353 Self(b)
1354 }
1355 }
1356
1357 impl<'a> ::flatbuffers::Verifiable for OpNode {
1358 #[inline]
1359 fn run_verifier(
1360 v: &mut ::flatbuffers::Verifier,
1361 pos: usize,
1362 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1363 u8::run_verifier(v, pos)
1364 }
1365 }
1366
1367 impl ::flatbuffers::SimpleToVerifyInSlice for OpNode {}
1368 pub struct OpNodeUnionTableOffset {}
1369
1370 pub enum VersionOffset {}
1371 #[derive(Copy, Clone, PartialEq)]
1372
1373 pub struct Version<'a> {
1376 pub _tab: ::flatbuffers::Table<'a>,
1377 }
1378
1379 impl<'a> ::flatbuffers::Follow<'a> for Version<'a> {
1380 type Inner = Version<'a>;
1381 #[inline]
1382 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1383 Self {
1384 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
1385 }
1386 }
1387 }
1388
1389 impl<'a> Version<'a> {
1390 pub const VT_MAJOR: ::flatbuffers::VOffsetT = 4;
1391 pub const VT_MINOR: ::flatbuffers::VOffsetT = 6;
1392 pub const VT_PATCH: ::flatbuffers::VOffsetT = 8;
1393 pub const VT_PRODUCER: ::flatbuffers::VOffsetT = 10;
1394
1395 #[inline]
1396 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
1397 Version { _tab: table }
1398 }
1399 #[allow(unused_mut)]
1400 pub fn create<
1401 'bldr: 'args,
1402 'args: 'mut_bldr,
1403 'mut_bldr,
1404 A: ::flatbuffers::Allocator + 'bldr,
1405 >(
1406 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
1407 args: &'args VersionArgs<'args>,
1408 ) -> ::flatbuffers::WIPOffset<Version<'bldr>> {
1409 let mut builder = VersionBuilder::new(_fbb);
1410 if let Some(x) = args.producer {
1411 builder.add_producer(x);
1412 }
1413 builder.add_patch(args.patch);
1414 builder.add_minor(args.minor);
1415 builder.add_major(args.major);
1416 builder.finish()
1417 }
1418
1419 #[inline]
1420 pub fn major(&self) -> u32 {
1421 unsafe { self._tab.get::<u32>(Version::VT_MAJOR, Some(0)).unwrap() }
1425 }
1426 #[inline]
1427 pub fn minor(&self) -> u32 {
1428 unsafe { self._tab.get::<u32>(Version::VT_MINOR, Some(0)).unwrap() }
1432 }
1433 #[inline]
1434 pub fn patch(&self) -> u32 {
1435 unsafe { self._tab.get::<u32>(Version::VT_PATCH, Some(0)).unwrap() }
1439 }
1440 #[inline]
1442 pub fn producer(&self) -> Option<&'a str> {
1443 unsafe {
1447 self._tab
1448 .get::<::flatbuffers::ForwardsUOffset<&str>>(Version::VT_PRODUCER, None)
1449 }
1450 }
1451 }
1452
1453 impl ::flatbuffers::Verifiable for Version<'_> {
1454 #[inline]
1455 fn run_verifier(
1456 v: &mut ::flatbuffers::Verifier,
1457 pos: usize,
1458 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1459 v.visit_table(pos)?
1460 .visit_field::<u32>("major", Self::VT_MAJOR, false)?
1461 .visit_field::<u32>("minor", Self::VT_MINOR, false)?
1462 .visit_field::<u32>("patch", Self::VT_PATCH, false)?
1463 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
1464 "producer",
1465 Self::VT_PRODUCER,
1466 false,
1467 )?
1468 .finish();
1469 Ok(())
1470 }
1471 }
1472 pub struct VersionArgs<'a> {
1473 pub major: u32,
1474 pub minor: u32,
1475 pub patch: u32,
1476 pub producer: Option<::flatbuffers::WIPOffset<&'a str>>,
1477 }
1478 impl<'a> Default for VersionArgs<'a> {
1479 #[inline]
1480 fn default() -> Self {
1481 VersionArgs {
1482 major: 0,
1483 minor: 0,
1484 patch: 0,
1485 producer: None,
1486 }
1487 }
1488 }
1489
1490 pub struct VersionBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
1491 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1492 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
1493 }
1494 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> VersionBuilder<'a, 'b, A> {
1495 #[inline]
1496 pub fn add_major(&mut self, major: u32) {
1497 self.fbb_.push_slot::<u32>(Version::VT_MAJOR, major, 0);
1498 }
1499 #[inline]
1500 pub fn add_minor(&mut self, minor: u32) {
1501 self.fbb_.push_slot::<u32>(Version::VT_MINOR, minor, 0);
1502 }
1503 #[inline]
1504 pub fn add_patch(&mut self, patch: u32) {
1505 self.fbb_.push_slot::<u32>(Version::VT_PATCH, patch, 0);
1506 }
1507 #[inline]
1508 pub fn add_producer(&mut self, producer: ::flatbuffers::WIPOffset<&'b str>) {
1509 self.fbb_
1510 .push_slot_always::<::flatbuffers::WIPOffset<_>>(Version::VT_PRODUCER, producer);
1511 }
1512 #[inline]
1513 pub fn new(
1514 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1515 ) -> VersionBuilder<'a, 'b, A> {
1516 let start = _fbb.start_table();
1517 VersionBuilder {
1518 fbb_: _fbb,
1519 start_: start,
1520 }
1521 }
1522 #[inline]
1523 pub fn finish(self) -> ::flatbuffers::WIPOffset<Version<'a>> {
1524 let o = self.fbb_.end_table(self.start_);
1525 ::flatbuffers::WIPOffset::new(o.value())
1526 }
1527 }
1528
1529 impl ::core::fmt::Debug for Version<'_> {
1530 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1531 let mut ds = f.debug_struct("Version");
1532 ds.field("major", &self.major());
1533 ds.field("minor", &self.minor());
1534 ds.field("patch", &self.patch());
1535 ds.field("producer", &self.producer());
1536 ds.finish()
1537 }
1538 }
1539 pub enum CapabilityVersionRangeOffset {}
1540 #[derive(Copy, Clone, PartialEq)]
1541
1542 pub struct CapabilityVersionRange<'a> {
1544 pub _tab: ::flatbuffers::Table<'a>,
1545 }
1546
1547 impl<'a> ::flatbuffers::Follow<'a> for CapabilityVersionRange<'a> {
1548 type Inner = CapabilityVersionRange<'a>;
1549 #[inline]
1550 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1551 Self {
1552 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
1553 }
1554 }
1555 }
1556
1557 impl<'a> CapabilityVersionRange<'a> {
1558 pub const VT_MIN_MAJOR: ::flatbuffers::VOffsetT = 4;
1559 pub const VT_MIN_MINOR: ::flatbuffers::VOffsetT = 6;
1560 pub const VT_MIN_PATCH: ::flatbuffers::VOffsetT = 8;
1561 pub const VT_MAX_MAJOR: ::flatbuffers::VOffsetT = 10;
1562 pub const VT_MAX_MINOR: ::flatbuffers::VOffsetT = 12;
1563 pub const VT_MAX_PATCH: ::flatbuffers::VOffsetT = 14;
1564
1565 #[inline]
1566 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
1567 CapabilityVersionRange { _tab: table }
1568 }
1569 #[allow(unused_mut)]
1570 pub fn create<
1571 'bldr: 'args,
1572 'args: 'mut_bldr,
1573 'mut_bldr,
1574 A: ::flatbuffers::Allocator + 'bldr,
1575 >(
1576 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
1577 args: &'args CapabilityVersionRangeArgs,
1578 ) -> ::flatbuffers::WIPOffset<CapabilityVersionRange<'bldr>> {
1579 let mut builder = CapabilityVersionRangeBuilder::new(_fbb);
1580 builder.add_max_patch(args.max_patch);
1581 builder.add_max_minor(args.max_minor);
1582 builder.add_max_major(args.max_major);
1583 builder.add_min_patch(args.min_patch);
1584 builder.add_min_minor(args.min_minor);
1585 builder.add_min_major(args.min_major);
1586 builder.finish()
1587 }
1588
1589 #[inline]
1590 pub fn min_major(&self) -> u32 {
1591 unsafe {
1595 self._tab
1596 .get::<u32>(CapabilityVersionRange::VT_MIN_MAJOR, Some(0))
1597 .unwrap()
1598 }
1599 }
1600 #[inline]
1601 pub fn min_minor(&self) -> u32 {
1602 unsafe {
1606 self._tab
1607 .get::<u32>(CapabilityVersionRange::VT_MIN_MINOR, Some(0))
1608 .unwrap()
1609 }
1610 }
1611 #[inline]
1612 pub fn min_patch(&self) -> u32 {
1613 unsafe {
1617 self._tab
1618 .get::<u32>(CapabilityVersionRange::VT_MIN_PATCH, Some(0))
1619 .unwrap()
1620 }
1621 }
1622 #[inline]
1623 pub fn max_major(&self) -> u32 {
1624 unsafe {
1628 self._tab
1629 .get::<u32>(CapabilityVersionRange::VT_MAX_MAJOR, Some(0))
1630 .unwrap()
1631 }
1632 }
1633 #[inline]
1634 pub fn max_minor(&self) -> u32 {
1635 unsafe {
1639 self._tab
1640 .get::<u32>(CapabilityVersionRange::VT_MAX_MINOR, Some(0))
1641 .unwrap()
1642 }
1643 }
1644 #[inline]
1645 pub fn max_patch(&self) -> u32 {
1646 unsafe {
1650 self._tab
1651 .get::<u32>(CapabilityVersionRange::VT_MAX_PATCH, Some(0))
1652 .unwrap()
1653 }
1654 }
1655 }
1656
1657 impl ::flatbuffers::Verifiable for CapabilityVersionRange<'_> {
1658 #[inline]
1659 fn run_verifier(
1660 v: &mut ::flatbuffers::Verifier,
1661 pos: usize,
1662 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1663 v.visit_table(pos)?
1664 .visit_field::<u32>("min_major", Self::VT_MIN_MAJOR, false)?
1665 .visit_field::<u32>("min_minor", Self::VT_MIN_MINOR, false)?
1666 .visit_field::<u32>("min_patch", Self::VT_MIN_PATCH, false)?
1667 .visit_field::<u32>("max_major", Self::VT_MAX_MAJOR, false)?
1668 .visit_field::<u32>("max_minor", Self::VT_MAX_MINOR, false)?
1669 .visit_field::<u32>("max_patch", Self::VT_MAX_PATCH, false)?
1670 .finish();
1671 Ok(())
1672 }
1673 }
1674 pub struct CapabilityVersionRangeArgs {
1675 pub min_major: u32,
1676 pub min_minor: u32,
1677 pub min_patch: u32,
1678 pub max_major: u32,
1679 pub max_minor: u32,
1680 pub max_patch: u32,
1681 }
1682 impl<'a> Default for CapabilityVersionRangeArgs {
1683 #[inline]
1684 fn default() -> Self {
1685 CapabilityVersionRangeArgs {
1686 min_major: 0,
1687 min_minor: 0,
1688 min_patch: 0,
1689 max_major: 0,
1690 max_minor: 0,
1691 max_patch: 0,
1692 }
1693 }
1694 }
1695
1696 pub struct CapabilityVersionRangeBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
1697 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1698 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
1699 }
1700 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CapabilityVersionRangeBuilder<'a, 'b, A> {
1701 #[inline]
1702 pub fn add_min_major(&mut self, min_major: u32) {
1703 self.fbb_
1704 .push_slot::<u32>(CapabilityVersionRange::VT_MIN_MAJOR, min_major, 0);
1705 }
1706 #[inline]
1707 pub fn add_min_minor(&mut self, min_minor: u32) {
1708 self.fbb_
1709 .push_slot::<u32>(CapabilityVersionRange::VT_MIN_MINOR, min_minor, 0);
1710 }
1711 #[inline]
1712 pub fn add_min_patch(&mut self, min_patch: u32) {
1713 self.fbb_
1714 .push_slot::<u32>(CapabilityVersionRange::VT_MIN_PATCH, min_patch, 0);
1715 }
1716 #[inline]
1717 pub fn add_max_major(&mut self, max_major: u32) {
1718 self.fbb_
1719 .push_slot::<u32>(CapabilityVersionRange::VT_MAX_MAJOR, max_major, 0);
1720 }
1721 #[inline]
1722 pub fn add_max_minor(&mut self, max_minor: u32) {
1723 self.fbb_
1724 .push_slot::<u32>(CapabilityVersionRange::VT_MAX_MINOR, max_minor, 0);
1725 }
1726 #[inline]
1727 pub fn add_max_patch(&mut self, max_patch: u32) {
1728 self.fbb_
1729 .push_slot::<u32>(CapabilityVersionRange::VT_MAX_PATCH, max_patch, 0);
1730 }
1731 #[inline]
1732 pub fn new(
1733 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1734 ) -> CapabilityVersionRangeBuilder<'a, 'b, A> {
1735 let start = _fbb.start_table();
1736 CapabilityVersionRangeBuilder {
1737 fbb_: _fbb,
1738 start_: start,
1739 }
1740 }
1741 #[inline]
1742 pub fn finish(self) -> ::flatbuffers::WIPOffset<CapabilityVersionRange<'a>> {
1743 let o = self.fbb_.end_table(self.start_);
1744 ::flatbuffers::WIPOffset::new(o.value())
1745 }
1746 }
1747
1748 impl ::core::fmt::Debug for CapabilityVersionRange<'_> {
1749 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1750 let mut ds = f.debug_struct("CapabilityVersionRange");
1751 ds.field("min_major", &self.min_major());
1752 ds.field("min_minor", &self.min_minor());
1753 ds.field("min_patch", &self.min_patch());
1754 ds.field("max_major", &self.max_major());
1755 ds.field("max_minor", &self.max_minor());
1756 ds.field("max_patch", &self.max_patch());
1757 ds.finish()
1758 }
1759 }
1760 pub enum OpOrderingDeclOffset {}
1761 #[derive(Copy, Clone, PartialEq)]
1762
1763 pub struct OpOrderingDecl<'a> {
1764 pub _tab: ::flatbuffers::Table<'a>,
1765 }
1766
1767 impl<'a> ::flatbuffers::Follow<'a> for OpOrderingDecl<'a> {
1768 type Inner = OpOrderingDecl<'a>;
1769 #[inline]
1770 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1771 Self {
1772 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
1773 }
1774 }
1775 }
1776
1777 impl<'a> OpOrderingDecl<'a> {
1778 pub const VT_OP: ::flatbuffers::VOffsetT = 4;
1779 pub const VT_CONTRACT: ::flatbuffers::VOffsetT = 6;
1780
1781 #[inline]
1782 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
1783 OpOrderingDecl { _tab: table }
1784 }
1785 #[allow(unused_mut)]
1786 pub fn create<
1787 'bldr: 'args,
1788 'args: 'mut_bldr,
1789 'mut_bldr,
1790 A: ::flatbuffers::Allocator + 'bldr,
1791 >(
1792 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
1793 args: &'args OpOrderingDeclArgs<'args>,
1794 ) -> ::flatbuffers::WIPOffset<OpOrderingDecl<'bldr>> {
1795 let mut builder = OpOrderingDeclBuilder::new(_fbb);
1796 if let Some(x) = args.op {
1797 builder.add_op(x);
1798 }
1799 builder.add_contract(args.contract);
1800 builder.finish()
1801 }
1802
1803 #[inline]
1804 pub fn op(&self) -> Option<&'a str> {
1805 unsafe {
1809 self._tab
1810 .get::<::flatbuffers::ForwardsUOffset<&str>>(OpOrderingDecl::VT_OP, None)
1811 }
1812 }
1813 #[inline]
1814 pub fn contract(&self) -> CapabilityOrderingContract {
1815 unsafe {
1819 self._tab
1820 .get::<CapabilityOrderingContract>(
1821 OpOrderingDecl::VT_CONTRACT,
1822 Some(CapabilityOrderingContract::engine_defined_stable),
1823 )
1824 .unwrap()
1825 }
1826 }
1827 }
1828
1829 impl ::flatbuffers::Verifiable for OpOrderingDecl<'_> {
1830 #[inline]
1831 fn run_verifier(
1832 v: &mut ::flatbuffers::Verifier,
1833 pos: usize,
1834 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
1835 v.visit_table(pos)?
1836 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("op", Self::VT_OP, false)?
1837 .visit_field::<CapabilityOrderingContract>("contract", Self::VT_CONTRACT, false)?
1838 .finish();
1839 Ok(())
1840 }
1841 }
1842 pub struct OpOrderingDeclArgs<'a> {
1843 pub op: Option<::flatbuffers::WIPOffset<&'a str>>,
1844 pub contract: CapabilityOrderingContract,
1845 }
1846 impl<'a> Default for OpOrderingDeclArgs<'a> {
1847 #[inline]
1848 fn default() -> Self {
1849 OpOrderingDeclArgs {
1850 op: None,
1851 contract: CapabilityOrderingContract::engine_defined_stable,
1852 }
1853 }
1854 }
1855
1856 pub struct OpOrderingDeclBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
1857 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1858 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
1859 }
1860 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> OpOrderingDeclBuilder<'a, 'b, A> {
1861 #[inline]
1862 pub fn add_op(&mut self, op: ::flatbuffers::WIPOffset<&'b str>) {
1863 self.fbb_
1864 .push_slot_always::<::flatbuffers::WIPOffset<_>>(OpOrderingDecl::VT_OP, op);
1865 }
1866 #[inline]
1867 pub fn add_contract(&mut self, contract: CapabilityOrderingContract) {
1868 self.fbb_.push_slot::<CapabilityOrderingContract>(
1869 OpOrderingDecl::VT_CONTRACT,
1870 contract,
1871 CapabilityOrderingContract::engine_defined_stable,
1872 );
1873 }
1874 #[inline]
1875 pub fn new(
1876 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
1877 ) -> OpOrderingDeclBuilder<'a, 'b, A> {
1878 let start = _fbb.start_table();
1879 OpOrderingDeclBuilder {
1880 fbb_: _fbb,
1881 start_: start,
1882 }
1883 }
1884 #[inline]
1885 pub fn finish(self) -> ::flatbuffers::WIPOffset<OpOrderingDecl<'a>> {
1886 let o = self.fbb_.end_table(self.start_);
1887 ::flatbuffers::WIPOffset::new(o.value())
1888 }
1889 }
1890
1891 impl ::core::fmt::Debug for OpOrderingDecl<'_> {
1892 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1893 let mut ds = f.debug_struct("OpOrderingDecl");
1894 ds.field("op", &self.op());
1895 ds.field("contract", &self.contract());
1896 ds.finish()
1897 }
1898 }
1899 pub enum EngineCapabilityDeclOffset {}
1900 #[derive(Copy, Clone, PartialEq)]
1901
1902 pub struct EngineCapabilityDecl<'a> {
1904 pub _tab: ::flatbuffers::Table<'a>,
1905 }
1906
1907 impl<'a> ::flatbuffers::Follow<'a> for EngineCapabilityDecl<'a> {
1908 type Inner = EngineCapabilityDecl<'a>;
1909 #[inline]
1910 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
1911 Self {
1912 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
1913 }
1914 }
1915 }
1916
1917 impl<'a> EngineCapabilityDecl<'a> {
1918 pub const VT_VERSION_RANGE: ::flatbuffers::VOffsetT = 4;
1919 pub const VT_SUPPORTED_OPS: ::flatbuffers::VOffsetT = 6;
1920 pub const VT_SUPPORTED_EXPRS: ::flatbuffers::VOffsetT = 8;
1921 pub const VT_OP_ORDERING: ::flatbuffers::VOffsetT = 10;
1922 pub const VT_SUPPORTS_GRAPH_REF: ::flatbuffers::VOffsetT = 12;
1923 pub const VT_SUPPORTS_MULTI_GRAPH: ::flatbuffers::VOffsetT = 14;
1924 pub const VT_SUPPORTS_GRAPH_PARAMS: ::flatbuffers::VOffsetT = 16;
1925
1926 #[inline]
1927 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
1928 EngineCapabilityDecl { _tab: table }
1929 }
1930 #[allow(unused_mut)]
1931 pub fn create<
1932 'bldr: 'args,
1933 'args: 'mut_bldr,
1934 'mut_bldr,
1935 A: ::flatbuffers::Allocator + 'bldr,
1936 >(
1937 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
1938 args: &'args EngineCapabilityDeclArgs<'args>,
1939 ) -> ::flatbuffers::WIPOffset<EngineCapabilityDecl<'bldr>> {
1940 let mut builder = EngineCapabilityDeclBuilder::new(_fbb);
1941 if let Some(x) = args.op_ordering {
1942 builder.add_op_ordering(x);
1943 }
1944 if let Some(x) = args.supported_exprs {
1945 builder.add_supported_exprs(x);
1946 }
1947 if let Some(x) = args.supported_ops {
1948 builder.add_supported_ops(x);
1949 }
1950 if let Some(x) = args.version_range {
1951 builder.add_version_range(x);
1952 }
1953 builder.add_supports_graph_params(args.supports_graph_params);
1954 builder.add_supports_multi_graph(args.supports_multi_graph);
1955 builder.add_supports_graph_ref(args.supports_graph_ref);
1956 builder.finish()
1957 }
1958
1959 #[inline]
1960 pub fn version_range(&self) -> CapabilityVersionRange<'a> {
1961 unsafe {
1965 self._tab
1966 .get::<::flatbuffers::ForwardsUOffset<CapabilityVersionRange>>(
1967 EngineCapabilityDecl::VT_VERSION_RANGE,
1968 None,
1969 )
1970 .unwrap()
1971 }
1972 }
1973 #[inline]
1974 pub fn supported_ops(
1975 &self,
1976 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
1977 unsafe {
1981 self._tab.get::<::flatbuffers::ForwardsUOffset<
1982 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
1983 >>(EngineCapabilityDecl::VT_SUPPORTED_OPS, None)
1984 }
1985 }
1986 #[inline]
1987 pub fn supported_exprs(
1988 &self,
1989 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
1990 unsafe {
1994 self._tab.get::<::flatbuffers::ForwardsUOffset<
1995 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
1996 >>(EngineCapabilityDecl::VT_SUPPORTED_EXPRS, None)
1997 }
1998 }
1999 #[inline]
2000 pub fn op_ordering(
2001 &self,
2002 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<OpOrderingDecl<'a>>>>
2003 {
2004 unsafe {
2008 self._tab.get::<::flatbuffers::ForwardsUOffset<
2009 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<OpOrderingDecl>>,
2010 >>(EngineCapabilityDecl::VT_OP_ORDERING, None)
2011 }
2012 }
2013 #[inline]
2014 pub fn supports_graph_ref(&self) -> bool {
2015 unsafe {
2019 self._tab
2020 .get::<bool>(EngineCapabilityDecl::VT_SUPPORTS_GRAPH_REF, Some(false))
2021 .unwrap()
2022 }
2023 }
2024 #[inline]
2025 pub fn supports_multi_graph(&self) -> bool {
2026 unsafe {
2030 self._tab
2031 .get::<bool>(EngineCapabilityDecl::VT_SUPPORTS_MULTI_GRAPH, Some(false))
2032 .unwrap()
2033 }
2034 }
2035 #[inline]
2036 pub fn supports_graph_params(&self) -> bool {
2037 unsafe {
2041 self._tab
2042 .get::<bool>(EngineCapabilityDecl::VT_SUPPORTS_GRAPH_PARAMS, Some(false))
2043 .unwrap()
2044 }
2045 }
2046 }
2047
2048 impl ::flatbuffers::Verifiable for EngineCapabilityDecl<'_> {
2049 #[inline]
2050 fn run_verifier(
2051 v: &mut ::flatbuffers::Verifier,
2052 pos: usize,
2053 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2054 v.visit_table(pos)?
2055 .visit_field::<::flatbuffers::ForwardsUOffset<CapabilityVersionRange>>(
2056 "version_range",
2057 Self::VT_VERSION_RANGE,
2058 true,
2059 )?
2060 .visit_field::<::flatbuffers::ForwardsUOffset<
2061 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
2062 >>("supported_ops", Self::VT_SUPPORTED_OPS, false)?
2063 .visit_field::<::flatbuffers::ForwardsUOffset<
2064 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
2065 >>("supported_exprs", Self::VT_SUPPORTED_EXPRS, false)?
2066 .visit_field::<::flatbuffers::ForwardsUOffset<
2067 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<OpOrderingDecl>>,
2068 >>("op_ordering", Self::VT_OP_ORDERING, false)?
2069 .visit_field::<bool>("supports_graph_ref", Self::VT_SUPPORTS_GRAPH_REF, false)?
2070 .visit_field::<bool>("supports_multi_graph", Self::VT_SUPPORTS_MULTI_GRAPH, false)?
2071 .visit_field::<bool>(
2072 "supports_graph_params",
2073 Self::VT_SUPPORTS_GRAPH_PARAMS,
2074 false,
2075 )?
2076 .finish();
2077 Ok(())
2078 }
2079 }
2080 pub struct EngineCapabilityDeclArgs<'a> {
2081 pub version_range: Option<::flatbuffers::WIPOffset<CapabilityVersionRange<'a>>>,
2082 pub supported_ops: Option<
2083 ::flatbuffers::WIPOffset<
2084 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
2085 >,
2086 >,
2087 pub supported_exprs: Option<
2088 ::flatbuffers::WIPOffset<
2089 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
2090 >,
2091 >,
2092 pub op_ordering: Option<
2093 ::flatbuffers::WIPOffset<
2094 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<OpOrderingDecl<'a>>>,
2095 >,
2096 >,
2097 pub supports_graph_ref: bool,
2098 pub supports_multi_graph: bool,
2099 pub supports_graph_params: bool,
2100 }
2101 impl<'a> Default for EngineCapabilityDeclArgs<'a> {
2102 #[inline]
2103 fn default() -> Self {
2104 EngineCapabilityDeclArgs {
2105 version_range: None, supported_ops: None,
2107 supported_exprs: None,
2108 op_ordering: None,
2109 supports_graph_ref: false,
2110 supports_multi_graph: false,
2111 supports_graph_params: false,
2112 }
2113 }
2114 }
2115
2116 pub struct EngineCapabilityDeclBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2117 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2118 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2119 }
2120 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> EngineCapabilityDeclBuilder<'a, 'b, A> {
2121 #[inline]
2122 pub fn add_version_range(
2123 &mut self,
2124 version_range: ::flatbuffers::WIPOffset<CapabilityVersionRange<'b>>,
2125 ) {
2126 self.fbb_
2127 .push_slot_always::<::flatbuffers::WIPOffset<CapabilityVersionRange>>(
2128 EngineCapabilityDecl::VT_VERSION_RANGE,
2129 version_range,
2130 );
2131 }
2132 #[inline]
2133 pub fn add_supported_ops(
2134 &mut self,
2135 supported_ops: ::flatbuffers::WIPOffset<
2136 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
2137 >,
2138 ) {
2139 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
2140 EngineCapabilityDecl::VT_SUPPORTED_OPS,
2141 supported_ops,
2142 );
2143 }
2144 #[inline]
2145 pub fn add_supported_exprs(
2146 &mut self,
2147 supported_exprs: ::flatbuffers::WIPOffset<
2148 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
2149 >,
2150 ) {
2151 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
2152 EngineCapabilityDecl::VT_SUPPORTED_EXPRS,
2153 supported_exprs,
2154 );
2155 }
2156 #[inline]
2157 pub fn add_op_ordering(
2158 &mut self,
2159 op_ordering: ::flatbuffers::WIPOffset<
2160 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<OpOrderingDecl<'b>>>,
2161 >,
2162 ) {
2163 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
2164 EngineCapabilityDecl::VT_OP_ORDERING,
2165 op_ordering,
2166 );
2167 }
2168 #[inline]
2169 pub fn add_supports_graph_ref(&mut self, supports_graph_ref: bool) {
2170 self.fbb_.push_slot::<bool>(
2171 EngineCapabilityDecl::VT_SUPPORTS_GRAPH_REF,
2172 supports_graph_ref,
2173 false,
2174 );
2175 }
2176 #[inline]
2177 pub fn add_supports_multi_graph(&mut self, supports_multi_graph: bool) {
2178 self.fbb_.push_slot::<bool>(
2179 EngineCapabilityDecl::VT_SUPPORTS_MULTI_GRAPH,
2180 supports_multi_graph,
2181 false,
2182 );
2183 }
2184 #[inline]
2185 pub fn add_supports_graph_params(&mut self, supports_graph_params: bool) {
2186 self.fbb_.push_slot::<bool>(
2187 EngineCapabilityDecl::VT_SUPPORTS_GRAPH_PARAMS,
2188 supports_graph_params,
2189 false,
2190 );
2191 }
2192 #[inline]
2193 pub fn new(
2194 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2195 ) -> EngineCapabilityDeclBuilder<'a, 'b, A> {
2196 let start = _fbb.start_table();
2197 EngineCapabilityDeclBuilder {
2198 fbb_: _fbb,
2199 start_: start,
2200 }
2201 }
2202 #[inline]
2203 pub fn finish(self) -> ::flatbuffers::WIPOffset<EngineCapabilityDecl<'a>> {
2204 let o = self.fbb_.end_table(self.start_);
2205 self.fbb_
2206 .required(o, EngineCapabilityDecl::VT_VERSION_RANGE, "version_range");
2207 ::flatbuffers::WIPOffset::new(o.value())
2208 }
2209 }
2210
2211 impl ::core::fmt::Debug for EngineCapabilityDecl<'_> {
2212 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2213 let mut ds = f.debug_struct("EngineCapabilityDecl");
2214 ds.field("version_range", &self.version_range());
2215 ds.field("supported_ops", &self.supported_ops());
2216 ds.field("supported_exprs", &self.supported_exprs());
2217 ds.field("op_ordering", &self.op_ordering());
2218 ds.field("supports_graph_ref", &self.supports_graph_ref());
2219 ds.field("supports_multi_graph", &self.supports_multi_graph());
2220 ds.field("supports_graph_params", &self.supports_graph_params());
2221 ds.finish()
2222 }
2223 }
2224 pub enum ColDefOffset {}
2225 #[derive(Copy, Clone, PartialEq)]
2226
2227 pub struct ColDef<'a> {
2228 pub _tab: ::flatbuffers::Table<'a>,
2229 }
2230
2231 impl<'a> ::flatbuffers::Follow<'a> for ColDef<'a> {
2232 type Inner = ColDef<'a>;
2233 #[inline]
2234 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2235 Self {
2236 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2237 }
2238 }
2239 }
2240
2241 impl<'a> ColDef<'a> {
2242 pub const VT_NAME: ::flatbuffers::VOffsetT = 4;
2243 pub const VT_KIND: ::flatbuffers::VOffsetT = 6;
2244 pub const VT_LOGICAL_TYPE: ::flatbuffers::VOffsetT = 8;
2245 pub const VT_LOGICAL_TYPE_KIND: ::flatbuffers::VOffsetT = 10;
2246 pub const VT_VECTOR_ELEMENT_TYPE: ::flatbuffers::VOffsetT = 12;
2247 pub const VT_VECTOR_DIMENSION: ::flatbuffers::VOffsetT = 14;
2248
2249 #[inline]
2250 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2251 ColDef { _tab: table }
2252 }
2253 #[allow(unused_mut)]
2254 pub fn create<
2255 'bldr: 'args,
2256 'args: 'mut_bldr,
2257 'mut_bldr,
2258 A: ::flatbuffers::Allocator + 'bldr,
2259 >(
2260 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2261 args: &'args ColDefArgs<'args>,
2262 ) -> ::flatbuffers::WIPOffset<ColDef<'bldr>> {
2263 let mut builder = ColDefBuilder::new(_fbb);
2264 builder.add_vector_dimension(args.vector_dimension);
2265 if let Some(x) = args.vector_element_type {
2266 builder.add_vector_element_type(x);
2267 }
2268 if let Some(x) = args.logical_type {
2269 builder.add_logical_type(x);
2270 }
2271 if let Some(x) = args.name {
2272 builder.add_name(x);
2273 }
2274 builder.add_logical_type_kind(args.logical_type_kind);
2275 builder.add_kind(args.kind);
2276 builder.finish()
2277 }
2278
2279 #[inline]
2280 pub fn name(&self) -> Option<&'a str> {
2281 unsafe {
2285 self._tab
2286 .get::<::flatbuffers::ForwardsUOffset<&str>>(ColDef::VT_NAME, None)
2287 }
2288 }
2289 #[inline]
2290 pub fn kind(&self) -> ColKind {
2291 unsafe {
2295 self._tab
2296 .get::<ColKind>(ColDef::VT_KIND, Some(ColKind::value))
2297 .unwrap()
2298 }
2299 }
2300 #[inline]
2301 pub fn logical_type(&self) -> Option<&'a str> {
2302 unsafe {
2306 self._tab
2307 .get::<::flatbuffers::ForwardsUOffset<&str>>(ColDef::VT_LOGICAL_TYPE, None)
2308 }
2309 }
2310 #[inline]
2311 pub fn logical_type_kind(&self) -> LogicalType {
2312 unsafe {
2316 self._tab
2317 .get::<LogicalType>(ColDef::VT_LOGICAL_TYPE_KIND, Some(LogicalType::unknown))
2318 .unwrap()
2319 }
2320 }
2321 #[inline]
2322 pub fn vector_element_type(&self) -> Option<&'a str> {
2323 unsafe {
2327 self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(
2328 ColDef::VT_VECTOR_ELEMENT_TYPE,
2329 None,
2330 )
2331 }
2332 }
2333 #[inline]
2334 pub fn vector_dimension(&self) -> u32 {
2335 unsafe {
2339 self._tab
2340 .get::<u32>(ColDef::VT_VECTOR_DIMENSION, Some(0))
2341 .unwrap()
2342 }
2343 }
2344 }
2345
2346 impl ::flatbuffers::Verifiable for ColDef<'_> {
2347 #[inline]
2348 fn run_verifier(
2349 v: &mut ::flatbuffers::Verifier,
2350 pos: usize,
2351 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2352 v.visit_table(pos)?
2353 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("name", Self::VT_NAME, false)?
2354 .visit_field::<ColKind>("kind", Self::VT_KIND, false)?
2355 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
2356 "logical_type",
2357 Self::VT_LOGICAL_TYPE,
2358 false,
2359 )?
2360 .visit_field::<LogicalType>("logical_type_kind", Self::VT_LOGICAL_TYPE_KIND, false)?
2361 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
2362 "vector_element_type",
2363 Self::VT_VECTOR_ELEMENT_TYPE,
2364 false,
2365 )?
2366 .visit_field::<u32>("vector_dimension", Self::VT_VECTOR_DIMENSION, false)?
2367 .finish();
2368 Ok(())
2369 }
2370 }
2371 pub struct ColDefArgs<'a> {
2372 pub name: Option<::flatbuffers::WIPOffset<&'a str>>,
2373 pub kind: ColKind,
2374 pub logical_type: Option<::flatbuffers::WIPOffset<&'a str>>,
2375 pub logical_type_kind: LogicalType,
2376 pub vector_element_type: Option<::flatbuffers::WIPOffset<&'a str>>,
2377 pub vector_dimension: u32,
2378 }
2379 impl<'a> Default for ColDefArgs<'a> {
2380 #[inline]
2381 fn default() -> Self {
2382 ColDefArgs {
2383 name: None,
2384 kind: ColKind::value,
2385 logical_type: None,
2386 logical_type_kind: LogicalType::unknown,
2387 vector_element_type: None,
2388 vector_dimension: 0,
2389 }
2390 }
2391 }
2392
2393 pub struct ColDefBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2394 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2395 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2396 }
2397 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ColDefBuilder<'a, 'b, A> {
2398 #[inline]
2399 pub fn add_name(&mut self, name: ::flatbuffers::WIPOffset<&'b str>) {
2400 self.fbb_
2401 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ColDef::VT_NAME, name);
2402 }
2403 #[inline]
2404 pub fn add_kind(&mut self, kind: ColKind) {
2405 self.fbb_
2406 .push_slot::<ColKind>(ColDef::VT_KIND, kind, ColKind::value);
2407 }
2408 #[inline]
2409 pub fn add_logical_type(&mut self, logical_type: ::flatbuffers::WIPOffset<&'b str>) {
2410 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
2411 ColDef::VT_LOGICAL_TYPE,
2412 logical_type,
2413 );
2414 }
2415 #[inline]
2416 pub fn add_logical_type_kind(&mut self, logical_type_kind: LogicalType) {
2417 self.fbb_.push_slot::<LogicalType>(
2418 ColDef::VT_LOGICAL_TYPE_KIND,
2419 logical_type_kind,
2420 LogicalType::unknown,
2421 );
2422 }
2423 #[inline]
2424 pub fn add_vector_element_type(
2425 &mut self,
2426 vector_element_type: ::flatbuffers::WIPOffset<&'b str>,
2427 ) {
2428 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
2429 ColDef::VT_VECTOR_ELEMENT_TYPE,
2430 vector_element_type,
2431 );
2432 }
2433 #[inline]
2434 pub fn add_vector_dimension(&mut self, vector_dimension: u32) {
2435 self.fbb_
2436 .push_slot::<u32>(ColDef::VT_VECTOR_DIMENSION, vector_dimension, 0);
2437 }
2438 #[inline]
2439 pub fn new(
2440 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2441 ) -> ColDefBuilder<'a, 'b, A> {
2442 let start = _fbb.start_table();
2443 ColDefBuilder {
2444 fbb_: _fbb,
2445 start_: start,
2446 }
2447 }
2448 #[inline]
2449 pub fn finish(self) -> ::flatbuffers::WIPOffset<ColDef<'a>> {
2450 let o = self.fbb_.end_table(self.start_);
2451 ::flatbuffers::WIPOffset::new(o.value())
2452 }
2453 }
2454
2455 impl ::core::fmt::Debug for ColDef<'_> {
2456 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2457 let mut ds = f.debug_struct("ColDef");
2458 ds.field("name", &self.name());
2459 ds.field("kind", &self.kind());
2460 ds.field("logical_type", &self.logical_type());
2461 ds.field("logical_type_kind", &self.logical_type_kind());
2462 ds.field("vector_element_type", &self.vector_element_type());
2463 ds.field("vector_dimension", &self.vector_dimension());
2464 ds.finish()
2465 }
2466 }
2467 pub enum ColRefExprOffset {}
2468 #[derive(Copy, Clone, PartialEq)]
2469
2470 pub struct ColRefExpr<'a> {
2471 pub _tab: ::flatbuffers::Table<'a>,
2472 }
2473
2474 impl<'a> ::flatbuffers::Follow<'a> for ColRefExpr<'a> {
2475 type Inner = ColRefExpr<'a>;
2476 #[inline]
2477 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2478 Self {
2479 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2480 }
2481 }
2482 }
2483
2484 impl<'a> ColRefExpr<'a> {
2485 pub const VT_IDX: ::flatbuffers::VOffsetT = 4;
2486
2487 #[inline]
2488 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2489 ColRefExpr { _tab: table }
2490 }
2491 #[allow(unused_mut)]
2492 pub fn create<
2493 'bldr: 'args,
2494 'args: 'mut_bldr,
2495 'mut_bldr,
2496 A: ::flatbuffers::Allocator + 'bldr,
2497 >(
2498 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2499 args: &'args ColRefExprArgs,
2500 ) -> ::flatbuffers::WIPOffset<ColRefExpr<'bldr>> {
2501 let mut builder = ColRefExprBuilder::new(_fbb);
2502 builder.add_idx(args.idx);
2503 builder.finish()
2504 }
2505
2506 #[inline]
2507 pub fn idx(&self) -> u32 {
2508 unsafe { self._tab.get::<u32>(ColRefExpr::VT_IDX, Some(0)).unwrap() }
2512 }
2513 }
2514
2515 impl ::flatbuffers::Verifiable for ColRefExpr<'_> {
2516 #[inline]
2517 fn run_verifier(
2518 v: &mut ::flatbuffers::Verifier,
2519 pos: usize,
2520 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2521 v.visit_table(pos)?
2522 .visit_field::<u32>("idx", Self::VT_IDX, false)?
2523 .finish();
2524 Ok(())
2525 }
2526 }
2527 pub struct ColRefExprArgs {
2528 pub idx: u32,
2529 }
2530 impl<'a> Default for ColRefExprArgs {
2531 #[inline]
2532 fn default() -> Self {
2533 ColRefExprArgs { idx: 0 }
2534 }
2535 }
2536
2537 pub struct ColRefExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2538 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2539 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2540 }
2541 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ColRefExprBuilder<'a, 'b, A> {
2542 #[inline]
2543 pub fn add_idx(&mut self, idx: u32) {
2544 self.fbb_.push_slot::<u32>(ColRefExpr::VT_IDX, idx, 0);
2545 }
2546 #[inline]
2547 pub fn new(
2548 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2549 ) -> ColRefExprBuilder<'a, 'b, A> {
2550 let start = _fbb.start_table();
2551 ColRefExprBuilder {
2552 fbb_: _fbb,
2553 start_: start,
2554 }
2555 }
2556 #[inline]
2557 pub fn finish(self) -> ::flatbuffers::WIPOffset<ColRefExpr<'a>> {
2558 let o = self.fbb_.end_table(self.start_);
2559 ::flatbuffers::WIPOffset::new(o.value())
2560 }
2561 }
2562
2563 impl ::core::fmt::Debug for ColRefExpr<'_> {
2564 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2565 let mut ds = f.debug_struct("ColRefExpr");
2566 ds.field("idx", &self.idx());
2567 ds.finish()
2568 }
2569 }
2570 pub enum PropAccessExprOffset {}
2571 #[derive(Copy, Clone, PartialEq)]
2572
2573 pub struct PropAccessExpr<'a> {
2574 pub _tab: ::flatbuffers::Table<'a>,
2575 }
2576
2577 impl<'a> ::flatbuffers::Follow<'a> for PropAccessExpr<'a> {
2578 type Inner = PropAccessExpr<'a>;
2579 #[inline]
2580 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2581 Self {
2582 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2583 }
2584 }
2585 }
2586
2587 impl<'a> PropAccessExpr<'a> {
2588 pub const VT_COL: ::flatbuffers::VOffsetT = 4;
2589 pub const VT_PROP: ::flatbuffers::VOffsetT = 6;
2590
2591 #[inline]
2592 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2593 PropAccessExpr { _tab: table }
2594 }
2595 #[allow(unused_mut)]
2596 pub fn create<
2597 'bldr: 'args,
2598 'args: 'mut_bldr,
2599 'mut_bldr,
2600 A: ::flatbuffers::Allocator + 'bldr,
2601 >(
2602 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2603 args: &'args PropAccessExprArgs<'args>,
2604 ) -> ::flatbuffers::WIPOffset<PropAccessExpr<'bldr>> {
2605 let mut builder = PropAccessExprBuilder::new(_fbb);
2606 if let Some(x) = args.prop {
2607 builder.add_prop(x);
2608 }
2609 builder.add_col(args.col);
2610 builder.finish()
2611 }
2612
2613 #[inline]
2614 pub fn col(&self) -> u32 {
2615 unsafe {
2619 self._tab
2620 .get::<u32>(PropAccessExpr::VT_COL, Some(0))
2621 .unwrap()
2622 }
2623 }
2624 #[inline]
2625 pub fn prop(&self) -> Option<&'a str> {
2626 unsafe {
2630 self._tab
2631 .get::<::flatbuffers::ForwardsUOffset<&str>>(PropAccessExpr::VT_PROP, None)
2632 }
2633 }
2634 }
2635
2636 impl ::flatbuffers::Verifiable for PropAccessExpr<'_> {
2637 #[inline]
2638 fn run_verifier(
2639 v: &mut ::flatbuffers::Verifier,
2640 pos: usize,
2641 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2642 v.visit_table(pos)?
2643 .visit_field::<u32>("col", Self::VT_COL, false)?
2644 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("prop", Self::VT_PROP, false)?
2645 .finish();
2646 Ok(())
2647 }
2648 }
2649 pub struct PropAccessExprArgs<'a> {
2650 pub col: u32,
2651 pub prop: Option<::flatbuffers::WIPOffset<&'a str>>,
2652 }
2653 impl<'a> Default for PropAccessExprArgs<'a> {
2654 #[inline]
2655 fn default() -> Self {
2656 PropAccessExprArgs { col: 0, prop: None }
2657 }
2658 }
2659
2660 pub struct PropAccessExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2661 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2662 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2663 }
2664 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> PropAccessExprBuilder<'a, 'b, A> {
2665 #[inline]
2666 pub fn add_col(&mut self, col: u32) {
2667 self.fbb_.push_slot::<u32>(PropAccessExpr::VT_COL, col, 0);
2668 }
2669 #[inline]
2670 pub fn add_prop(&mut self, prop: ::flatbuffers::WIPOffset<&'b str>) {
2671 self.fbb_
2672 .push_slot_always::<::flatbuffers::WIPOffset<_>>(PropAccessExpr::VT_PROP, prop);
2673 }
2674 #[inline]
2675 pub fn new(
2676 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2677 ) -> PropAccessExprBuilder<'a, 'b, A> {
2678 let start = _fbb.start_table();
2679 PropAccessExprBuilder {
2680 fbb_: _fbb,
2681 start_: start,
2682 }
2683 }
2684 #[inline]
2685 pub fn finish(self) -> ::flatbuffers::WIPOffset<PropAccessExpr<'a>> {
2686 let o = self.fbb_.end_table(self.start_);
2687 ::flatbuffers::WIPOffset::new(o.value())
2688 }
2689 }
2690
2691 impl ::core::fmt::Debug for PropAccessExpr<'_> {
2692 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2693 let mut ds = f.debug_struct("PropAccessExpr");
2694 ds.field("col", &self.col());
2695 ds.field("prop", &self.prop());
2696 ds.finish()
2697 }
2698 }
2699 pub enum IntLiteralExprOffset {}
2700 #[derive(Copy, Clone, PartialEq)]
2701
2702 pub struct IntLiteralExpr<'a> {
2703 pub _tab: ::flatbuffers::Table<'a>,
2704 }
2705
2706 impl<'a> ::flatbuffers::Follow<'a> for IntLiteralExpr<'a> {
2707 type Inner = IntLiteralExpr<'a>;
2708 #[inline]
2709 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2710 Self {
2711 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2712 }
2713 }
2714 }
2715
2716 impl<'a> IntLiteralExpr<'a> {
2717 pub const VT_VALUE: ::flatbuffers::VOffsetT = 4;
2718
2719 #[inline]
2720 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2721 IntLiteralExpr { _tab: table }
2722 }
2723 #[allow(unused_mut)]
2724 pub fn create<
2725 'bldr: 'args,
2726 'args: 'mut_bldr,
2727 'mut_bldr,
2728 A: ::flatbuffers::Allocator + 'bldr,
2729 >(
2730 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2731 args: &'args IntLiteralExprArgs,
2732 ) -> ::flatbuffers::WIPOffset<IntLiteralExpr<'bldr>> {
2733 let mut builder = IntLiteralExprBuilder::new(_fbb);
2734 builder.add_value(args.value);
2735 builder.finish()
2736 }
2737
2738 #[inline]
2739 pub fn value(&self) -> i64 {
2740 unsafe {
2744 self._tab
2745 .get::<i64>(IntLiteralExpr::VT_VALUE, Some(0))
2746 .unwrap()
2747 }
2748 }
2749 }
2750
2751 impl ::flatbuffers::Verifiable for IntLiteralExpr<'_> {
2752 #[inline]
2753 fn run_verifier(
2754 v: &mut ::flatbuffers::Verifier,
2755 pos: usize,
2756 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2757 v.visit_table(pos)?
2758 .visit_field::<i64>("value", Self::VT_VALUE, false)?
2759 .finish();
2760 Ok(())
2761 }
2762 }
2763 pub struct IntLiteralExprArgs {
2764 pub value: i64,
2765 }
2766 impl<'a> Default for IntLiteralExprArgs {
2767 #[inline]
2768 fn default() -> Self {
2769 IntLiteralExprArgs { value: 0 }
2770 }
2771 }
2772
2773 pub struct IntLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2774 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2775 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2776 }
2777 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> IntLiteralExprBuilder<'a, 'b, A> {
2778 #[inline]
2779 pub fn add_value(&mut self, value: i64) {
2780 self.fbb_
2781 .push_slot::<i64>(IntLiteralExpr::VT_VALUE, value, 0);
2782 }
2783 #[inline]
2784 pub fn new(
2785 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2786 ) -> IntLiteralExprBuilder<'a, 'b, A> {
2787 let start = _fbb.start_table();
2788 IntLiteralExprBuilder {
2789 fbb_: _fbb,
2790 start_: start,
2791 }
2792 }
2793 #[inline]
2794 pub fn finish(self) -> ::flatbuffers::WIPOffset<IntLiteralExpr<'a>> {
2795 let o = self.fbb_.end_table(self.start_);
2796 ::flatbuffers::WIPOffset::new(o.value())
2797 }
2798 }
2799
2800 impl ::core::fmt::Debug for IntLiteralExpr<'_> {
2801 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2802 let mut ds = f.debug_struct("IntLiteralExpr");
2803 ds.field("value", &self.value());
2804 ds.finish()
2805 }
2806 }
2807 pub enum FloatLiteralExprOffset {}
2808 #[derive(Copy, Clone, PartialEq)]
2809
2810 pub struct FloatLiteralExpr<'a> {
2811 pub _tab: ::flatbuffers::Table<'a>,
2812 }
2813
2814 impl<'a> ::flatbuffers::Follow<'a> for FloatLiteralExpr<'a> {
2815 type Inner = FloatLiteralExpr<'a>;
2816 #[inline]
2817 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2818 Self {
2819 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2820 }
2821 }
2822 }
2823
2824 impl<'a> FloatLiteralExpr<'a> {
2825 pub const VT_VALUE: ::flatbuffers::VOffsetT = 4;
2826
2827 #[inline]
2828 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2829 FloatLiteralExpr { _tab: table }
2830 }
2831 #[allow(unused_mut)]
2832 pub fn create<
2833 'bldr: 'args,
2834 'args: 'mut_bldr,
2835 'mut_bldr,
2836 A: ::flatbuffers::Allocator + 'bldr,
2837 >(
2838 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2839 args: &'args FloatLiteralExprArgs,
2840 ) -> ::flatbuffers::WIPOffset<FloatLiteralExpr<'bldr>> {
2841 let mut builder = FloatLiteralExprBuilder::new(_fbb);
2842 builder.add_value(args.value);
2843 builder.finish()
2844 }
2845
2846 #[inline]
2847 pub fn value(&self) -> f64 {
2848 unsafe {
2852 self._tab
2853 .get::<f64>(FloatLiteralExpr::VT_VALUE, Some(0.0))
2854 .unwrap()
2855 }
2856 }
2857 }
2858
2859 impl ::flatbuffers::Verifiable for FloatLiteralExpr<'_> {
2860 #[inline]
2861 fn run_verifier(
2862 v: &mut ::flatbuffers::Verifier,
2863 pos: usize,
2864 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2865 v.visit_table(pos)?
2866 .visit_field::<f64>("value", Self::VT_VALUE, false)?
2867 .finish();
2868 Ok(())
2869 }
2870 }
2871 pub struct FloatLiteralExprArgs {
2872 pub value: f64,
2873 }
2874 impl<'a> Default for FloatLiteralExprArgs {
2875 #[inline]
2876 fn default() -> Self {
2877 FloatLiteralExprArgs { value: 0.0 }
2878 }
2879 }
2880
2881 pub struct FloatLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2882 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2883 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2884 }
2885 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> FloatLiteralExprBuilder<'a, 'b, A> {
2886 #[inline]
2887 pub fn add_value(&mut self, value: f64) {
2888 self.fbb_
2889 .push_slot::<f64>(FloatLiteralExpr::VT_VALUE, value, 0.0);
2890 }
2891 #[inline]
2892 pub fn new(
2893 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2894 ) -> FloatLiteralExprBuilder<'a, 'b, A> {
2895 let start = _fbb.start_table();
2896 FloatLiteralExprBuilder {
2897 fbb_: _fbb,
2898 start_: start,
2899 }
2900 }
2901 #[inline]
2902 pub fn finish(self) -> ::flatbuffers::WIPOffset<FloatLiteralExpr<'a>> {
2903 let o = self.fbb_.end_table(self.start_);
2904 ::flatbuffers::WIPOffset::new(o.value())
2905 }
2906 }
2907
2908 impl ::core::fmt::Debug for FloatLiteralExpr<'_> {
2909 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2910 let mut ds = f.debug_struct("FloatLiteralExpr");
2911 ds.field("value", &self.value());
2912 ds.finish()
2913 }
2914 }
2915 pub enum BoolLiteralExprOffset {}
2916 #[derive(Copy, Clone, PartialEq)]
2917
2918 pub struct BoolLiteralExpr<'a> {
2919 pub _tab: ::flatbuffers::Table<'a>,
2920 }
2921
2922 impl<'a> ::flatbuffers::Follow<'a> for BoolLiteralExpr<'a> {
2923 type Inner = BoolLiteralExpr<'a>;
2924 #[inline]
2925 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
2926 Self {
2927 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
2928 }
2929 }
2930 }
2931
2932 impl<'a> BoolLiteralExpr<'a> {
2933 pub const VT_VALUE: ::flatbuffers::VOffsetT = 4;
2934
2935 #[inline]
2936 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
2937 BoolLiteralExpr { _tab: table }
2938 }
2939 #[allow(unused_mut)]
2940 pub fn create<
2941 'bldr: 'args,
2942 'args: 'mut_bldr,
2943 'mut_bldr,
2944 A: ::flatbuffers::Allocator + 'bldr,
2945 >(
2946 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
2947 args: &'args BoolLiteralExprArgs,
2948 ) -> ::flatbuffers::WIPOffset<BoolLiteralExpr<'bldr>> {
2949 let mut builder = BoolLiteralExprBuilder::new(_fbb);
2950 builder.add_value(args.value);
2951 builder.finish()
2952 }
2953
2954 #[inline]
2955 pub fn value(&self) -> bool {
2956 unsafe {
2960 self._tab
2961 .get::<bool>(BoolLiteralExpr::VT_VALUE, Some(false))
2962 .unwrap()
2963 }
2964 }
2965 }
2966
2967 impl ::flatbuffers::Verifiable for BoolLiteralExpr<'_> {
2968 #[inline]
2969 fn run_verifier(
2970 v: &mut ::flatbuffers::Verifier,
2971 pos: usize,
2972 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
2973 v.visit_table(pos)?
2974 .visit_field::<bool>("value", Self::VT_VALUE, false)?
2975 .finish();
2976 Ok(())
2977 }
2978 }
2979 pub struct BoolLiteralExprArgs {
2980 pub value: bool,
2981 }
2982 impl<'a> Default for BoolLiteralExprArgs {
2983 #[inline]
2984 fn default() -> Self {
2985 BoolLiteralExprArgs { value: false }
2986 }
2987 }
2988
2989 pub struct BoolLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
2990 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
2991 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
2992 }
2993 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> BoolLiteralExprBuilder<'a, 'b, A> {
2994 #[inline]
2995 pub fn add_value(&mut self, value: bool) {
2996 self.fbb_
2997 .push_slot::<bool>(BoolLiteralExpr::VT_VALUE, value, false);
2998 }
2999 #[inline]
3000 pub fn new(
3001 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3002 ) -> BoolLiteralExprBuilder<'a, 'b, A> {
3003 let start = _fbb.start_table();
3004 BoolLiteralExprBuilder {
3005 fbb_: _fbb,
3006 start_: start,
3007 }
3008 }
3009 #[inline]
3010 pub fn finish(self) -> ::flatbuffers::WIPOffset<BoolLiteralExpr<'a>> {
3011 let o = self.fbb_.end_table(self.start_);
3012 ::flatbuffers::WIPOffset::new(o.value())
3013 }
3014 }
3015
3016 impl ::core::fmt::Debug for BoolLiteralExpr<'_> {
3017 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3018 let mut ds = f.debug_struct("BoolLiteralExpr");
3019 ds.field("value", &self.value());
3020 ds.finish()
3021 }
3022 }
3023 pub enum StringLiteralExprOffset {}
3024 #[derive(Copy, Clone, PartialEq)]
3025
3026 pub struct StringLiteralExpr<'a> {
3027 pub _tab: ::flatbuffers::Table<'a>,
3028 }
3029
3030 impl<'a> ::flatbuffers::Follow<'a> for StringLiteralExpr<'a> {
3031 type Inner = StringLiteralExpr<'a>;
3032 #[inline]
3033 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3034 Self {
3035 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3036 }
3037 }
3038 }
3039
3040 impl<'a> StringLiteralExpr<'a> {
3041 pub const VT_VALUE: ::flatbuffers::VOffsetT = 4;
3042
3043 #[inline]
3044 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3045 StringLiteralExpr { _tab: table }
3046 }
3047 #[allow(unused_mut)]
3048 pub fn create<
3049 'bldr: 'args,
3050 'args: 'mut_bldr,
3051 'mut_bldr,
3052 A: ::flatbuffers::Allocator + 'bldr,
3053 >(
3054 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3055 args: &'args StringLiteralExprArgs<'args>,
3056 ) -> ::flatbuffers::WIPOffset<StringLiteralExpr<'bldr>> {
3057 let mut builder = StringLiteralExprBuilder::new(_fbb);
3058 if let Some(x) = args.value {
3059 builder.add_value(x);
3060 }
3061 builder.finish()
3062 }
3063
3064 #[inline]
3065 pub fn value(&self) -> Option<&'a str> {
3066 unsafe {
3070 self._tab
3071 .get::<::flatbuffers::ForwardsUOffset<&str>>(StringLiteralExpr::VT_VALUE, None)
3072 }
3073 }
3074 }
3075
3076 impl ::flatbuffers::Verifiable for StringLiteralExpr<'_> {
3077 #[inline]
3078 fn run_verifier(
3079 v: &mut ::flatbuffers::Verifier,
3080 pos: usize,
3081 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3082 v.visit_table(pos)?
3083 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
3084 "value",
3085 Self::VT_VALUE,
3086 false,
3087 )?
3088 .finish();
3089 Ok(())
3090 }
3091 }
3092 pub struct StringLiteralExprArgs<'a> {
3093 pub value: Option<::flatbuffers::WIPOffset<&'a str>>,
3094 }
3095 impl<'a> Default for StringLiteralExprArgs<'a> {
3096 #[inline]
3097 fn default() -> Self {
3098 StringLiteralExprArgs { value: None }
3099 }
3100 }
3101
3102 pub struct StringLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3103 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3104 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3105 }
3106 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> StringLiteralExprBuilder<'a, 'b, A> {
3107 #[inline]
3108 pub fn add_value(&mut self, value: ::flatbuffers::WIPOffset<&'b str>) {
3109 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
3110 StringLiteralExpr::VT_VALUE,
3111 value,
3112 );
3113 }
3114 #[inline]
3115 pub fn new(
3116 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3117 ) -> StringLiteralExprBuilder<'a, 'b, A> {
3118 let start = _fbb.start_table();
3119 StringLiteralExprBuilder {
3120 fbb_: _fbb,
3121 start_: start,
3122 }
3123 }
3124 #[inline]
3125 pub fn finish(self) -> ::flatbuffers::WIPOffset<StringLiteralExpr<'a>> {
3126 let o = self.fbb_.end_table(self.start_);
3127 ::flatbuffers::WIPOffset::new(o.value())
3128 }
3129 }
3130
3131 impl ::core::fmt::Debug for StringLiteralExpr<'_> {
3132 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3133 let mut ds = f.debug_struct("StringLiteralExpr");
3134 ds.field("value", &self.value());
3135 ds.finish()
3136 }
3137 }
3138 pub enum NullLiteralExprOffset {}
3139 #[derive(Copy, Clone, PartialEq)]
3140
3141 pub struct NullLiteralExpr<'a> {
3142 pub _tab: ::flatbuffers::Table<'a>,
3143 }
3144
3145 impl<'a> ::flatbuffers::Follow<'a> for NullLiteralExpr<'a> {
3146 type Inner = NullLiteralExpr<'a>;
3147 #[inline]
3148 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3149 Self {
3150 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3151 }
3152 }
3153 }
3154
3155 impl<'a> NullLiteralExpr<'a> {
3156 #[inline]
3157 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3158 NullLiteralExpr { _tab: table }
3159 }
3160 #[allow(unused_mut)]
3161 pub fn create<
3162 'bldr: 'args,
3163 'args: 'mut_bldr,
3164 'mut_bldr,
3165 A: ::flatbuffers::Allocator + 'bldr,
3166 >(
3167 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3168 _args: &'args NullLiteralExprArgs,
3169 ) -> ::flatbuffers::WIPOffset<NullLiteralExpr<'bldr>> {
3170 let mut builder = NullLiteralExprBuilder::new(_fbb);
3171 builder.finish()
3172 }
3173 }
3174
3175 impl ::flatbuffers::Verifiable for NullLiteralExpr<'_> {
3176 #[inline]
3177 fn run_verifier(
3178 v: &mut ::flatbuffers::Verifier,
3179 pos: usize,
3180 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3181 v.visit_table(pos)?.finish();
3182 Ok(())
3183 }
3184 }
3185 pub struct NullLiteralExprArgs {}
3186 impl<'a> Default for NullLiteralExprArgs {
3187 #[inline]
3188 fn default() -> Self {
3189 NullLiteralExprArgs {}
3190 }
3191 }
3192
3193 pub struct NullLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3194 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3195 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3196 }
3197 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> NullLiteralExprBuilder<'a, 'b, A> {
3198 #[inline]
3199 pub fn new(
3200 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3201 ) -> NullLiteralExprBuilder<'a, 'b, A> {
3202 let start = _fbb.start_table();
3203 NullLiteralExprBuilder {
3204 fbb_: _fbb,
3205 start_: start,
3206 }
3207 }
3208 #[inline]
3209 pub fn finish(self) -> ::flatbuffers::WIPOffset<NullLiteralExpr<'a>> {
3210 let o = self.fbb_.end_table(self.start_);
3211 ::flatbuffers::WIPOffset::new(o.value())
3212 }
3213 }
3214
3215 impl ::core::fmt::Debug for NullLiteralExpr<'_> {
3216 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3217 let mut ds = f.debug_struct("NullLiteralExpr");
3218 ds.finish()
3219 }
3220 }
3221 pub enum CmpExprOffset {}
3222 #[derive(Copy, Clone, PartialEq)]
3223
3224 pub struct CmpExpr<'a> {
3225 pub _tab: ::flatbuffers::Table<'a>,
3226 }
3227
3228 impl<'a> ::flatbuffers::Follow<'a> for CmpExpr<'a> {
3229 type Inner = CmpExpr<'a>;
3230 #[inline]
3231 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3232 Self {
3233 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3234 }
3235 }
3236 }
3237
3238 impl<'a> CmpExpr<'a> {
3239 pub const VT_OP: ::flatbuffers::VOffsetT = 4;
3240 pub const VT_LHS: ::flatbuffers::VOffsetT = 6;
3241 pub const VT_RHS: ::flatbuffers::VOffsetT = 8;
3242
3243 #[inline]
3244 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3245 CmpExpr { _tab: table }
3246 }
3247 #[allow(unused_mut)]
3248 pub fn create<
3249 'bldr: 'args,
3250 'args: 'mut_bldr,
3251 'mut_bldr,
3252 A: ::flatbuffers::Allocator + 'bldr,
3253 >(
3254 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3255 args: &'args CmpExprArgs<'args>,
3256 ) -> ::flatbuffers::WIPOffset<CmpExpr<'bldr>> {
3257 let mut builder = CmpExprBuilder::new(_fbb);
3258 if let Some(x) = args.rhs {
3259 builder.add_rhs(x);
3260 }
3261 if let Some(x) = args.lhs {
3262 builder.add_lhs(x);
3263 }
3264 builder.add_op(args.op);
3265 builder.finish()
3266 }
3267
3268 #[inline]
3269 pub fn op(&self) -> CmpOp {
3270 unsafe {
3274 self._tab
3275 .get::<CmpOp>(CmpExpr::VT_OP, Some(CmpOp::eq))
3276 .unwrap()
3277 }
3278 }
3279 #[inline]
3280 pub fn lhs(&self) -> Option<Expr<'a>> {
3281 unsafe {
3285 self._tab
3286 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CmpExpr::VT_LHS, None)
3287 }
3288 }
3289 #[inline]
3290 pub fn rhs(&self) -> Option<Expr<'a>> {
3291 unsafe {
3295 self._tab
3296 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CmpExpr::VT_RHS, None)
3297 }
3298 }
3299 }
3300
3301 impl ::flatbuffers::Verifiable for CmpExpr<'_> {
3302 #[inline]
3303 fn run_verifier(
3304 v: &mut ::flatbuffers::Verifier,
3305 pos: usize,
3306 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3307 v.visit_table(pos)?
3308 .visit_field::<CmpOp>("op", Self::VT_OP, false)?
3309 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("lhs", Self::VT_LHS, false)?
3310 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("rhs", Self::VT_RHS, false)?
3311 .finish();
3312 Ok(())
3313 }
3314 }
3315 pub struct CmpExprArgs<'a> {
3316 pub op: CmpOp,
3317 pub lhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3318 pub rhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3319 }
3320 impl<'a> Default for CmpExprArgs<'a> {
3321 #[inline]
3322 fn default() -> Self {
3323 CmpExprArgs {
3324 op: CmpOp::eq,
3325 lhs: None,
3326 rhs: None,
3327 }
3328 }
3329 }
3330
3331 pub struct CmpExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3332 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3333 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3334 }
3335 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CmpExprBuilder<'a, 'b, A> {
3336 #[inline]
3337 pub fn add_op(&mut self, op: CmpOp) {
3338 self.fbb_.push_slot::<CmpOp>(CmpExpr::VT_OP, op, CmpOp::eq);
3339 }
3340 #[inline]
3341 pub fn add_lhs(&mut self, lhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3342 self.fbb_
3343 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(CmpExpr::VT_LHS, lhs);
3344 }
3345 #[inline]
3346 pub fn add_rhs(&mut self, rhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3347 self.fbb_
3348 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(CmpExpr::VT_RHS, rhs);
3349 }
3350 #[inline]
3351 pub fn new(
3352 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3353 ) -> CmpExprBuilder<'a, 'b, A> {
3354 let start = _fbb.start_table();
3355 CmpExprBuilder {
3356 fbb_: _fbb,
3357 start_: start,
3358 }
3359 }
3360 #[inline]
3361 pub fn finish(self) -> ::flatbuffers::WIPOffset<CmpExpr<'a>> {
3362 let o = self.fbb_.end_table(self.start_);
3363 ::flatbuffers::WIPOffset::new(o.value())
3364 }
3365 }
3366
3367 impl ::core::fmt::Debug for CmpExpr<'_> {
3368 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3369 let mut ds = f.debug_struct("CmpExpr");
3370 ds.field("op", &self.op());
3371 ds.field("lhs", &self.lhs());
3372 ds.field("rhs", &self.rhs());
3373 ds.finish()
3374 }
3375 }
3376 pub enum AndExprOffset {}
3377 #[derive(Copy, Clone, PartialEq)]
3378
3379 pub struct AndExpr<'a> {
3380 pub _tab: ::flatbuffers::Table<'a>,
3381 }
3382
3383 impl<'a> ::flatbuffers::Follow<'a> for AndExpr<'a> {
3384 type Inner = AndExpr<'a>;
3385 #[inline]
3386 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3387 Self {
3388 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3389 }
3390 }
3391 }
3392
3393 impl<'a> AndExpr<'a> {
3394 pub const VT_LHS: ::flatbuffers::VOffsetT = 4;
3395 pub const VT_RHS: ::flatbuffers::VOffsetT = 6;
3396
3397 #[inline]
3398 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3399 AndExpr { _tab: table }
3400 }
3401 #[allow(unused_mut)]
3402 pub fn create<
3403 'bldr: 'args,
3404 'args: 'mut_bldr,
3405 'mut_bldr,
3406 A: ::flatbuffers::Allocator + 'bldr,
3407 >(
3408 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3409 args: &'args AndExprArgs<'args>,
3410 ) -> ::flatbuffers::WIPOffset<AndExpr<'bldr>> {
3411 let mut builder = AndExprBuilder::new(_fbb);
3412 if let Some(x) = args.rhs {
3413 builder.add_rhs(x);
3414 }
3415 if let Some(x) = args.lhs {
3416 builder.add_lhs(x);
3417 }
3418 builder.finish()
3419 }
3420
3421 #[inline]
3422 pub fn lhs(&self) -> Option<Expr<'a>> {
3423 unsafe {
3427 self._tab
3428 .get::<::flatbuffers::ForwardsUOffset<Expr>>(AndExpr::VT_LHS, None)
3429 }
3430 }
3431 #[inline]
3432 pub fn rhs(&self) -> Option<Expr<'a>> {
3433 unsafe {
3437 self._tab
3438 .get::<::flatbuffers::ForwardsUOffset<Expr>>(AndExpr::VT_RHS, None)
3439 }
3440 }
3441 }
3442
3443 impl ::flatbuffers::Verifiable for AndExpr<'_> {
3444 #[inline]
3445 fn run_verifier(
3446 v: &mut ::flatbuffers::Verifier,
3447 pos: usize,
3448 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3449 v.visit_table(pos)?
3450 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("lhs", Self::VT_LHS, false)?
3451 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("rhs", Self::VT_RHS, false)?
3452 .finish();
3453 Ok(())
3454 }
3455 }
3456 pub struct AndExprArgs<'a> {
3457 pub lhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3458 pub rhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3459 }
3460 impl<'a> Default for AndExprArgs<'a> {
3461 #[inline]
3462 fn default() -> Self {
3463 AndExprArgs {
3464 lhs: None,
3465 rhs: None,
3466 }
3467 }
3468 }
3469
3470 pub struct AndExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3471 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3472 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3473 }
3474 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> AndExprBuilder<'a, 'b, A> {
3475 #[inline]
3476 pub fn add_lhs(&mut self, lhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3477 self.fbb_
3478 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(AndExpr::VT_LHS, lhs);
3479 }
3480 #[inline]
3481 pub fn add_rhs(&mut self, rhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3482 self.fbb_
3483 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(AndExpr::VT_RHS, rhs);
3484 }
3485 #[inline]
3486 pub fn new(
3487 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3488 ) -> AndExprBuilder<'a, 'b, A> {
3489 let start = _fbb.start_table();
3490 AndExprBuilder {
3491 fbb_: _fbb,
3492 start_: start,
3493 }
3494 }
3495 #[inline]
3496 pub fn finish(self) -> ::flatbuffers::WIPOffset<AndExpr<'a>> {
3497 let o = self.fbb_.end_table(self.start_);
3498 ::flatbuffers::WIPOffset::new(o.value())
3499 }
3500 }
3501
3502 impl ::core::fmt::Debug for AndExpr<'_> {
3503 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3504 let mut ds = f.debug_struct("AndExpr");
3505 ds.field("lhs", &self.lhs());
3506 ds.field("rhs", &self.rhs());
3507 ds.finish()
3508 }
3509 }
3510 pub enum OrExprOffset {}
3511 #[derive(Copy, Clone, PartialEq)]
3512
3513 pub struct OrExpr<'a> {
3514 pub _tab: ::flatbuffers::Table<'a>,
3515 }
3516
3517 impl<'a> ::flatbuffers::Follow<'a> for OrExpr<'a> {
3518 type Inner = OrExpr<'a>;
3519 #[inline]
3520 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3521 Self {
3522 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3523 }
3524 }
3525 }
3526
3527 impl<'a> OrExpr<'a> {
3528 pub const VT_LHS: ::flatbuffers::VOffsetT = 4;
3529 pub const VT_RHS: ::flatbuffers::VOffsetT = 6;
3530
3531 #[inline]
3532 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3533 OrExpr { _tab: table }
3534 }
3535 #[allow(unused_mut)]
3536 pub fn create<
3537 'bldr: 'args,
3538 'args: 'mut_bldr,
3539 'mut_bldr,
3540 A: ::flatbuffers::Allocator + 'bldr,
3541 >(
3542 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3543 args: &'args OrExprArgs<'args>,
3544 ) -> ::flatbuffers::WIPOffset<OrExpr<'bldr>> {
3545 let mut builder = OrExprBuilder::new(_fbb);
3546 if let Some(x) = args.rhs {
3547 builder.add_rhs(x);
3548 }
3549 if let Some(x) = args.lhs {
3550 builder.add_lhs(x);
3551 }
3552 builder.finish()
3553 }
3554
3555 #[inline]
3556 pub fn lhs(&self) -> Option<Expr<'a>> {
3557 unsafe {
3561 self._tab
3562 .get::<::flatbuffers::ForwardsUOffset<Expr>>(OrExpr::VT_LHS, None)
3563 }
3564 }
3565 #[inline]
3566 pub fn rhs(&self) -> Option<Expr<'a>> {
3567 unsafe {
3571 self._tab
3572 .get::<::flatbuffers::ForwardsUOffset<Expr>>(OrExpr::VT_RHS, None)
3573 }
3574 }
3575 }
3576
3577 impl ::flatbuffers::Verifiable for OrExpr<'_> {
3578 #[inline]
3579 fn run_verifier(
3580 v: &mut ::flatbuffers::Verifier,
3581 pos: usize,
3582 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3583 v.visit_table(pos)?
3584 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("lhs", Self::VT_LHS, false)?
3585 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("rhs", Self::VT_RHS, false)?
3586 .finish();
3587 Ok(())
3588 }
3589 }
3590 pub struct OrExprArgs<'a> {
3591 pub lhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3592 pub rhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3593 }
3594 impl<'a> Default for OrExprArgs<'a> {
3595 #[inline]
3596 fn default() -> Self {
3597 OrExprArgs {
3598 lhs: None,
3599 rhs: None,
3600 }
3601 }
3602 }
3603
3604 pub struct OrExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3605 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3606 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3607 }
3608 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> OrExprBuilder<'a, 'b, A> {
3609 #[inline]
3610 pub fn add_lhs(&mut self, lhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3611 self.fbb_
3612 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(OrExpr::VT_LHS, lhs);
3613 }
3614 #[inline]
3615 pub fn add_rhs(&mut self, rhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
3616 self.fbb_
3617 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(OrExpr::VT_RHS, rhs);
3618 }
3619 #[inline]
3620 pub fn new(
3621 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3622 ) -> OrExprBuilder<'a, 'b, A> {
3623 let start = _fbb.start_table();
3624 OrExprBuilder {
3625 fbb_: _fbb,
3626 start_: start,
3627 }
3628 }
3629 #[inline]
3630 pub fn finish(self) -> ::flatbuffers::WIPOffset<OrExpr<'a>> {
3631 let o = self.fbb_.end_table(self.start_);
3632 ::flatbuffers::WIPOffset::new(o.value())
3633 }
3634 }
3635
3636 impl ::core::fmt::Debug for OrExpr<'_> {
3637 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3638 let mut ds = f.debug_struct("OrExpr");
3639 ds.field("lhs", &self.lhs());
3640 ds.field("rhs", &self.rhs());
3641 ds.finish()
3642 }
3643 }
3644 pub enum NotExprOffset {}
3645 #[derive(Copy, Clone, PartialEq)]
3646
3647 pub struct NotExpr<'a> {
3648 pub _tab: ::flatbuffers::Table<'a>,
3649 }
3650
3651 impl<'a> ::flatbuffers::Follow<'a> for NotExpr<'a> {
3652 type Inner = NotExpr<'a>;
3653 #[inline]
3654 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3655 Self {
3656 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3657 }
3658 }
3659 }
3660
3661 impl<'a> NotExpr<'a> {
3662 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
3663
3664 #[inline]
3665 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3666 NotExpr { _tab: table }
3667 }
3668 #[allow(unused_mut)]
3669 pub fn create<
3670 'bldr: 'args,
3671 'args: 'mut_bldr,
3672 'mut_bldr,
3673 A: ::flatbuffers::Allocator + 'bldr,
3674 >(
3675 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3676 args: &'args NotExprArgs<'args>,
3677 ) -> ::flatbuffers::WIPOffset<NotExpr<'bldr>> {
3678 let mut builder = NotExprBuilder::new(_fbb);
3679 if let Some(x) = args.expr {
3680 builder.add_expr(x);
3681 }
3682 builder.finish()
3683 }
3684
3685 #[inline]
3686 pub fn expr(&self) -> Option<Expr<'a>> {
3687 unsafe {
3691 self._tab
3692 .get::<::flatbuffers::ForwardsUOffset<Expr>>(NotExpr::VT_EXPR, None)
3693 }
3694 }
3695 }
3696
3697 impl ::flatbuffers::Verifiable for NotExpr<'_> {
3698 #[inline]
3699 fn run_verifier(
3700 v: &mut ::flatbuffers::Verifier,
3701 pos: usize,
3702 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3703 v.visit_table(pos)?
3704 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
3705 .finish();
3706 Ok(())
3707 }
3708 }
3709 pub struct NotExprArgs<'a> {
3710 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3711 }
3712 impl<'a> Default for NotExprArgs<'a> {
3713 #[inline]
3714 fn default() -> Self {
3715 NotExprArgs { expr: None }
3716 }
3717 }
3718
3719 pub struct NotExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3720 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3721 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3722 }
3723 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> NotExprBuilder<'a, 'b, A> {
3724 #[inline]
3725 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
3726 self.fbb_
3727 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(NotExpr::VT_EXPR, expr);
3728 }
3729 #[inline]
3730 pub fn new(
3731 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3732 ) -> NotExprBuilder<'a, 'b, A> {
3733 let start = _fbb.start_table();
3734 NotExprBuilder {
3735 fbb_: _fbb,
3736 start_: start,
3737 }
3738 }
3739 #[inline]
3740 pub fn finish(self) -> ::flatbuffers::WIPOffset<NotExpr<'a>> {
3741 let o = self.fbb_.end_table(self.start_);
3742 ::flatbuffers::WIPOffset::new(o.value())
3743 }
3744 }
3745
3746 impl ::core::fmt::Debug for NotExpr<'_> {
3747 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3748 let mut ds = f.debug_struct("NotExpr");
3749 ds.field("expr", &self.expr());
3750 ds.finish()
3751 }
3752 }
3753 pub enum IsNullExprOffset {}
3754 #[derive(Copy, Clone, PartialEq)]
3755
3756 pub struct IsNullExpr<'a> {
3757 pub _tab: ::flatbuffers::Table<'a>,
3758 }
3759
3760 impl<'a> ::flatbuffers::Follow<'a> for IsNullExpr<'a> {
3761 type Inner = IsNullExpr<'a>;
3762 #[inline]
3763 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3764 Self {
3765 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3766 }
3767 }
3768 }
3769
3770 impl<'a> IsNullExpr<'a> {
3771 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
3772
3773 #[inline]
3774 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3775 IsNullExpr { _tab: table }
3776 }
3777 #[allow(unused_mut)]
3778 pub fn create<
3779 'bldr: 'args,
3780 'args: 'mut_bldr,
3781 'mut_bldr,
3782 A: ::flatbuffers::Allocator + 'bldr,
3783 >(
3784 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3785 args: &'args IsNullExprArgs<'args>,
3786 ) -> ::flatbuffers::WIPOffset<IsNullExpr<'bldr>> {
3787 let mut builder = IsNullExprBuilder::new(_fbb);
3788 if let Some(x) = args.expr {
3789 builder.add_expr(x);
3790 }
3791 builder.finish()
3792 }
3793
3794 #[inline]
3795 pub fn expr(&self) -> Option<Expr<'a>> {
3796 unsafe {
3800 self._tab
3801 .get::<::flatbuffers::ForwardsUOffset<Expr>>(IsNullExpr::VT_EXPR, None)
3802 }
3803 }
3804 }
3805
3806 impl ::flatbuffers::Verifiable for IsNullExpr<'_> {
3807 #[inline]
3808 fn run_verifier(
3809 v: &mut ::flatbuffers::Verifier,
3810 pos: usize,
3811 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3812 v.visit_table(pos)?
3813 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
3814 .finish();
3815 Ok(())
3816 }
3817 }
3818 pub struct IsNullExprArgs<'a> {
3819 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3820 }
3821 impl<'a> Default for IsNullExprArgs<'a> {
3822 #[inline]
3823 fn default() -> Self {
3824 IsNullExprArgs { expr: None }
3825 }
3826 }
3827
3828 pub struct IsNullExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3829 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3830 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3831 }
3832 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> IsNullExprBuilder<'a, 'b, A> {
3833 #[inline]
3834 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
3835 self.fbb_
3836 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(IsNullExpr::VT_EXPR, expr);
3837 }
3838 #[inline]
3839 pub fn new(
3840 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3841 ) -> IsNullExprBuilder<'a, 'b, A> {
3842 let start = _fbb.start_table();
3843 IsNullExprBuilder {
3844 fbb_: _fbb,
3845 start_: start,
3846 }
3847 }
3848 #[inline]
3849 pub fn finish(self) -> ::flatbuffers::WIPOffset<IsNullExpr<'a>> {
3850 let o = self.fbb_.end_table(self.start_);
3851 ::flatbuffers::WIPOffset::new(o.value())
3852 }
3853 }
3854
3855 impl ::core::fmt::Debug for IsNullExpr<'_> {
3856 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3857 let mut ds = f.debug_struct("IsNullExpr");
3858 ds.field("expr", &self.expr());
3859 ds.finish()
3860 }
3861 }
3862 pub enum IsNotNullExprOffset {}
3863 #[derive(Copy, Clone, PartialEq)]
3864
3865 pub struct IsNotNullExpr<'a> {
3866 pub _tab: ::flatbuffers::Table<'a>,
3867 }
3868
3869 impl<'a> ::flatbuffers::Follow<'a> for IsNotNullExpr<'a> {
3870 type Inner = IsNotNullExpr<'a>;
3871 #[inline]
3872 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3873 Self {
3874 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3875 }
3876 }
3877 }
3878
3879 impl<'a> IsNotNullExpr<'a> {
3880 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
3881
3882 #[inline]
3883 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3884 IsNotNullExpr { _tab: table }
3885 }
3886 #[allow(unused_mut)]
3887 pub fn create<
3888 'bldr: 'args,
3889 'args: 'mut_bldr,
3890 'mut_bldr,
3891 A: ::flatbuffers::Allocator + 'bldr,
3892 >(
3893 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
3894 args: &'args IsNotNullExprArgs<'args>,
3895 ) -> ::flatbuffers::WIPOffset<IsNotNullExpr<'bldr>> {
3896 let mut builder = IsNotNullExprBuilder::new(_fbb);
3897 if let Some(x) = args.expr {
3898 builder.add_expr(x);
3899 }
3900 builder.finish()
3901 }
3902
3903 #[inline]
3904 pub fn expr(&self) -> Option<Expr<'a>> {
3905 unsafe {
3909 self._tab
3910 .get::<::flatbuffers::ForwardsUOffset<Expr>>(IsNotNullExpr::VT_EXPR, None)
3911 }
3912 }
3913 }
3914
3915 impl ::flatbuffers::Verifiable for IsNotNullExpr<'_> {
3916 #[inline]
3917 fn run_verifier(
3918 v: &mut ::flatbuffers::Verifier,
3919 pos: usize,
3920 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
3921 v.visit_table(pos)?
3922 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
3923 .finish();
3924 Ok(())
3925 }
3926 }
3927 pub struct IsNotNullExprArgs<'a> {
3928 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
3929 }
3930 impl<'a> Default for IsNotNullExprArgs<'a> {
3931 #[inline]
3932 fn default() -> Self {
3933 IsNotNullExprArgs { expr: None }
3934 }
3935 }
3936
3937 pub struct IsNotNullExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
3938 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3939 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
3940 }
3941 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> IsNotNullExprBuilder<'a, 'b, A> {
3942 #[inline]
3943 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
3944 self.fbb_
3945 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(IsNotNullExpr::VT_EXPR, expr);
3946 }
3947 #[inline]
3948 pub fn new(
3949 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
3950 ) -> IsNotNullExprBuilder<'a, 'b, A> {
3951 let start = _fbb.start_table();
3952 IsNotNullExprBuilder {
3953 fbb_: _fbb,
3954 start_: start,
3955 }
3956 }
3957 #[inline]
3958 pub fn finish(self) -> ::flatbuffers::WIPOffset<IsNotNullExpr<'a>> {
3959 let o = self.fbb_.end_table(self.start_);
3960 ::flatbuffers::WIPOffset::new(o.value())
3961 }
3962 }
3963
3964 impl ::core::fmt::Debug for IsNotNullExpr<'_> {
3965 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3966 let mut ds = f.debug_struct("IsNotNullExpr");
3967 ds.field("expr", &self.expr());
3968 ds.finish()
3969 }
3970 }
3971 pub enum StartsWithExprOffset {}
3972 #[derive(Copy, Clone, PartialEq)]
3973
3974 pub struct StartsWithExpr<'a> {
3975 pub _tab: ::flatbuffers::Table<'a>,
3976 }
3977
3978 impl<'a> ::flatbuffers::Follow<'a> for StartsWithExpr<'a> {
3979 type Inner = StartsWithExpr<'a>;
3980 #[inline]
3981 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
3982 Self {
3983 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
3984 }
3985 }
3986 }
3987
3988 impl<'a> StartsWithExpr<'a> {
3989 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
3990 pub const VT_PATTERN: ::flatbuffers::VOffsetT = 6;
3991
3992 #[inline]
3993 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
3994 StartsWithExpr { _tab: table }
3995 }
3996 #[allow(unused_mut)]
3997 pub fn create<
3998 'bldr: 'args,
3999 'args: 'mut_bldr,
4000 'mut_bldr,
4001 A: ::flatbuffers::Allocator + 'bldr,
4002 >(
4003 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4004 args: &'args StartsWithExprArgs<'args>,
4005 ) -> ::flatbuffers::WIPOffset<StartsWithExpr<'bldr>> {
4006 let mut builder = StartsWithExprBuilder::new(_fbb);
4007 if let Some(x) = args.pattern {
4008 builder.add_pattern(x);
4009 }
4010 if let Some(x) = args.expr {
4011 builder.add_expr(x);
4012 }
4013 builder.finish()
4014 }
4015
4016 #[inline]
4017 pub fn expr(&self) -> Option<Expr<'a>> {
4018 unsafe {
4022 self._tab
4023 .get::<::flatbuffers::ForwardsUOffset<Expr>>(StartsWithExpr::VT_EXPR, None)
4024 }
4025 }
4026 #[inline]
4027 pub fn pattern(&self) -> Option<&'a str> {
4028 unsafe {
4032 self._tab
4033 .get::<::flatbuffers::ForwardsUOffset<&str>>(StartsWithExpr::VT_PATTERN, None)
4034 }
4035 }
4036 }
4037
4038 impl ::flatbuffers::Verifiable for StartsWithExpr<'_> {
4039 #[inline]
4040 fn run_verifier(
4041 v: &mut ::flatbuffers::Verifier,
4042 pos: usize,
4043 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4044 v.visit_table(pos)?
4045 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
4046 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
4047 "pattern",
4048 Self::VT_PATTERN,
4049 false,
4050 )?
4051 .finish();
4052 Ok(())
4053 }
4054 }
4055 pub struct StartsWithExprArgs<'a> {
4056 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4057 pub pattern: Option<::flatbuffers::WIPOffset<&'a str>>,
4058 }
4059 impl<'a> Default for StartsWithExprArgs<'a> {
4060 #[inline]
4061 fn default() -> Self {
4062 StartsWithExprArgs {
4063 expr: None,
4064 pattern: None,
4065 }
4066 }
4067 }
4068
4069 pub struct StartsWithExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4070 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4071 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4072 }
4073 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> StartsWithExprBuilder<'a, 'b, A> {
4074 #[inline]
4075 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
4076 self.fbb_
4077 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(StartsWithExpr::VT_EXPR, expr);
4078 }
4079 #[inline]
4080 pub fn add_pattern(&mut self, pattern: ::flatbuffers::WIPOffset<&'b str>) {
4081 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
4082 StartsWithExpr::VT_PATTERN,
4083 pattern,
4084 );
4085 }
4086 #[inline]
4087 pub fn new(
4088 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4089 ) -> StartsWithExprBuilder<'a, 'b, A> {
4090 let start = _fbb.start_table();
4091 StartsWithExprBuilder {
4092 fbb_: _fbb,
4093 start_: start,
4094 }
4095 }
4096 #[inline]
4097 pub fn finish(self) -> ::flatbuffers::WIPOffset<StartsWithExpr<'a>> {
4098 let o = self.fbb_.end_table(self.start_);
4099 ::flatbuffers::WIPOffset::new(o.value())
4100 }
4101 }
4102
4103 impl ::core::fmt::Debug for StartsWithExpr<'_> {
4104 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4105 let mut ds = f.debug_struct("StartsWithExpr");
4106 ds.field("expr", &self.expr());
4107 ds.field("pattern", &self.pattern());
4108 ds.finish()
4109 }
4110 }
4111 pub enum EndsWithExprOffset {}
4112 #[derive(Copy, Clone, PartialEq)]
4113
4114 pub struct EndsWithExpr<'a> {
4115 pub _tab: ::flatbuffers::Table<'a>,
4116 }
4117
4118 impl<'a> ::flatbuffers::Follow<'a> for EndsWithExpr<'a> {
4119 type Inner = EndsWithExpr<'a>;
4120 #[inline]
4121 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4122 Self {
4123 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4124 }
4125 }
4126 }
4127
4128 impl<'a> EndsWithExpr<'a> {
4129 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
4130 pub const VT_PATTERN: ::flatbuffers::VOffsetT = 6;
4131
4132 #[inline]
4133 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4134 EndsWithExpr { _tab: table }
4135 }
4136 #[allow(unused_mut)]
4137 pub fn create<
4138 'bldr: 'args,
4139 'args: 'mut_bldr,
4140 'mut_bldr,
4141 A: ::flatbuffers::Allocator + 'bldr,
4142 >(
4143 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4144 args: &'args EndsWithExprArgs<'args>,
4145 ) -> ::flatbuffers::WIPOffset<EndsWithExpr<'bldr>> {
4146 let mut builder = EndsWithExprBuilder::new(_fbb);
4147 if let Some(x) = args.pattern {
4148 builder.add_pattern(x);
4149 }
4150 if let Some(x) = args.expr {
4151 builder.add_expr(x);
4152 }
4153 builder.finish()
4154 }
4155
4156 #[inline]
4157 pub fn expr(&self) -> Option<Expr<'a>> {
4158 unsafe {
4162 self._tab
4163 .get::<::flatbuffers::ForwardsUOffset<Expr>>(EndsWithExpr::VT_EXPR, None)
4164 }
4165 }
4166 #[inline]
4167 pub fn pattern(&self) -> Option<&'a str> {
4168 unsafe {
4172 self._tab
4173 .get::<::flatbuffers::ForwardsUOffset<&str>>(EndsWithExpr::VT_PATTERN, None)
4174 }
4175 }
4176 }
4177
4178 impl ::flatbuffers::Verifiable for EndsWithExpr<'_> {
4179 #[inline]
4180 fn run_verifier(
4181 v: &mut ::flatbuffers::Verifier,
4182 pos: usize,
4183 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4184 v.visit_table(pos)?
4185 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
4186 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
4187 "pattern",
4188 Self::VT_PATTERN,
4189 false,
4190 )?
4191 .finish();
4192 Ok(())
4193 }
4194 }
4195 pub struct EndsWithExprArgs<'a> {
4196 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4197 pub pattern: Option<::flatbuffers::WIPOffset<&'a str>>,
4198 }
4199 impl<'a> Default for EndsWithExprArgs<'a> {
4200 #[inline]
4201 fn default() -> Self {
4202 EndsWithExprArgs {
4203 expr: None,
4204 pattern: None,
4205 }
4206 }
4207 }
4208
4209 pub struct EndsWithExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4210 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4211 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4212 }
4213 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> EndsWithExprBuilder<'a, 'b, A> {
4214 #[inline]
4215 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
4216 self.fbb_
4217 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(EndsWithExpr::VT_EXPR, expr);
4218 }
4219 #[inline]
4220 pub fn add_pattern(&mut self, pattern: ::flatbuffers::WIPOffset<&'b str>) {
4221 self.fbb_
4222 .push_slot_always::<::flatbuffers::WIPOffset<_>>(EndsWithExpr::VT_PATTERN, pattern);
4223 }
4224 #[inline]
4225 pub fn new(
4226 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4227 ) -> EndsWithExprBuilder<'a, 'b, A> {
4228 let start = _fbb.start_table();
4229 EndsWithExprBuilder {
4230 fbb_: _fbb,
4231 start_: start,
4232 }
4233 }
4234 #[inline]
4235 pub fn finish(self) -> ::flatbuffers::WIPOffset<EndsWithExpr<'a>> {
4236 let o = self.fbb_.end_table(self.start_);
4237 ::flatbuffers::WIPOffset::new(o.value())
4238 }
4239 }
4240
4241 impl ::core::fmt::Debug for EndsWithExpr<'_> {
4242 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4243 let mut ds = f.debug_struct("EndsWithExpr");
4244 ds.field("expr", &self.expr());
4245 ds.field("pattern", &self.pattern());
4246 ds.finish()
4247 }
4248 }
4249 pub enum ContainsExprOffset {}
4250 #[derive(Copy, Clone, PartialEq)]
4251
4252 pub struct ContainsExpr<'a> {
4253 pub _tab: ::flatbuffers::Table<'a>,
4254 }
4255
4256 impl<'a> ::flatbuffers::Follow<'a> for ContainsExpr<'a> {
4257 type Inner = ContainsExpr<'a>;
4258 #[inline]
4259 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4260 Self {
4261 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4262 }
4263 }
4264 }
4265
4266 impl<'a> ContainsExpr<'a> {
4267 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
4268 pub const VT_PATTERN: ::flatbuffers::VOffsetT = 6;
4269
4270 #[inline]
4271 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4272 ContainsExpr { _tab: table }
4273 }
4274 #[allow(unused_mut)]
4275 pub fn create<
4276 'bldr: 'args,
4277 'args: 'mut_bldr,
4278 'mut_bldr,
4279 A: ::flatbuffers::Allocator + 'bldr,
4280 >(
4281 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4282 args: &'args ContainsExprArgs<'args>,
4283 ) -> ::flatbuffers::WIPOffset<ContainsExpr<'bldr>> {
4284 let mut builder = ContainsExprBuilder::new(_fbb);
4285 if let Some(x) = args.pattern {
4286 builder.add_pattern(x);
4287 }
4288 if let Some(x) = args.expr {
4289 builder.add_expr(x);
4290 }
4291 builder.finish()
4292 }
4293
4294 #[inline]
4295 pub fn expr(&self) -> Option<Expr<'a>> {
4296 unsafe {
4300 self._tab
4301 .get::<::flatbuffers::ForwardsUOffset<Expr>>(ContainsExpr::VT_EXPR, None)
4302 }
4303 }
4304 #[inline]
4305 pub fn pattern(&self) -> Option<&'a str> {
4306 unsafe {
4310 self._tab
4311 .get::<::flatbuffers::ForwardsUOffset<&str>>(ContainsExpr::VT_PATTERN, None)
4312 }
4313 }
4314 }
4315
4316 impl ::flatbuffers::Verifiable for ContainsExpr<'_> {
4317 #[inline]
4318 fn run_verifier(
4319 v: &mut ::flatbuffers::Verifier,
4320 pos: usize,
4321 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4322 v.visit_table(pos)?
4323 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
4324 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
4325 "pattern",
4326 Self::VT_PATTERN,
4327 false,
4328 )?
4329 .finish();
4330 Ok(())
4331 }
4332 }
4333 pub struct ContainsExprArgs<'a> {
4334 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4335 pub pattern: Option<::flatbuffers::WIPOffset<&'a str>>,
4336 }
4337 impl<'a> Default for ContainsExprArgs<'a> {
4338 #[inline]
4339 fn default() -> Self {
4340 ContainsExprArgs {
4341 expr: None,
4342 pattern: None,
4343 }
4344 }
4345 }
4346
4347 pub struct ContainsExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4348 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4349 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4350 }
4351 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ContainsExprBuilder<'a, 'b, A> {
4352 #[inline]
4353 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
4354 self.fbb_
4355 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(ContainsExpr::VT_EXPR, expr);
4356 }
4357 #[inline]
4358 pub fn add_pattern(&mut self, pattern: ::flatbuffers::WIPOffset<&'b str>) {
4359 self.fbb_
4360 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ContainsExpr::VT_PATTERN, pattern);
4361 }
4362 #[inline]
4363 pub fn new(
4364 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4365 ) -> ContainsExprBuilder<'a, 'b, A> {
4366 let start = _fbb.start_table();
4367 ContainsExprBuilder {
4368 fbb_: _fbb,
4369 start_: start,
4370 }
4371 }
4372 #[inline]
4373 pub fn finish(self) -> ::flatbuffers::WIPOffset<ContainsExpr<'a>> {
4374 let o = self.fbb_.end_table(self.start_);
4375 ::flatbuffers::WIPOffset::new(o.value())
4376 }
4377 }
4378
4379 impl ::core::fmt::Debug for ContainsExpr<'_> {
4380 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4381 let mut ds = f.debug_struct("ContainsExpr");
4382 ds.field("expr", &self.expr());
4383 ds.field("pattern", &self.pattern());
4384 ds.finish()
4385 }
4386 }
4387 pub enum InExprOffset {}
4388 #[derive(Copy, Clone, PartialEq)]
4389
4390 pub struct InExpr<'a> {
4391 pub _tab: ::flatbuffers::Table<'a>,
4392 }
4393
4394 impl<'a> ::flatbuffers::Follow<'a> for InExpr<'a> {
4395 type Inner = InExpr<'a>;
4396 #[inline]
4397 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4398 Self {
4399 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4400 }
4401 }
4402 }
4403
4404 impl<'a> InExpr<'a> {
4405 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
4406 pub const VT_ITEMS: ::flatbuffers::VOffsetT = 6;
4407
4408 #[inline]
4409 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4410 InExpr { _tab: table }
4411 }
4412 #[allow(unused_mut)]
4413 pub fn create<
4414 'bldr: 'args,
4415 'args: 'mut_bldr,
4416 'mut_bldr,
4417 A: ::flatbuffers::Allocator + 'bldr,
4418 >(
4419 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4420 args: &'args InExprArgs<'args>,
4421 ) -> ::flatbuffers::WIPOffset<InExpr<'bldr>> {
4422 let mut builder = InExprBuilder::new(_fbb);
4423 if let Some(x) = args.items {
4424 builder.add_items(x);
4425 }
4426 if let Some(x) = args.expr {
4427 builder.add_expr(x);
4428 }
4429 builder.finish()
4430 }
4431
4432 #[inline]
4433 pub fn expr(&self) -> Option<Expr<'a>> {
4434 unsafe {
4438 self._tab
4439 .get::<::flatbuffers::ForwardsUOffset<Expr>>(InExpr::VT_EXPR, None)
4440 }
4441 }
4442 #[inline]
4443 pub fn items(
4444 &self,
4445 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>> {
4446 unsafe {
4450 self._tab.get::<::flatbuffers::ForwardsUOffset<
4451 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr>>,
4452 >>(InExpr::VT_ITEMS, None)
4453 }
4454 }
4455 }
4456
4457 impl ::flatbuffers::Verifiable for InExpr<'_> {
4458 #[inline]
4459 fn run_verifier(
4460 v: &mut ::flatbuffers::Verifier,
4461 pos: usize,
4462 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4463 v.visit_table(pos)?
4464 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
4465 .visit_field::<::flatbuffers::ForwardsUOffset<
4466 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<Expr>>,
4467 >>("items", Self::VT_ITEMS, false)?
4468 .finish();
4469 Ok(())
4470 }
4471 }
4472 pub struct InExprArgs<'a> {
4473 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4474 pub items: Option<
4475 ::flatbuffers::WIPOffset<
4476 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>,
4477 >,
4478 >,
4479 }
4480 impl<'a> Default for InExprArgs<'a> {
4481 #[inline]
4482 fn default() -> Self {
4483 InExprArgs {
4484 expr: None,
4485 items: None,
4486 }
4487 }
4488 }
4489
4490 pub struct InExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4491 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4492 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4493 }
4494 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> InExprBuilder<'a, 'b, A> {
4495 #[inline]
4496 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
4497 self.fbb_
4498 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(InExpr::VT_EXPR, expr);
4499 }
4500 #[inline]
4501 pub fn add_items(
4502 &mut self,
4503 items: ::flatbuffers::WIPOffset<
4504 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<Expr<'b>>>,
4505 >,
4506 ) {
4507 self.fbb_
4508 .push_slot_always::<::flatbuffers::WIPOffset<_>>(InExpr::VT_ITEMS, items);
4509 }
4510 #[inline]
4511 pub fn new(
4512 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4513 ) -> InExprBuilder<'a, 'b, A> {
4514 let start = _fbb.start_table();
4515 InExprBuilder {
4516 fbb_: _fbb,
4517 start_: start,
4518 }
4519 }
4520 #[inline]
4521 pub fn finish(self) -> ::flatbuffers::WIPOffset<InExpr<'a>> {
4522 let o = self.fbb_.end_table(self.start_);
4523 ::flatbuffers::WIPOffset::new(o.value())
4524 }
4525 }
4526
4527 impl ::core::fmt::Debug for InExpr<'_> {
4528 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4529 let mut ds = f.debug_struct("InExpr");
4530 ds.field("expr", &self.expr());
4531 ds.field("items", &self.items());
4532 ds.finish()
4533 }
4534 }
4535 pub enum ListLiteralExprOffset {}
4536 #[derive(Copy, Clone, PartialEq)]
4537
4538 pub struct ListLiteralExpr<'a> {
4539 pub _tab: ::flatbuffers::Table<'a>,
4540 }
4541
4542 impl<'a> ::flatbuffers::Follow<'a> for ListLiteralExpr<'a> {
4543 type Inner = ListLiteralExpr<'a>;
4544 #[inline]
4545 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4546 Self {
4547 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4548 }
4549 }
4550 }
4551
4552 impl<'a> ListLiteralExpr<'a> {
4553 pub const VT_ITEMS: ::flatbuffers::VOffsetT = 4;
4554
4555 #[inline]
4556 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4557 ListLiteralExpr { _tab: table }
4558 }
4559 #[allow(unused_mut)]
4560 pub fn create<
4561 'bldr: 'args,
4562 'args: 'mut_bldr,
4563 'mut_bldr,
4564 A: ::flatbuffers::Allocator + 'bldr,
4565 >(
4566 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4567 args: &'args ListLiteralExprArgs<'args>,
4568 ) -> ::flatbuffers::WIPOffset<ListLiteralExpr<'bldr>> {
4569 let mut builder = ListLiteralExprBuilder::new(_fbb);
4570 if let Some(x) = args.items {
4571 builder.add_items(x);
4572 }
4573 builder.finish()
4574 }
4575
4576 #[inline]
4577 pub fn items(
4578 &self,
4579 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>> {
4580 unsafe {
4584 self._tab.get::<::flatbuffers::ForwardsUOffset<
4585 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr>>,
4586 >>(ListLiteralExpr::VT_ITEMS, None)
4587 }
4588 }
4589 }
4590
4591 impl ::flatbuffers::Verifiable for ListLiteralExpr<'_> {
4592 #[inline]
4593 fn run_verifier(
4594 v: &mut ::flatbuffers::Verifier,
4595 pos: usize,
4596 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4597 v.visit_table(pos)?
4598 .visit_field::<::flatbuffers::ForwardsUOffset<
4599 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<Expr>>,
4600 >>("items", Self::VT_ITEMS, false)?
4601 .finish();
4602 Ok(())
4603 }
4604 }
4605 pub struct ListLiteralExprArgs<'a> {
4606 pub items: Option<
4607 ::flatbuffers::WIPOffset<
4608 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>,
4609 >,
4610 >,
4611 }
4612 impl<'a> Default for ListLiteralExprArgs<'a> {
4613 #[inline]
4614 fn default() -> Self {
4615 ListLiteralExprArgs { items: None }
4616 }
4617 }
4618
4619 pub struct ListLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4620 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4621 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4622 }
4623 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ListLiteralExprBuilder<'a, 'b, A> {
4624 #[inline]
4625 pub fn add_items(
4626 &mut self,
4627 items: ::flatbuffers::WIPOffset<
4628 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<Expr<'b>>>,
4629 >,
4630 ) {
4631 self.fbb_
4632 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ListLiteralExpr::VT_ITEMS, items);
4633 }
4634 #[inline]
4635 pub fn new(
4636 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4637 ) -> ListLiteralExprBuilder<'a, 'b, A> {
4638 let start = _fbb.start_table();
4639 ListLiteralExprBuilder {
4640 fbb_: _fbb,
4641 start_: start,
4642 }
4643 }
4644 #[inline]
4645 pub fn finish(self) -> ::flatbuffers::WIPOffset<ListLiteralExpr<'a>> {
4646 let o = self.fbb_.end_table(self.start_);
4647 ::flatbuffers::WIPOffset::new(o.value())
4648 }
4649 }
4650
4651 impl ::core::fmt::Debug for ListLiteralExpr<'_> {
4652 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4653 let mut ds = f.debug_struct("ListLiteralExpr");
4654 ds.field("items", &self.items());
4655 ds.finish()
4656 }
4657 }
4658 pub enum MapEntryExprOffset {}
4659 #[derive(Copy, Clone, PartialEq)]
4660
4661 pub struct MapEntryExpr<'a> {
4662 pub _tab: ::flatbuffers::Table<'a>,
4663 }
4664
4665 impl<'a> ::flatbuffers::Follow<'a> for MapEntryExpr<'a> {
4666 type Inner = MapEntryExpr<'a>;
4667 #[inline]
4668 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4669 Self {
4670 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4671 }
4672 }
4673 }
4674
4675 impl<'a> MapEntryExpr<'a> {
4676 pub const VT_KEY: ::flatbuffers::VOffsetT = 4;
4677 pub const VT_VALUE: ::flatbuffers::VOffsetT = 6;
4678
4679 #[inline]
4680 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4681 MapEntryExpr { _tab: table }
4682 }
4683 #[allow(unused_mut)]
4684 pub fn create<
4685 'bldr: 'args,
4686 'args: 'mut_bldr,
4687 'mut_bldr,
4688 A: ::flatbuffers::Allocator + 'bldr,
4689 >(
4690 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4691 args: &'args MapEntryExprArgs<'args>,
4692 ) -> ::flatbuffers::WIPOffset<MapEntryExpr<'bldr>> {
4693 let mut builder = MapEntryExprBuilder::new(_fbb);
4694 if let Some(x) = args.value {
4695 builder.add_value(x);
4696 }
4697 if let Some(x) = args.key {
4698 builder.add_key(x);
4699 }
4700 builder.finish()
4701 }
4702
4703 #[inline]
4704 pub fn key(&self) -> Option<&'a str> {
4705 unsafe {
4709 self._tab
4710 .get::<::flatbuffers::ForwardsUOffset<&str>>(MapEntryExpr::VT_KEY, None)
4711 }
4712 }
4713 #[inline]
4714 pub fn value(&self) -> Option<Expr<'a>> {
4715 unsafe {
4719 self._tab
4720 .get::<::flatbuffers::ForwardsUOffset<Expr>>(MapEntryExpr::VT_VALUE, None)
4721 }
4722 }
4723 }
4724
4725 impl ::flatbuffers::Verifiable for MapEntryExpr<'_> {
4726 #[inline]
4727 fn run_verifier(
4728 v: &mut ::flatbuffers::Verifier,
4729 pos: usize,
4730 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4731 v.visit_table(pos)?
4732 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("key", Self::VT_KEY, false)?
4733 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
4734 "value",
4735 Self::VT_VALUE,
4736 false,
4737 )?
4738 .finish();
4739 Ok(())
4740 }
4741 }
4742 pub struct MapEntryExprArgs<'a> {
4743 pub key: Option<::flatbuffers::WIPOffset<&'a str>>,
4744 pub value: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4745 }
4746 impl<'a> Default for MapEntryExprArgs<'a> {
4747 #[inline]
4748 fn default() -> Self {
4749 MapEntryExprArgs {
4750 key: None,
4751 value: None,
4752 }
4753 }
4754 }
4755
4756 pub struct MapEntryExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4757 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4758 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4759 }
4760 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> MapEntryExprBuilder<'a, 'b, A> {
4761 #[inline]
4762 pub fn add_key(&mut self, key: ::flatbuffers::WIPOffset<&'b str>) {
4763 self.fbb_
4764 .push_slot_always::<::flatbuffers::WIPOffset<_>>(MapEntryExpr::VT_KEY, key);
4765 }
4766 #[inline]
4767 pub fn add_value(&mut self, value: ::flatbuffers::WIPOffset<Expr<'b>>) {
4768 self.fbb_
4769 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(MapEntryExpr::VT_VALUE, value);
4770 }
4771 #[inline]
4772 pub fn new(
4773 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4774 ) -> MapEntryExprBuilder<'a, 'b, A> {
4775 let start = _fbb.start_table();
4776 MapEntryExprBuilder {
4777 fbb_: _fbb,
4778 start_: start,
4779 }
4780 }
4781 #[inline]
4782 pub fn finish(self) -> ::flatbuffers::WIPOffset<MapEntryExpr<'a>> {
4783 let o = self.fbb_.end_table(self.start_);
4784 ::flatbuffers::WIPOffset::new(o.value())
4785 }
4786 }
4787
4788 impl ::core::fmt::Debug for MapEntryExpr<'_> {
4789 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4790 let mut ds = f.debug_struct("MapEntryExpr");
4791 ds.field("key", &self.key());
4792 ds.field("value", &self.value());
4793 ds.finish()
4794 }
4795 }
4796 pub enum MapLiteralExprOffset {}
4797 #[derive(Copy, Clone, PartialEq)]
4798
4799 pub struct MapLiteralExpr<'a> {
4800 pub _tab: ::flatbuffers::Table<'a>,
4801 }
4802
4803 impl<'a> ::flatbuffers::Follow<'a> for MapLiteralExpr<'a> {
4804 type Inner = MapLiteralExpr<'a>;
4805 #[inline]
4806 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4807 Self {
4808 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4809 }
4810 }
4811 }
4812
4813 impl<'a> MapLiteralExpr<'a> {
4814 pub const VT_ENTRIES: ::flatbuffers::VOffsetT = 4;
4815
4816 #[inline]
4817 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4818 MapLiteralExpr { _tab: table }
4819 }
4820 #[allow(unused_mut)]
4821 pub fn create<
4822 'bldr: 'args,
4823 'args: 'mut_bldr,
4824 'mut_bldr,
4825 A: ::flatbuffers::Allocator + 'bldr,
4826 >(
4827 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4828 args: &'args MapLiteralExprArgs<'args>,
4829 ) -> ::flatbuffers::WIPOffset<MapLiteralExpr<'bldr>> {
4830 let mut builder = MapLiteralExprBuilder::new(_fbb);
4831 if let Some(x) = args.entries {
4832 builder.add_entries(x);
4833 }
4834 builder.finish()
4835 }
4836
4837 #[inline]
4838 pub fn entries(
4839 &self,
4840 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<MapEntryExpr<'a>>>>
4841 {
4842 unsafe {
4846 self._tab.get::<::flatbuffers::ForwardsUOffset<
4847 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<MapEntryExpr>>,
4848 >>(MapLiteralExpr::VT_ENTRIES, None)
4849 }
4850 }
4851 }
4852
4853 impl ::flatbuffers::Verifiable for MapLiteralExpr<'_> {
4854 #[inline]
4855 fn run_verifier(
4856 v: &mut ::flatbuffers::Verifier,
4857 pos: usize,
4858 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4859 v.visit_table(pos)?
4860 .visit_field::<::flatbuffers::ForwardsUOffset<
4861 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<MapEntryExpr>>,
4862 >>("entries", Self::VT_ENTRIES, false)?
4863 .finish();
4864 Ok(())
4865 }
4866 }
4867 pub struct MapLiteralExprArgs<'a> {
4868 pub entries: Option<
4869 ::flatbuffers::WIPOffset<
4870 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<MapEntryExpr<'a>>>,
4871 >,
4872 >,
4873 }
4874 impl<'a> Default for MapLiteralExprArgs<'a> {
4875 #[inline]
4876 fn default() -> Self {
4877 MapLiteralExprArgs { entries: None }
4878 }
4879 }
4880
4881 pub struct MapLiteralExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4882 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4883 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
4884 }
4885 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> MapLiteralExprBuilder<'a, 'b, A> {
4886 #[inline]
4887 pub fn add_entries(
4888 &mut self,
4889 entries: ::flatbuffers::WIPOffset<
4890 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<MapEntryExpr<'b>>>,
4891 >,
4892 ) {
4893 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
4894 MapLiteralExpr::VT_ENTRIES,
4895 entries,
4896 );
4897 }
4898 #[inline]
4899 pub fn new(
4900 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4901 ) -> MapLiteralExprBuilder<'a, 'b, A> {
4902 let start = _fbb.start_table();
4903 MapLiteralExprBuilder {
4904 fbb_: _fbb,
4905 start_: start,
4906 }
4907 }
4908 #[inline]
4909 pub fn finish(self) -> ::flatbuffers::WIPOffset<MapLiteralExpr<'a>> {
4910 let o = self.fbb_.end_table(self.start_);
4911 ::flatbuffers::WIPOffset::new(o.value())
4912 }
4913 }
4914
4915 impl ::core::fmt::Debug for MapLiteralExpr<'_> {
4916 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4917 let mut ds = f.debug_struct("MapLiteralExpr");
4918 ds.field("entries", &self.entries());
4919 ds.finish()
4920 }
4921 }
4922 pub enum ExistsExprOffset {}
4923 #[derive(Copy, Clone, PartialEq)]
4924
4925 pub struct ExistsExpr<'a> {
4926 pub _tab: ::flatbuffers::Table<'a>,
4927 }
4928
4929 impl<'a> ::flatbuffers::Follow<'a> for ExistsExpr<'a> {
4930 type Inner = ExistsExpr<'a>;
4931 #[inline]
4932 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
4933 Self {
4934 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
4935 }
4936 }
4937 }
4938
4939 impl<'a> ExistsExpr<'a> {
4940 pub const VT_EXPR: ::flatbuffers::VOffsetT = 4;
4941
4942 #[inline]
4943 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
4944 ExistsExpr { _tab: table }
4945 }
4946 #[allow(unused_mut)]
4947 pub fn create<
4948 'bldr: 'args,
4949 'args: 'mut_bldr,
4950 'mut_bldr,
4951 A: ::flatbuffers::Allocator + 'bldr,
4952 >(
4953 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
4954 args: &'args ExistsExprArgs<'args>,
4955 ) -> ::flatbuffers::WIPOffset<ExistsExpr<'bldr>> {
4956 let mut builder = ExistsExprBuilder::new(_fbb);
4957 if let Some(x) = args.expr {
4958 builder.add_expr(x);
4959 }
4960 builder.finish()
4961 }
4962
4963 #[inline]
4964 pub fn expr(&self) -> Option<Expr<'a>> {
4965 unsafe {
4969 self._tab
4970 .get::<::flatbuffers::ForwardsUOffset<Expr>>(ExistsExpr::VT_EXPR, None)
4971 }
4972 }
4973 }
4974
4975 impl ::flatbuffers::Verifiable for ExistsExpr<'_> {
4976 #[inline]
4977 fn run_verifier(
4978 v: &mut ::flatbuffers::Verifier,
4979 pos: usize,
4980 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
4981 v.visit_table(pos)?
4982 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
4983 .finish();
4984 Ok(())
4985 }
4986 }
4987 pub struct ExistsExprArgs<'a> {
4988 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
4989 }
4990 impl<'a> Default for ExistsExprArgs<'a> {
4991 #[inline]
4992 fn default() -> Self {
4993 ExistsExprArgs { expr: None }
4994 }
4995 }
4996
4997 pub struct ExistsExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
4998 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
4999 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5000 }
5001 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ExistsExprBuilder<'a, 'b, A> {
5002 #[inline]
5003 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
5004 self.fbb_
5005 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(ExistsExpr::VT_EXPR, expr);
5006 }
5007 #[inline]
5008 pub fn new(
5009 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5010 ) -> ExistsExprBuilder<'a, 'b, A> {
5011 let start = _fbb.start_table();
5012 ExistsExprBuilder {
5013 fbb_: _fbb,
5014 start_: start,
5015 }
5016 }
5017 #[inline]
5018 pub fn finish(self) -> ::flatbuffers::WIPOffset<ExistsExpr<'a>> {
5019 let o = self.fbb_.end_table(self.start_);
5020 ::flatbuffers::WIPOffset::new(o.value())
5021 }
5022 }
5023
5024 impl ::core::fmt::Debug for ExistsExpr<'_> {
5025 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5026 let mut ds = f.debug_struct("ExistsExpr");
5027 ds.field("expr", &self.expr());
5028 ds.finish()
5029 }
5030 }
5031 pub enum ListComprehensionExprOffset {}
5032 #[derive(Copy, Clone, PartialEq)]
5033
5034 pub struct ListComprehensionExpr<'a> {
5035 pub _tab: ::flatbuffers::Table<'a>,
5036 }
5037
5038 impl<'a> ::flatbuffers::Follow<'a> for ListComprehensionExpr<'a> {
5039 type Inner = ListComprehensionExpr<'a>;
5040 #[inline]
5041 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5042 Self {
5043 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5044 }
5045 }
5046 }
5047
5048 impl<'a> ListComprehensionExpr<'a> {
5049 pub const VT_LIST: ::flatbuffers::VOffsetT = 4;
5050 pub const VT_VAR: ::flatbuffers::VOffsetT = 6;
5051 pub const VT_PREDICATE: ::flatbuffers::VOffsetT = 8;
5052 pub const VT_MAP: ::flatbuffers::VOffsetT = 10;
5053
5054 #[inline]
5055 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5056 ListComprehensionExpr { _tab: table }
5057 }
5058 #[allow(unused_mut)]
5059 pub fn create<
5060 'bldr: 'args,
5061 'args: 'mut_bldr,
5062 'mut_bldr,
5063 A: ::flatbuffers::Allocator + 'bldr,
5064 >(
5065 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5066 args: &'args ListComprehensionExprArgs<'args>,
5067 ) -> ::flatbuffers::WIPOffset<ListComprehensionExpr<'bldr>> {
5068 let mut builder = ListComprehensionExprBuilder::new(_fbb);
5069 if let Some(x) = args.map {
5070 builder.add_map(x);
5071 }
5072 if let Some(x) = args.predicate {
5073 builder.add_predicate(x);
5074 }
5075 if let Some(x) = args.var {
5076 builder.add_var(x);
5077 }
5078 if let Some(x) = args.list {
5079 builder.add_list(x);
5080 }
5081 builder.finish()
5082 }
5083
5084 #[inline]
5085 pub fn list(&self) -> Option<Expr<'a>> {
5086 unsafe {
5090 self._tab.get::<::flatbuffers::ForwardsUOffset<Expr>>(
5091 ListComprehensionExpr::VT_LIST,
5092 None,
5093 )
5094 }
5095 }
5096 #[inline]
5097 pub fn var(&self) -> Option<&'a str> {
5098 unsafe {
5102 self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(
5103 ListComprehensionExpr::VT_VAR,
5104 None,
5105 )
5106 }
5107 }
5108 #[inline]
5109 pub fn predicate(&self) -> Option<Expr<'a>> {
5110 unsafe {
5114 self._tab.get::<::flatbuffers::ForwardsUOffset<Expr>>(
5115 ListComprehensionExpr::VT_PREDICATE,
5116 None,
5117 )
5118 }
5119 }
5120 #[inline]
5121 pub fn map(&self) -> Option<Expr<'a>> {
5122 unsafe {
5126 self._tab.get::<::flatbuffers::ForwardsUOffset<Expr>>(
5127 ListComprehensionExpr::VT_MAP,
5128 None,
5129 )
5130 }
5131 }
5132 }
5133
5134 impl ::flatbuffers::Verifiable for ListComprehensionExpr<'_> {
5135 #[inline]
5136 fn run_verifier(
5137 v: &mut ::flatbuffers::Verifier,
5138 pos: usize,
5139 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5140 v.visit_table(pos)?
5141 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("list", Self::VT_LIST, false)?
5142 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("var", Self::VT_VAR, false)?
5143 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
5144 "predicate",
5145 Self::VT_PREDICATE,
5146 false,
5147 )?
5148 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("map", Self::VT_MAP, false)?
5149 .finish();
5150 Ok(())
5151 }
5152 }
5153 pub struct ListComprehensionExprArgs<'a> {
5154 pub list: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5155 pub var: Option<::flatbuffers::WIPOffset<&'a str>>,
5156 pub predicate: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5157 pub map: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5158 }
5159 impl<'a> Default for ListComprehensionExprArgs<'a> {
5160 #[inline]
5161 fn default() -> Self {
5162 ListComprehensionExprArgs {
5163 list: None,
5164 var: None,
5165 predicate: None,
5166 map: None,
5167 }
5168 }
5169 }
5170
5171 pub struct ListComprehensionExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5172 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5173 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5174 }
5175 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ListComprehensionExprBuilder<'a, 'b, A> {
5176 #[inline]
5177 pub fn add_list(&mut self, list: ::flatbuffers::WIPOffset<Expr<'b>>) {
5178 self.fbb_
5179 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5180 ListComprehensionExpr::VT_LIST,
5181 list,
5182 );
5183 }
5184 #[inline]
5185 pub fn add_var(&mut self, var: ::flatbuffers::WIPOffset<&'b str>) {
5186 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
5187 ListComprehensionExpr::VT_VAR,
5188 var,
5189 );
5190 }
5191 #[inline]
5192 pub fn add_predicate(&mut self, predicate: ::flatbuffers::WIPOffset<Expr<'b>>) {
5193 self.fbb_
5194 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5195 ListComprehensionExpr::VT_PREDICATE,
5196 predicate,
5197 );
5198 }
5199 #[inline]
5200 pub fn add_map(&mut self, map: ::flatbuffers::WIPOffset<Expr<'b>>) {
5201 self.fbb_
5202 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5203 ListComprehensionExpr::VT_MAP,
5204 map,
5205 );
5206 }
5207 #[inline]
5208 pub fn new(
5209 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5210 ) -> ListComprehensionExprBuilder<'a, 'b, A> {
5211 let start = _fbb.start_table();
5212 ListComprehensionExprBuilder {
5213 fbb_: _fbb,
5214 start_: start,
5215 }
5216 }
5217 #[inline]
5218 pub fn finish(self) -> ::flatbuffers::WIPOffset<ListComprehensionExpr<'a>> {
5219 let o = self.fbb_.end_table(self.start_);
5220 ::flatbuffers::WIPOffset::new(o.value())
5221 }
5222 }
5223
5224 impl ::core::fmt::Debug for ListComprehensionExpr<'_> {
5225 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5226 let mut ds = f.debug_struct("ListComprehensionExpr");
5227 ds.field("list", &self.list());
5228 ds.field("var", &self.var());
5229 ds.field("predicate", &self.predicate());
5230 ds.field("map", &self.map());
5231 ds.finish()
5232 }
5233 }
5234 pub enum AggExprOffset {}
5235 #[derive(Copy, Clone, PartialEq)]
5236
5237 pub struct AggExpr<'a> {
5238 pub _tab: ::flatbuffers::Table<'a>,
5239 }
5240
5241 impl<'a> ::flatbuffers::Follow<'a> for AggExpr<'a> {
5242 type Inner = AggExpr<'a>;
5243 #[inline]
5244 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5245 Self {
5246 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5247 }
5248 }
5249 }
5250
5251 impl<'a> AggExpr<'a> {
5252 pub const VT_FN_: ::flatbuffers::VOffsetT = 4;
5253 pub const VT_EXPR: ::flatbuffers::VOffsetT = 6;
5254
5255 #[inline]
5256 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5257 AggExpr { _tab: table }
5258 }
5259 #[allow(unused_mut)]
5260 pub fn create<
5261 'bldr: 'args,
5262 'args: 'mut_bldr,
5263 'mut_bldr,
5264 A: ::flatbuffers::Allocator + 'bldr,
5265 >(
5266 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5267 args: &'args AggExprArgs<'args>,
5268 ) -> ::flatbuffers::WIPOffset<AggExpr<'bldr>> {
5269 let mut builder = AggExprBuilder::new(_fbb);
5270 if let Some(x) = args.expr {
5271 builder.add_expr(x);
5272 }
5273 builder.add_fn_(args.fn_);
5274 builder.finish()
5275 }
5276
5277 #[inline]
5278 pub fn fn_(&self) -> AggFn {
5279 unsafe {
5283 self._tab
5284 .get::<AggFn>(AggExpr::VT_FN_, Some(AggFn::count))
5285 .unwrap()
5286 }
5287 }
5288 #[inline]
5289 pub fn expr(&self) -> Option<Expr<'a>> {
5290 unsafe {
5294 self._tab
5295 .get::<::flatbuffers::ForwardsUOffset<Expr>>(AggExpr::VT_EXPR, None)
5296 }
5297 }
5298 }
5299
5300 impl ::flatbuffers::Verifiable for AggExpr<'_> {
5301 #[inline]
5302 fn run_verifier(
5303 v: &mut ::flatbuffers::Verifier,
5304 pos: usize,
5305 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5306 v.visit_table(pos)?
5307 .visit_field::<AggFn>("fn_", Self::VT_FN_, false)?
5308 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("expr", Self::VT_EXPR, false)?
5309 .finish();
5310 Ok(())
5311 }
5312 }
5313 pub struct AggExprArgs<'a> {
5314 pub fn_: AggFn,
5315 pub expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5316 }
5317 impl<'a> Default for AggExprArgs<'a> {
5318 #[inline]
5319 fn default() -> Self {
5320 AggExprArgs {
5321 fn_: AggFn::count,
5322 expr: None,
5323 }
5324 }
5325 }
5326
5327 pub struct AggExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5328 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5329 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5330 }
5331 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> AggExprBuilder<'a, 'b, A> {
5332 #[inline]
5333 pub fn add_fn_(&mut self, fn_: AggFn) {
5334 self.fbb_
5335 .push_slot::<AggFn>(AggExpr::VT_FN_, fn_, AggFn::count);
5336 }
5337 #[inline]
5338 pub fn add_expr(&mut self, expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
5339 self.fbb_
5340 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(AggExpr::VT_EXPR, expr);
5341 }
5342 #[inline]
5343 pub fn new(
5344 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5345 ) -> AggExprBuilder<'a, 'b, A> {
5346 let start = _fbb.start_table();
5347 AggExprBuilder {
5348 fbb_: _fbb,
5349 start_: start,
5350 }
5351 }
5352 #[inline]
5353 pub fn finish(self) -> ::flatbuffers::WIPOffset<AggExpr<'a>> {
5354 let o = self.fbb_.end_table(self.start_);
5355 ::flatbuffers::WIPOffset::new(o.value())
5356 }
5357 }
5358
5359 impl ::core::fmt::Debug for AggExpr<'_> {
5360 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5361 let mut ds = f.debug_struct("AggExpr");
5362 ds.field("fn_", &self.fn_());
5363 ds.field("expr", &self.expr());
5364 ds.finish()
5365 }
5366 }
5367 pub enum ArithExprOffset {}
5368 #[derive(Copy, Clone, PartialEq)]
5369
5370 pub struct ArithExpr<'a> {
5371 pub _tab: ::flatbuffers::Table<'a>,
5372 }
5373
5374 impl<'a> ::flatbuffers::Follow<'a> for ArithExpr<'a> {
5375 type Inner = ArithExpr<'a>;
5376 #[inline]
5377 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5378 Self {
5379 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5380 }
5381 }
5382 }
5383
5384 impl<'a> ArithExpr<'a> {
5385 pub const VT_OP: ::flatbuffers::VOffsetT = 4;
5386 pub const VT_LHS: ::flatbuffers::VOffsetT = 6;
5387 pub const VT_RHS: ::flatbuffers::VOffsetT = 8;
5388
5389 #[inline]
5390 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5391 ArithExpr { _tab: table }
5392 }
5393 #[allow(unused_mut)]
5394 pub fn create<
5395 'bldr: 'args,
5396 'args: 'mut_bldr,
5397 'mut_bldr,
5398 A: ::flatbuffers::Allocator + 'bldr,
5399 >(
5400 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5401 args: &'args ArithExprArgs<'args>,
5402 ) -> ::flatbuffers::WIPOffset<ArithExpr<'bldr>> {
5403 let mut builder = ArithExprBuilder::new(_fbb);
5404 if let Some(x) = args.rhs {
5405 builder.add_rhs(x);
5406 }
5407 if let Some(x) = args.lhs {
5408 builder.add_lhs(x);
5409 }
5410 builder.add_op(args.op);
5411 builder.finish()
5412 }
5413
5414 #[inline]
5415 pub fn op(&self) -> ArithOp {
5416 unsafe {
5420 self._tab
5421 .get::<ArithOp>(ArithExpr::VT_OP, Some(ArithOp::add))
5422 .unwrap()
5423 }
5424 }
5425 #[inline]
5426 pub fn lhs(&self) -> Option<Expr<'a>> {
5427 unsafe {
5431 self._tab
5432 .get::<::flatbuffers::ForwardsUOffset<Expr>>(ArithExpr::VT_LHS, None)
5433 }
5434 }
5435 #[inline]
5436 pub fn rhs(&self) -> Option<Expr<'a>> {
5437 unsafe {
5441 self._tab
5442 .get::<::flatbuffers::ForwardsUOffset<Expr>>(ArithExpr::VT_RHS, None)
5443 }
5444 }
5445 }
5446
5447 impl ::flatbuffers::Verifiable for ArithExpr<'_> {
5448 #[inline]
5449 fn run_verifier(
5450 v: &mut ::flatbuffers::Verifier,
5451 pos: usize,
5452 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5453 v.visit_table(pos)?
5454 .visit_field::<ArithOp>("op", Self::VT_OP, false)?
5455 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("lhs", Self::VT_LHS, false)?
5456 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("rhs", Self::VT_RHS, false)?
5457 .finish();
5458 Ok(())
5459 }
5460 }
5461 pub struct ArithExprArgs<'a> {
5462 pub op: ArithOp,
5463 pub lhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5464 pub rhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5465 }
5466 impl<'a> Default for ArithExprArgs<'a> {
5467 #[inline]
5468 fn default() -> Self {
5469 ArithExprArgs {
5470 op: ArithOp::add,
5471 lhs: None,
5472 rhs: None,
5473 }
5474 }
5475 }
5476
5477 pub struct ArithExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5478 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5479 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5480 }
5481 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ArithExprBuilder<'a, 'b, A> {
5482 #[inline]
5483 pub fn add_op(&mut self, op: ArithOp) {
5484 self.fbb_
5485 .push_slot::<ArithOp>(ArithExpr::VT_OP, op, ArithOp::add);
5486 }
5487 #[inline]
5488 pub fn add_lhs(&mut self, lhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
5489 self.fbb_
5490 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(ArithExpr::VT_LHS, lhs);
5491 }
5492 #[inline]
5493 pub fn add_rhs(&mut self, rhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
5494 self.fbb_
5495 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(ArithExpr::VT_RHS, rhs);
5496 }
5497 #[inline]
5498 pub fn new(
5499 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5500 ) -> ArithExprBuilder<'a, 'b, A> {
5501 let start = _fbb.start_table();
5502 ArithExprBuilder {
5503 fbb_: _fbb,
5504 start_: start,
5505 }
5506 }
5507 #[inline]
5508 pub fn finish(self) -> ::flatbuffers::WIPOffset<ArithExpr<'a>> {
5509 let o = self.fbb_.end_table(self.start_);
5510 ::flatbuffers::WIPOffset::new(o.value())
5511 }
5512 }
5513
5514 impl ::core::fmt::Debug for ArithExpr<'_> {
5515 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5516 let mut ds = f.debug_struct("ArithExpr");
5517 ds.field("op", &self.op());
5518 ds.field("lhs", &self.lhs());
5519 ds.field("rhs", &self.rhs());
5520 ds.finish()
5521 }
5522 }
5523 pub enum ParamExprOffset {}
5524 #[derive(Copy, Clone, PartialEq)]
5525
5526 pub struct ParamExpr<'a> {
5527 pub _tab: ::flatbuffers::Table<'a>,
5528 }
5529
5530 impl<'a> ::flatbuffers::Follow<'a> for ParamExpr<'a> {
5531 type Inner = ParamExpr<'a>;
5532 #[inline]
5533 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5534 Self {
5535 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5536 }
5537 }
5538 }
5539
5540 impl<'a> ParamExpr<'a> {
5541 pub const VT_NAME: ::flatbuffers::VOffsetT = 4;
5542 pub const VT_EXPECTED_TYPE: ::flatbuffers::VOffsetT = 6;
5543
5544 #[inline]
5545 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5546 ParamExpr { _tab: table }
5547 }
5548 #[allow(unused_mut)]
5549 pub fn create<
5550 'bldr: 'args,
5551 'args: 'mut_bldr,
5552 'mut_bldr,
5553 A: ::flatbuffers::Allocator + 'bldr,
5554 >(
5555 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5556 args: &'args ParamExprArgs<'args>,
5557 ) -> ::flatbuffers::WIPOffset<ParamExpr<'bldr>> {
5558 let mut builder = ParamExprBuilder::new(_fbb);
5559 if let Some(x) = args.expected_type {
5560 builder.add_expected_type(x);
5561 }
5562 if let Some(x) = args.name {
5563 builder.add_name(x);
5564 }
5565 builder.finish()
5566 }
5567
5568 #[inline]
5569 pub fn name(&self) -> Option<&'a str> {
5570 unsafe {
5574 self._tab
5575 .get::<::flatbuffers::ForwardsUOffset<&str>>(ParamExpr::VT_NAME, None)
5576 }
5577 }
5578 #[inline]
5579 pub fn expected_type(&self) -> Option<&'a str> {
5580 unsafe {
5584 self._tab
5585 .get::<::flatbuffers::ForwardsUOffset<&str>>(ParamExpr::VT_EXPECTED_TYPE, None)
5586 }
5587 }
5588 }
5589
5590 impl ::flatbuffers::Verifiable for ParamExpr<'_> {
5591 #[inline]
5592 fn run_verifier(
5593 v: &mut ::flatbuffers::Verifier,
5594 pos: usize,
5595 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5596 v.visit_table(pos)?
5597 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("name", Self::VT_NAME, false)?
5598 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
5599 "expected_type",
5600 Self::VT_EXPECTED_TYPE,
5601 false,
5602 )?
5603 .finish();
5604 Ok(())
5605 }
5606 }
5607 pub struct ParamExprArgs<'a> {
5608 pub name: Option<::flatbuffers::WIPOffset<&'a str>>,
5609 pub expected_type: Option<::flatbuffers::WIPOffset<&'a str>>,
5610 }
5611 impl<'a> Default for ParamExprArgs<'a> {
5612 #[inline]
5613 fn default() -> Self {
5614 ParamExprArgs {
5615 name: None,
5616 expected_type: None,
5617 }
5618 }
5619 }
5620
5621 pub struct ParamExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5622 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5623 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5624 }
5625 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ParamExprBuilder<'a, 'b, A> {
5626 #[inline]
5627 pub fn add_name(&mut self, name: ::flatbuffers::WIPOffset<&'b str>) {
5628 self.fbb_
5629 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ParamExpr::VT_NAME, name);
5630 }
5631 #[inline]
5632 pub fn add_expected_type(&mut self, expected_type: ::flatbuffers::WIPOffset<&'b str>) {
5633 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
5634 ParamExpr::VT_EXPECTED_TYPE,
5635 expected_type,
5636 );
5637 }
5638 #[inline]
5639 pub fn new(
5640 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5641 ) -> ParamExprBuilder<'a, 'b, A> {
5642 let start = _fbb.start_table();
5643 ParamExprBuilder {
5644 fbb_: _fbb,
5645 start_: start,
5646 }
5647 }
5648 #[inline]
5649 pub fn finish(self) -> ::flatbuffers::WIPOffset<ParamExpr<'a>> {
5650 let o = self.fbb_.end_table(self.start_);
5651 ::flatbuffers::WIPOffset::new(o.value())
5652 }
5653 }
5654
5655 impl ::core::fmt::Debug for ParamExpr<'_> {
5656 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5657 let mut ds = f.debug_struct("ParamExpr");
5658 ds.field("name", &self.name());
5659 ds.field("expected_type", &self.expected_type());
5660 ds.finish()
5661 }
5662 }
5663 pub enum CaseArmOffset {}
5664 #[derive(Copy, Clone, PartialEq)]
5665
5666 pub struct CaseArm<'a> {
5667 pub _tab: ::flatbuffers::Table<'a>,
5668 }
5669
5670 impl<'a> ::flatbuffers::Follow<'a> for CaseArm<'a> {
5671 type Inner = CaseArm<'a>;
5672 #[inline]
5673 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5674 Self {
5675 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5676 }
5677 }
5678 }
5679
5680 impl<'a> CaseArm<'a> {
5681 pub const VT_WHEN_EXPR: ::flatbuffers::VOffsetT = 4;
5682 pub const VT_THEN_EXPR: ::flatbuffers::VOffsetT = 6;
5683
5684 #[inline]
5685 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5686 CaseArm { _tab: table }
5687 }
5688 #[allow(unused_mut)]
5689 pub fn create<
5690 'bldr: 'args,
5691 'args: 'mut_bldr,
5692 'mut_bldr,
5693 A: ::flatbuffers::Allocator + 'bldr,
5694 >(
5695 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5696 args: &'args CaseArmArgs<'args>,
5697 ) -> ::flatbuffers::WIPOffset<CaseArm<'bldr>> {
5698 let mut builder = CaseArmBuilder::new(_fbb);
5699 if let Some(x) = args.then_expr {
5700 builder.add_then_expr(x);
5701 }
5702 if let Some(x) = args.when_expr {
5703 builder.add_when_expr(x);
5704 }
5705 builder.finish()
5706 }
5707
5708 #[inline]
5709 pub fn when_expr(&self) -> Option<Expr<'a>> {
5710 unsafe {
5714 self._tab
5715 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CaseArm::VT_WHEN_EXPR, None)
5716 }
5717 }
5718 #[inline]
5719 pub fn then_expr(&self) -> Option<Expr<'a>> {
5720 unsafe {
5724 self._tab
5725 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CaseArm::VT_THEN_EXPR, None)
5726 }
5727 }
5728 }
5729
5730 impl ::flatbuffers::Verifiable for CaseArm<'_> {
5731 #[inline]
5732 fn run_verifier(
5733 v: &mut ::flatbuffers::Verifier,
5734 pos: usize,
5735 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5736 v.visit_table(pos)?
5737 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
5738 "when_expr",
5739 Self::VT_WHEN_EXPR,
5740 false,
5741 )?
5742 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
5743 "then_expr",
5744 Self::VT_THEN_EXPR,
5745 false,
5746 )?
5747 .finish();
5748 Ok(())
5749 }
5750 }
5751 pub struct CaseArmArgs<'a> {
5752 pub when_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5753 pub then_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5754 }
5755 impl<'a> Default for CaseArmArgs<'a> {
5756 #[inline]
5757 fn default() -> Self {
5758 CaseArmArgs {
5759 when_expr: None,
5760 then_expr: None,
5761 }
5762 }
5763 }
5764
5765 pub struct CaseArmBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5766 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5767 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5768 }
5769 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CaseArmBuilder<'a, 'b, A> {
5770 #[inline]
5771 pub fn add_when_expr(&mut self, when_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
5772 self.fbb_
5773 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5774 CaseArm::VT_WHEN_EXPR,
5775 when_expr,
5776 );
5777 }
5778 #[inline]
5779 pub fn add_then_expr(&mut self, then_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
5780 self.fbb_
5781 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5782 CaseArm::VT_THEN_EXPR,
5783 then_expr,
5784 );
5785 }
5786 #[inline]
5787 pub fn new(
5788 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5789 ) -> CaseArmBuilder<'a, 'b, A> {
5790 let start = _fbb.start_table();
5791 CaseArmBuilder {
5792 fbb_: _fbb,
5793 start_: start,
5794 }
5795 }
5796 #[inline]
5797 pub fn finish(self) -> ::flatbuffers::WIPOffset<CaseArm<'a>> {
5798 let o = self.fbb_.end_table(self.start_);
5799 ::flatbuffers::WIPOffset::new(o.value())
5800 }
5801 }
5802
5803 impl ::core::fmt::Debug for CaseArm<'_> {
5804 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5805 let mut ds = f.debug_struct("CaseArm");
5806 ds.field("when_expr", &self.when_expr());
5807 ds.field("then_expr", &self.then_expr());
5808 ds.finish()
5809 }
5810 }
5811 pub enum CaseExprOffset {}
5812 #[derive(Copy, Clone, PartialEq)]
5813
5814 pub struct CaseExpr<'a> {
5815 pub _tab: ::flatbuffers::Table<'a>,
5816 }
5817
5818 impl<'a> ::flatbuffers::Follow<'a> for CaseExpr<'a> {
5819 type Inner = CaseExpr<'a>;
5820 #[inline]
5821 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5822 Self {
5823 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5824 }
5825 }
5826 }
5827
5828 impl<'a> CaseExpr<'a> {
5829 pub const VT_ARMS: ::flatbuffers::VOffsetT = 4;
5830 pub const VT_ELSE_EXPR: ::flatbuffers::VOffsetT = 6;
5831
5832 #[inline]
5833 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5834 CaseExpr { _tab: table }
5835 }
5836 #[allow(unused_mut)]
5837 pub fn create<
5838 'bldr: 'args,
5839 'args: 'mut_bldr,
5840 'mut_bldr,
5841 A: ::flatbuffers::Allocator + 'bldr,
5842 >(
5843 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
5844 args: &'args CaseExprArgs<'args>,
5845 ) -> ::flatbuffers::WIPOffset<CaseExpr<'bldr>> {
5846 let mut builder = CaseExprBuilder::new(_fbb);
5847 if let Some(x) = args.else_expr {
5848 builder.add_else_expr(x);
5849 }
5850 if let Some(x) = args.arms {
5851 builder.add_arms(x);
5852 }
5853 builder.finish()
5854 }
5855
5856 #[inline]
5857 pub fn arms(
5858 &self,
5859 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<CaseArm<'a>>>>
5860 {
5861 unsafe {
5865 self._tab.get::<::flatbuffers::ForwardsUOffset<
5866 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<CaseArm>>,
5867 >>(CaseExpr::VT_ARMS, None)
5868 }
5869 }
5870 #[inline]
5871 pub fn else_expr(&self) -> Option<Expr<'a>> {
5872 unsafe {
5876 self._tab
5877 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CaseExpr::VT_ELSE_EXPR, None)
5878 }
5879 }
5880 }
5881
5882 impl ::flatbuffers::Verifiable for CaseExpr<'_> {
5883 #[inline]
5884 fn run_verifier(
5885 v: &mut ::flatbuffers::Verifier,
5886 pos: usize,
5887 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
5888 v.visit_table(pos)?
5889 .visit_field::<::flatbuffers::ForwardsUOffset<
5890 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<CaseArm>>,
5891 >>("arms", Self::VT_ARMS, false)?
5892 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
5893 "else_expr",
5894 Self::VT_ELSE_EXPR,
5895 false,
5896 )?
5897 .finish();
5898 Ok(())
5899 }
5900 }
5901 pub struct CaseExprArgs<'a> {
5902 pub arms: Option<
5903 ::flatbuffers::WIPOffset<
5904 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<CaseArm<'a>>>,
5905 >,
5906 >,
5907 pub else_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
5908 }
5909 impl<'a> Default for CaseExprArgs<'a> {
5910 #[inline]
5911 fn default() -> Self {
5912 CaseExprArgs {
5913 arms: None,
5914 else_expr: None,
5915 }
5916 }
5917 }
5918
5919 pub struct CaseExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
5920 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5921 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
5922 }
5923 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CaseExprBuilder<'a, 'b, A> {
5924 #[inline]
5925 pub fn add_arms(
5926 &mut self,
5927 arms: ::flatbuffers::WIPOffset<
5928 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<CaseArm<'b>>>,
5929 >,
5930 ) {
5931 self.fbb_
5932 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CaseExpr::VT_ARMS, arms);
5933 }
5934 #[inline]
5935 pub fn add_else_expr(&mut self, else_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
5936 self.fbb_
5937 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
5938 CaseExpr::VT_ELSE_EXPR,
5939 else_expr,
5940 );
5941 }
5942 #[inline]
5943 pub fn new(
5944 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
5945 ) -> CaseExprBuilder<'a, 'b, A> {
5946 let start = _fbb.start_table();
5947 CaseExprBuilder {
5948 fbb_: _fbb,
5949 start_: start,
5950 }
5951 }
5952 #[inline]
5953 pub fn finish(self) -> ::flatbuffers::WIPOffset<CaseExpr<'a>> {
5954 let o = self.fbb_.end_table(self.start_);
5955 ::flatbuffers::WIPOffset::new(o.value())
5956 }
5957 }
5958
5959 impl ::core::fmt::Debug for CaseExpr<'_> {
5960 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5961 let mut ds = f.debug_struct("CaseExpr");
5962 ds.field("arms", &self.arms());
5963 ds.field("else_expr", &self.else_expr());
5964 ds.finish()
5965 }
5966 }
5967 pub enum VectorSimilarityExprOffset {}
5968 #[derive(Copy, Clone, PartialEq)]
5969
5970 pub struct VectorSimilarityExpr<'a> {
5971 pub _tab: ::flatbuffers::Table<'a>,
5972 }
5973
5974 impl<'a> ::flatbuffers::Follow<'a> for VectorSimilarityExpr<'a> {
5975 type Inner = VectorSimilarityExpr<'a>;
5976 #[inline]
5977 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
5978 Self {
5979 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
5980 }
5981 }
5982 }
5983
5984 impl<'a> VectorSimilarityExpr<'a> {
5985 pub const VT_METRIC: ::flatbuffers::VOffsetT = 4;
5986 pub const VT_LHS: ::flatbuffers::VOffsetT = 6;
5987 pub const VT_RHS: ::flatbuffers::VOffsetT = 8;
5988
5989 #[inline]
5990 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
5991 VectorSimilarityExpr { _tab: table }
5992 }
5993 #[allow(unused_mut)]
5994 pub fn create<
5995 'bldr: 'args,
5996 'args: 'mut_bldr,
5997 'mut_bldr,
5998 A: ::flatbuffers::Allocator + 'bldr,
5999 >(
6000 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
6001 args: &'args VectorSimilarityExprArgs<'args>,
6002 ) -> ::flatbuffers::WIPOffset<VectorSimilarityExpr<'bldr>> {
6003 let mut builder = VectorSimilarityExprBuilder::new(_fbb);
6004 if let Some(x) = args.rhs {
6005 builder.add_rhs(x);
6006 }
6007 if let Some(x) = args.lhs {
6008 builder.add_lhs(x);
6009 }
6010 builder.add_metric(args.metric);
6011 builder.finish()
6012 }
6013
6014 #[inline]
6015 pub fn metric(&self) -> VectorMetric {
6016 unsafe {
6020 self._tab
6021 .get::<VectorMetric>(
6022 VectorSimilarityExpr::VT_METRIC,
6023 Some(VectorMetric::cosine),
6024 )
6025 .unwrap()
6026 }
6027 }
6028 #[inline]
6029 pub fn lhs(&self) -> Option<Expr<'a>> {
6030 unsafe {
6034 self._tab
6035 .get::<::flatbuffers::ForwardsUOffset<Expr>>(VectorSimilarityExpr::VT_LHS, None)
6036 }
6037 }
6038 #[inline]
6039 pub fn rhs(&self) -> Option<Expr<'a>> {
6040 unsafe {
6044 self._tab
6045 .get::<::flatbuffers::ForwardsUOffset<Expr>>(VectorSimilarityExpr::VT_RHS, None)
6046 }
6047 }
6048 }
6049
6050 impl ::flatbuffers::Verifiable for VectorSimilarityExpr<'_> {
6051 #[inline]
6052 fn run_verifier(
6053 v: &mut ::flatbuffers::Verifier,
6054 pos: usize,
6055 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
6056 v.visit_table(pos)?
6057 .visit_field::<VectorMetric>("metric", Self::VT_METRIC, false)?
6058 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("lhs", Self::VT_LHS, false)?
6059 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>("rhs", Self::VT_RHS, false)?
6060 .finish();
6061 Ok(())
6062 }
6063 }
6064 pub struct VectorSimilarityExprArgs<'a> {
6065 pub metric: VectorMetric,
6066 pub lhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
6067 pub rhs: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
6068 }
6069 impl<'a> Default for VectorSimilarityExprArgs<'a> {
6070 #[inline]
6071 fn default() -> Self {
6072 VectorSimilarityExprArgs {
6073 metric: VectorMetric::cosine,
6074 lhs: None,
6075 rhs: None,
6076 }
6077 }
6078 }
6079
6080 pub struct VectorSimilarityExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
6081 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
6082 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
6083 }
6084 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> VectorSimilarityExprBuilder<'a, 'b, A> {
6085 #[inline]
6086 pub fn add_metric(&mut self, metric: VectorMetric) {
6087 self.fbb_.push_slot::<VectorMetric>(
6088 VectorSimilarityExpr::VT_METRIC,
6089 metric,
6090 VectorMetric::cosine,
6091 );
6092 }
6093 #[inline]
6094 pub fn add_lhs(&mut self, lhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
6095 self.fbb_
6096 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
6097 VectorSimilarityExpr::VT_LHS,
6098 lhs,
6099 );
6100 }
6101 #[inline]
6102 pub fn add_rhs(&mut self, rhs: ::flatbuffers::WIPOffset<Expr<'b>>) {
6103 self.fbb_
6104 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
6105 VectorSimilarityExpr::VT_RHS,
6106 rhs,
6107 );
6108 }
6109 #[inline]
6110 pub fn new(
6111 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
6112 ) -> VectorSimilarityExprBuilder<'a, 'b, A> {
6113 let start = _fbb.start_table();
6114 VectorSimilarityExprBuilder {
6115 fbb_: _fbb,
6116 start_: start,
6117 }
6118 }
6119 #[inline]
6120 pub fn finish(self) -> ::flatbuffers::WIPOffset<VectorSimilarityExpr<'a>> {
6121 let o = self.fbb_.end_table(self.start_);
6122 ::flatbuffers::WIPOffset::new(o.value())
6123 }
6124 }
6125
6126 impl ::core::fmt::Debug for VectorSimilarityExpr<'_> {
6127 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6128 let mut ds = f.debug_struct("VectorSimilarityExpr");
6129 ds.field("metric", &self.metric());
6130 ds.field("lhs", &self.lhs());
6131 ds.field("rhs", &self.rhs());
6132 ds.finish()
6133 }
6134 }
6135 pub enum ExprOffset {}
6136 #[derive(Copy, Clone, PartialEq)]
6137
6138 pub struct Expr<'a> {
6139 pub _tab: ::flatbuffers::Table<'a>,
6140 }
6141
6142 impl<'a> ::flatbuffers::Follow<'a> for Expr<'a> {
6143 type Inner = Expr<'a>;
6144 #[inline]
6145 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
6146 Self {
6147 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
6148 }
6149 }
6150 }
6151
6152 impl<'a> Expr<'a> {
6153 pub const VT_NODE_TYPE: ::flatbuffers::VOffsetT = 4;
6154 pub const VT_NODE: ::flatbuffers::VOffsetT = 6;
6155
6156 #[inline]
6157 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
6158 Expr { _tab: table }
6159 }
6160 #[allow(unused_mut)]
6161 pub fn create<
6162 'bldr: 'args,
6163 'args: 'mut_bldr,
6164 'mut_bldr,
6165 A: ::flatbuffers::Allocator + 'bldr,
6166 >(
6167 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
6168 args: &'args ExprArgs,
6169 ) -> ::flatbuffers::WIPOffset<Expr<'bldr>> {
6170 let mut builder = ExprBuilder::new(_fbb);
6171 if let Some(x) = args.node {
6172 builder.add_node(x);
6173 }
6174 builder.add_node_type(args.node_type);
6175 builder.finish()
6176 }
6177
6178 #[inline]
6179 pub fn node_type(&self) -> ExprNode {
6180 unsafe {
6184 self._tab
6185 .get::<ExprNode>(Expr::VT_NODE_TYPE, Some(ExprNode::NONE))
6186 .unwrap()
6187 }
6188 }
6189 #[inline]
6190 pub fn node(&self) -> Option<::flatbuffers::Table<'a>> {
6191 unsafe {
6195 self._tab
6196 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Table<'a>>>(
6197 Expr::VT_NODE,
6198 None,
6199 )
6200 }
6201 }
6202 #[inline]
6203 #[allow(non_snake_case)]
6204 pub fn node_as_col_ref_expr(&self) -> Option<ColRefExpr<'a>> {
6205 if self.node_type() == ExprNode::ColRefExpr {
6206 self.node().map(|t| {
6207 unsafe { ColRefExpr::init_from_table(t) }
6211 })
6212 } else {
6213 None
6214 }
6215 }
6216
6217 #[inline]
6218 #[allow(non_snake_case)]
6219 pub fn node_as_prop_access_expr(&self) -> Option<PropAccessExpr<'a>> {
6220 if self.node_type() == ExprNode::PropAccessExpr {
6221 self.node().map(|t| {
6222 unsafe { PropAccessExpr::init_from_table(t) }
6226 })
6227 } else {
6228 None
6229 }
6230 }
6231
6232 #[inline]
6233 #[allow(non_snake_case)]
6234 pub fn node_as_int_literal_expr(&self) -> Option<IntLiteralExpr<'a>> {
6235 if self.node_type() == ExprNode::IntLiteralExpr {
6236 self.node().map(|t| {
6237 unsafe { IntLiteralExpr::init_from_table(t) }
6241 })
6242 } else {
6243 None
6244 }
6245 }
6246
6247 #[inline]
6248 #[allow(non_snake_case)]
6249 pub fn node_as_float_literal_expr(&self) -> Option<FloatLiteralExpr<'a>> {
6250 if self.node_type() == ExprNode::FloatLiteralExpr {
6251 self.node().map(|t| {
6252 unsafe { FloatLiteralExpr::init_from_table(t) }
6256 })
6257 } else {
6258 None
6259 }
6260 }
6261
6262 #[inline]
6263 #[allow(non_snake_case)]
6264 pub fn node_as_bool_literal_expr(&self) -> Option<BoolLiteralExpr<'a>> {
6265 if self.node_type() == ExprNode::BoolLiteralExpr {
6266 self.node().map(|t| {
6267 unsafe { BoolLiteralExpr::init_from_table(t) }
6271 })
6272 } else {
6273 None
6274 }
6275 }
6276
6277 #[inline]
6278 #[allow(non_snake_case)]
6279 pub fn node_as_string_literal_expr(&self) -> Option<StringLiteralExpr<'a>> {
6280 if self.node_type() == ExprNode::StringLiteralExpr {
6281 self.node().map(|t| {
6282 unsafe { StringLiteralExpr::init_from_table(t) }
6286 })
6287 } else {
6288 None
6289 }
6290 }
6291
6292 #[inline]
6293 #[allow(non_snake_case)]
6294 pub fn node_as_null_literal_expr(&self) -> Option<NullLiteralExpr<'a>> {
6295 if self.node_type() == ExprNode::NullLiteralExpr {
6296 self.node().map(|t| {
6297 unsafe { NullLiteralExpr::init_from_table(t) }
6301 })
6302 } else {
6303 None
6304 }
6305 }
6306
6307 #[inline]
6308 #[allow(non_snake_case)]
6309 pub fn node_as_cmp_expr(&self) -> Option<CmpExpr<'a>> {
6310 if self.node_type() == ExprNode::CmpExpr {
6311 self.node().map(|t| {
6312 unsafe { CmpExpr::init_from_table(t) }
6316 })
6317 } else {
6318 None
6319 }
6320 }
6321
6322 #[inline]
6323 #[allow(non_snake_case)]
6324 pub fn node_as_and_expr(&self) -> Option<AndExpr<'a>> {
6325 if self.node_type() == ExprNode::AndExpr {
6326 self.node().map(|t| {
6327 unsafe { AndExpr::init_from_table(t) }
6331 })
6332 } else {
6333 None
6334 }
6335 }
6336
6337 #[inline]
6338 #[allow(non_snake_case)]
6339 pub fn node_as_or_expr(&self) -> Option<OrExpr<'a>> {
6340 if self.node_type() == ExprNode::OrExpr {
6341 self.node().map(|t| {
6342 unsafe { OrExpr::init_from_table(t) }
6346 })
6347 } else {
6348 None
6349 }
6350 }
6351
6352 #[inline]
6353 #[allow(non_snake_case)]
6354 pub fn node_as_not_expr(&self) -> Option<NotExpr<'a>> {
6355 if self.node_type() == ExprNode::NotExpr {
6356 self.node().map(|t| {
6357 unsafe { NotExpr::init_from_table(t) }
6361 })
6362 } else {
6363 None
6364 }
6365 }
6366
6367 #[inline]
6368 #[allow(non_snake_case)]
6369 pub fn node_as_is_null_expr(&self) -> Option<IsNullExpr<'a>> {
6370 if self.node_type() == ExprNode::IsNullExpr {
6371 self.node().map(|t| {
6372 unsafe { IsNullExpr::init_from_table(t) }
6376 })
6377 } else {
6378 None
6379 }
6380 }
6381
6382 #[inline]
6383 #[allow(non_snake_case)]
6384 pub fn node_as_is_not_null_expr(&self) -> Option<IsNotNullExpr<'a>> {
6385 if self.node_type() == ExprNode::IsNotNullExpr {
6386 self.node().map(|t| {
6387 unsafe { IsNotNullExpr::init_from_table(t) }
6391 })
6392 } else {
6393 None
6394 }
6395 }
6396
6397 #[inline]
6398 #[allow(non_snake_case)]
6399 pub fn node_as_starts_with_expr(&self) -> Option<StartsWithExpr<'a>> {
6400 if self.node_type() == ExprNode::StartsWithExpr {
6401 self.node().map(|t| {
6402 unsafe { StartsWithExpr::init_from_table(t) }
6406 })
6407 } else {
6408 None
6409 }
6410 }
6411
6412 #[inline]
6413 #[allow(non_snake_case)]
6414 pub fn node_as_ends_with_expr(&self) -> Option<EndsWithExpr<'a>> {
6415 if self.node_type() == ExprNode::EndsWithExpr {
6416 self.node().map(|t| {
6417 unsafe { EndsWithExpr::init_from_table(t) }
6421 })
6422 } else {
6423 None
6424 }
6425 }
6426
6427 #[inline]
6428 #[allow(non_snake_case)]
6429 pub fn node_as_contains_expr(&self) -> Option<ContainsExpr<'a>> {
6430 if self.node_type() == ExprNode::ContainsExpr {
6431 self.node().map(|t| {
6432 unsafe { ContainsExpr::init_from_table(t) }
6436 })
6437 } else {
6438 None
6439 }
6440 }
6441
6442 #[inline]
6443 #[allow(non_snake_case)]
6444 pub fn node_as_in_expr(&self) -> Option<InExpr<'a>> {
6445 if self.node_type() == ExprNode::InExpr {
6446 self.node().map(|t| {
6447 unsafe { InExpr::init_from_table(t) }
6451 })
6452 } else {
6453 None
6454 }
6455 }
6456
6457 #[inline]
6458 #[allow(non_snake_case)]
6459 pub fn node_as_list_literal_expr(&self) -> Option<ListLiteralExpr<'a>> {
6460 if self.node_type() == ExprNode::ListLiteralExpr {
6461 self.node().map(|t| {
6462 unsafe { ListLiteralExpr::init_from_table(t) }
6466 })
6467 } else {
6468 None
6469 }
6470 }
6471
6472 #[inline]
6473 #[allow(non_snake_case)]
6474 pub fn node_as_map_literal_expr(&self) -> Option<MapLiteralExpr<'a>> {
6475 if self.node_type() == ExprNode::MapLiteralExpr {
6476 self.node().map(|t| {
6477 unsafe { MapLiteralExpr::init_from_table(t) }
6481 })
6482 } else {
6483 None
6484 }
6485 }
6486
6487 #[inline]
6488 #[allow(non_snake_case)]
6489 pub fn node_as_exists_expr(&self) -> Option<ExistsExpr<'a>> {
6490 if self.node_type() == ExprNode::ExistsExpr {
6491 self.node().map(|t| {
6492 unsafe { ExistsExpr::init_from_table(t) }
6496 })
6497 } else {
6498 None
6499 }
6500 }
6501
6502 #[inline]
6503 #[allow(non_snake_case)]
6504 pub fn node_as_list_comprehension_expr(&self) -> Option<ListComprehensionExpr<'a>> {
6505 if self.node_type() == ExprNode::ListComprehensionExpr {
6506 self.node().map(|t| {
6507 unsafe { ListComprehensionExpr::init_from_table(t) }
6511 })
6512 } else {
6513 None
6514 }
6515 }
6516
6517 #[inline]
6518 #[allow(non_snake_case)]
6519 pub fn node_as_agg_expr(&self) -> Option<AggExpr<'a>> {
6520 if self.node_type() == ExprNode::AggExpr {
6521 self.node().map(|t| {
6522 unsafe { AggExpr::init_from_table(t) }
6526 })
6527 } else {
6528 None
6529 }
6530 }
6531
6532 #[inline]
6533 #[allow(non_snake_case)]
6534 pub fn node_as_arith_expr(&self) -> Option<ArithExpr<'a>> {
6535 if self.node_type() == ExprNode::ArithExpr {
6536 self.node().map(|t| {
6537 unsafe { ArithExpr::init_from_table(t) }
6541 })
6542 } else {
6543 None
6544 }
6545 }
6546
6547 #[inline]
6548 #[allow(non_snake_case)]
6549 pub fn node_as_param_expr(&self) -> Option<ParamExpr<'a>> {
6550 if self.node_type() == ExprNode::ParamExpr {
6551 self.node().map(|t| {
6552 unsafe { ParamExpr::init_from_table(t) }
6556 })
6557 } else {
6558 None
6559 }
6560 }
6561
6562 #[inline]
6563 #[allow(non_snake_case)]
6564 pub fn node_as_case_expr(&self) -> Option<CaseExpr<'a>> {
6565 if self.node_type() == ExprNode::CaseExpr {
6566 self.node().map(|t| {
6567 unsafe { CaseExpr::init_from_table(t) }
6571 })
6572 } else {
6573 None
6574 }
6575 }
6576
6577 #[inline]
6578 #[allow(non_snake_case)]
6579 pub fn node_as_vector_similarity_expr(&self) -> Option<VectorSimilarityExpr<'a>> {
6580 if self.node_type() == ExprNode::VectorSimilarityExpr {
6581 self.node().map(|t| {
6582 unsafe { VectorSimilarityExpr::init_from_table(t) }
6586 })
6587 } else {
6588 None
6589 }
6590 }
6591 }
6592
6593 impl ::flatbuffers::Verifiable for Expr<'_> {
6594 #[inline]
6595 fn run_verifier(
6596 v: &mut ::flatbuffers::Verifier,
6597 pos: usize,
6598 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
6599 v.visit_table(pos)?
6600 .visit_union::<ExprNode, _>("node_type", Self::VT_NODE_TYPE, "node", Self::VT_NODE, false, |key, v, pos| {
6601 match key {
6602 ExprNode::ColRefExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ColRefExpr>>("ExprNode::ColRefExpr", pos),
6603 ExprNode::PropAccessExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<PropAccessExpr>>("ExprNode::PropAccessExpr", pos),
6604 ExprNode::IntLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<IntLiteralExpr>>("ExprNode::IntLiteralExpr", pos),
6605 ExprNode::FloatLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<FloatLiteralExpr>>("ExprNode::FloatLiteralExpr", pos),
6606 ExprNode::BoolLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<BoolLiteralExpr>>("ExprNode::BoolLiteralExpr", pos),
6607 ExprNode::StringLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<StringLiteralExpr>>("ExprNode::StringLiteralExpr", pos),
6608 ExprNode::NullLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<NullLiteralExpr>>("ExprNode::NullLiteralExpr", pos),
6609 ExprNode::CmpExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<CmpExpr>>("ExprNode::CmpExpr", pos),
6610 ExprNode::AndExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<AndExpr>>("ExprNode::AndExpr", pos),
6611 ExprNode::OrExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<OrExpr>>("ExprNode::OrExpr", pos),
6612 ExprNode::NotExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<NotExpr>>("ExprNode::NotExpr", pos),
6613 ExprNode::IsNullExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<IsNullExpr>>("ExprNode::IsNullExpr", pos),
6614 ExprNode::IsNotNullExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<IsNotNullExpr>>("ExprNode::IsNotNullExpr", pos),
6615 ExprNode::StartsWithExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<StartsWithExpr>>("ExprNode::StartsWithExpr", pos),
6616 ExprNode::EndsWithExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<EndsWithExpr>>("ExprNode::EndsWithExpr", pos),
6617 ExprNode::ContainsExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ContainsExpr>>("ExprNode::ContainsExpr", pos),
6618 ExprNode::InExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<InExpr>>("ExprNode::InExpr", pos),
6619 ExprNode::ListLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ListLiteralExpr>>("ExprNode::ListLiteralExpr", pos),
6620 ExprNode::MapLiteralExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<MapLiteralExpr>>("ExprNode::MapLiteralExpr", pos),
6621 ExprNode::ExistsExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ExistsExpr>>("ExprNode::ExistsExpr", pos),
6622 ExprNode::ListComprehensionExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ListComprehensionExpr>>("ExprNode::ListComprehensionExpr", pos),
6623 ExprNode::AggExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<AggExpr>>("ExprNode::AggExpr", pos),
6624 ExprNode::ArithExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ArithExpr>>("ExprNode::ArithExpr", pos),
6625 ExprNode::ParamExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ParamExpr>>("ExprNode::ParamExpr", pos),
6626 ExprNode::CaseExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<CaseExpr>>("ExprNode::CaseExpr", pos),
6627 ExprNode::VectorSimilarityExpr => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<VectorSimilarityExpr>>("ExprNode::VectorSimilarityExpr", pos),
6628 _ => Ok(()),
6629 }
6630 })?
6631 .finish();
6632 Ok(())
6633 }
6634 }
6635 pub struct ExprArgs {
6636 pub node_type: ExprNode,
6637 pub node: Option<::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>>,
6638 }
6639 impl<'a> Default for ExprArgs {
6640 #[inline]
6641 fn default() -> Self {
6642 ExprArgs {
6643 node_type: ExprNode::NONE,
6644 node: None,
6645 }
6646 }
6647 }
6648
6649 pub struct ExprBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
6650 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
6651 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
6652 }
6653 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ExprBuilder<'a, 'b, A> {
6654 #[inline]
6655 pub fn add_node_type(&mut self, node_type: ExprNode) {
6656 self.fbb_
6657 .push_slot::<ExprNode>(Expr::VT_NODE_TYPE, node_type, ExprNode::NONE);
6658 }
6659 #[inline]
6660 pub fn add_node(&mut self, node: ::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>) {
6661 self.fbb_
6662 .push_slot_always::<::flatbuffers::WIPOffset<_>>(Expr::VT_NODE, node);
6663 }
6664 #[inline]
6665 pub fn new(
6666 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
6667 ) -> ExprBuilder<'a, 'b, A> {
6668 let start = _fbb.start_table();
6669 ExprBuilder {
6670 fbb_: _fbb,
6671 start_: start,
6672 }
6673 }
6674 #[inline]
6675 pub fn finish(self) -> ::flatbuffers::WIPOffset<Expr<'a>> {
6676 let o = self.fbb_.end_table(self.start_);
6677 ::flatbuffers::WIPOffset::new(o.value())
6678 }
6679 }
6680
6681 impl ::core::fmt::Debug for Expr<'_> {
6682 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6683 let mut ds = f.debug_struct("Expr");
6684 ds.field("node_type", &self.node_type());
6685 match self.node_type() {
6686 ExprNode::ColRefExpr => {
6687 if let Some(x) = self.node_as_col_ref_expr() {
6688 ds.field("node", &x)
6689 } else {
6690 ds.field(
6691 "node",
6692 &"InvalidFlatbuffer: Union discriminant does not match value.",
6693 )
6694 }
6695 }
6696 ExprNode::PropAccessExpr => {
6697 if let Some(x) = self.node_as_prop_access_expr() {
6698 ds.field("node", &x)
6699 } else {
6700 ds.field(
6701 "node",
6702 &"InvalidFlatbuffer: Union discriminant does not match value.",
6703 )
6704 }
6705 }
6706 ExprNode::IntLiteralExpr => {
6707 if let Some(x) = self.node_as_int_literal_expr() {
6708 ds.field("node", &x)
6709 } else {
6710 ds.field(
6711 "node",
6712 &"InvalidFlatbuffer: Union discriminant does not match value.",
6713 )
6714 }
6715 }
6716 ExprNode::FloatLiteralExpr => {
6717 if let Some(x) = self.node_as_float_literal_expr() {
6718 ds.field("node", &x)
6719 } else {
6720 ds.field(
6721 "node",
6722 &"InvalidFlatbuffer: Union discriminant does not match value.",
6723 )
6724 }
6725 }
6726 ExprNode::BoolLiteralExpr => {
6727 if let Some(x) = self.node_as_bool_literal_expr() {
6728 ds.field("node", &x)
6729 } else {
6730 ds.field(
6731 "node",
6732 &"InvalidFlatbuffer: Union discriminant does not match value.",
6733 )
6734 }
6735 }
6736 ExprNode::StringLiteralExpr => {
6737 if let Some(x) = self.node_as_string_literal_expr() {
6738 ds.field("node", &x)
6739 } else {
6740 ds.field(
6741 "node",
6742 &"InvalidFlatbuffer: Union discriminant does not match value.",
6743 )
6744 }
6745 }
6746 ExprNode::NullLiteralExpr => {
6747 if let Some(x) = self.node_as_null_literal_expr() {
6748 ds.field("node", &x)
6749 } else {
6750 ds.field(
6751 "node",
6752 &"InvalidFlatbuffer: Union discriminant does not match value.",
6753 )
6754 }
6755 }
6756 ExprNode::CmpExpr => {
6757 if let Some(x) = self.node_as_cmp_expr() {
6758 ds.field("node", &x)
6759 } else {
6760 ds.field(
6761 "node",
6762 &"InvalidFlatbuffer: Union discriminant does not match value.",
6763 )
6764 }
6765 }
6766 ExprNode::AndExpr => {
6767 if let Some(x) = self.node_as_and_expr() {
6768 ds.field("node", &x)
6769 } else {
6770 ds.field(
6771 "node",
6772 &"InvalidFlatbuffer: Union discriminant does not match value.",
6773 )
6774 }
6775 }
6776 ExprNode::OrExpr => {
6777 if let Some(x) = self.node_as_or_expr() {
6778 ds.field("node", &x)
6779 } else {
6780 ds.field(
6781 "node",
6782 &"InvalidFlatbuffer: Union discriminant does not match value.",
6783 )
6784 }
6785 }
6786 ExprNode::NotExpr => {
6787 if let Some(x) = self.node_as_not_expr() {
6788 ds.field("node", &x)
6789 } else {
6790 ds.field(
6791 "node",
6792 &"InvalidFlatbuffer: Union discriminant does not match value.",
6793 )
6794 }
6795 }
6796 ExprNode::IsNullExpr => {
6797 if let Some(x) = self.node_as_is_null_expr() {
6798 ds.field("node", &x)
6799 } else {
6800 ds.field(
6801 "node",
6802 &"InvalidFlatbuffer: Union discriminant does not match value.",
6803 )
6804 }
6805 }
6806 ExprNode::IsNotNullExpr => {
6807 if let Some(x) = self.node_as_is_not_null_expr() {
6808 ds.field("node", &x)
6809 } else {
6810 ds.field(
6811 "node",
6812 &"InvalidFlatbuffer: Union discriminant does not match value.",
6813 )
6814 }
6815 }
6816 ExprNode::StartsWithExpr => {
6817 if let Some(x) = self.node_as_starts_with_expr() {
6818 ds.field("node", &x)
6819 } else {
6820 ds.field(
6821 "node",
6822 &"InvalidFlatbuffer: Union discriminant does not match value.",
6823 )
6824 }
6825 }
6826 ExprNode::EndsWithExpr => {
6827 if let Some(x) = self.node_as_ends_with_expr() {
6828 ds.field("node", &x)
6829 } else {
6830 ds.field(
6831 "node",
6832 &"InvalidFlatbuffer: Union discriminant does not match value.",
6833 )
6834 }
6835 }
6836 ExprNode::ContainsExpr => {
6837 if let Some(x) = self.node_as_contains_expr() {
6838 ds.field("node", &x)
6839 } else {
6840 ds.field(
6841 "node",
6842 &"InvalidFlatbuffer: Union discriminant does not match value.",
6843 )
6844 }
6845 }
6846 ExprNode::InExpr => {
6847 if let Some(x) = self.node_as_in_expr() {
6848 ds.field("node", &x)
6849 } else {
6850 ds.field(
6851 "node",
6852 &"InvalidFlatbuffer: Union discriminant does not match value.",
6853 )
6854 }
6855 }
6856 ExprNode::ListLiteralExpr => {
6857 if let Some(x) = self.node_as_list_literal_expr() {
6858 ds.field("node", &x)
6859 } else {
6860 ds.field(
6861 "node",
6862 &"InvalidFlatbuffer: Union discriminant does not match value.",
6863 )
6864 }
6865 }
6866 ExprNode::MapLiteralExpr => {
6867 if let Some(x) = self.node_as_map_literal_expr() {
6868 ds.field("node", &x)
6869 } else {
6870 ds.field(
6871 "node",
6872 &"InvalidFlatbuffer: Union discriminant does not match value.",
6873 )
6874 }
6875 }
6876 ExprNode::ExistsExpr => {
6877 if let Some(x) = self.node_as_exists_expr() {
6878 ds.field("node", &x)
6879 } else {
6880 ds.field(
6881 "node",
6882 &"InvalidFlatbuffer: Union discriminant does not match value.",
6883 )
6884 }
6885 }
6886 ExprNode::ListComprehensionExpr => {
6887 if let Some(x) = self.node_as_list_comprehension_expr() {
6888 ds.field("node", &x)
6889 } else {
6890 ds.field(
6891 "node",
6892 &"InvalidFlatbuffer: Union discriminant does not match value.",
6893 )
6894 }
6895 }
6896 ExprNode::AggExpr => {
6897 if let Some(x) = self.node_as_agg_expr() {
6898 ds.field("node", &x)
6899 } else {
6900 ds.field(
6901 "node",
6902 &"InvalidFlatbuffer: Union discriminant does not match value.",
6903 )
6904 }
6905 }
6906 ExprNode::ArithExpr => {
6907 if let Some(x) = self.node_as_arith_expr() {
6908 ds.field("node", &x)
6909 } else {
6910 ds.field(
6911 "node",
6912 &"InvalidFlatbuffer: Union discriminant does not match value.",
6913 )
6914 }
6915 }
6916 ExprNode::ParamExpr => {
6917 if let Some(x) = self.node_as_param_expr() {
6918 ds.field("node", &x)
6919 } else {
6920 ds.field(
6921 "node",
6922 &"InvalidFlatbuffer: Union discriminant does not match value.",
6923 )
6924 }
6925 }
6926 ExprNode::CaseExpr => {
6927 if let Some(x) = self.node_as_case_expr() {
6928 ds.field("node", &x)
6929 } else {
6930 ds.field(
6931 "node",
6932 &"InvalidFlatbuffer: Union discriminant does not match value.",
6933 )
6934 }
6935 }
6936 ExprNode::VectorSimilarityExpr => {
6937 if let Some(x) = self.node_as_vector_similarity_expr() {
6938 ds.field("node", &x)
6939 } else {
6940 ds.field(
6941 "node",
6942 &"InvalidFlatbuffer: Union discriminant does not match value.",
6943 )
6944 }
6945 }
6946 _ => {
6947 let x: Option<()> = None;
6948 ds.field("node", &x)
6949 }
6950 };
6951 ds.finish()
6952 }
6953 }
6954 pub enum ScanNodesOpOffset {}
6955 #[derive(Copy, Clone, PartialEq)]
6956
6957 pub struct ScanNodesOp<'a> {
6958 pub _tab: ::flatbuffers::Table<'a>,
6959 }
6960
6961 impl<'a> ::flatbuffers::Follow<'a> for ScanNodesOp<'a> {
6962 type Inner = ScanNodesOp<'a>;
6963 #[inline]
6964 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
6965 Self {
6966 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
6967 }
6968 }
6969 }
6970
6971 impl<'a> ScanNodesOp<'a> {
6972 pub const VT_LABELS: ::flatbuffers::VOffsetT = 4;
6973 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 6;
6974 pub const VT_MUST_LABELS: ::flatbuffers::VOffsetT = 8;
6975 pub const VT_FORBIDDEN_LABELS: ::flatbuffers::VOffsetT = 10;
6976 pub const VT_EST_ROWS: ::flatbuffers::VOffsetT = 12;
6977 pub const VT_SELECTIVITY: ::flatbuffers::VOffsetT = 14;
6978 pub const VT_GRAPH_REF: ::flatbuffers::VOffsetT = 16;
6979
6980 #[inline]
6981 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
6982 ScanNodesOp { _tab: table }
6983 }
6984 #[allow(unused_mut)]
6985 pub fn create<
6986 'bldr: 'args,
6987 'args: 'mut_bldr,
6988 'mut_bldr,
6989 A: ::flatbuffers::Allocator + 'bldr,
6990 >(
6991 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
6992 args: &'args ScanNodesOpArgs<'args>,
6993 ) -> ::flatbuffers::WIPOffset<ScanNodesOp<'bldr>> {
6994 let mut builder = ScanNodesOpBuilder::new(_fbb);
6995 builder.add_selectivity(args.selectivity);
6996 builder.add_est_rows(args.est_rows);
6997 if let Some(x) = args.graph_ref {
6998 builder.add_graph_ref(x);
6999 }
7000 if let Some(x) = args.forbidden_labels {
7001 builder.add_forbidden_labels(x);
7002 }
7003 if let Some(x) = args.must_labels {
7004 builder.add_must_labels(x);
7005 }
7006 if let Some(x) = args.schema {
7007 builder.add_schema(x);
7008 }
7009 if let Some(x) = args.labels {
7010 builder.add_labels(x);
7011 }
7012 builder.finish()
7013 }
7014
7015 #[inline]
7016 pub fn labels(
7017 &self,
7018 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7019 unsafe {
7023 self._tab.get::<::flatbuffers::ForwardsUOffset<
7024 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7025 >>(ScanNodesOp::VT_LABELS, None)
7026 }
7027 }
7028 #[inline]
7029 pub fn schema(
7030 &self,
7031 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
7032 unsafe {
7036 self._tab.get::<::flatbuffers::ForwardsUOffset<
7037 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
7038 >>(ScanNodesOp::VT_SCHEMA, None)
7039 }
7040 }
7041 #[inline]
7042 pub fn must_labels(
7043 &self,
7044 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7045 unsafe {
7049 self._tab.get::<::flatbuffers::ForwardsUOffset<
7050 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7051 >>(ScanNodesOp::VT_MUST_LABELS, None)
7052 }
7053 }
7054 #[inline]
7055 pub fn forbidden_labels(
7056 &self,
7057 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7058 unsafe {
7062 self._tab.get::<::flatbuffers::ForwardsUOffset<
7063 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7064 >>(ScanNodesOp::VT_FORBIDDEN_LABELS, None)
7065 }
7066 }
7067 #[inline]
7068 pub fn est_rows(&self) -> i64 {
7069 unsafe {
7073 self._tab
7074 .get::<i64>(ScanNodesOp::VT_EST_ROWS, Some(-1))
7075 .unwrap()
7076 }
7077 }
7078 #[inline]
7079 pub fn selectivity(&self) -> f64 {
7080 unsafe {
7084 self._tab
7085 .get::<f64>(ScanNodesOp::VT_SELECTIVITY, Some(1.0))
7086 .unwrap()
7087 }
7088 }
7089 #[inline]
7090 pub fn graph_ref(&self) -> Option<&'a str> {
7091 unsafe {
7095 self._tab
7096 .get::<::flatbuffers::ForwardsUOffset<&str>>(ScanNodesOp::VT_GRAPH_REF, None)
7097 }
7098 }
7099 }
7100
7101 impl ::flatbuffers::Verifiable for ScanNodesOp<'_> {
7102 #[inline]
7103 fn run_verifier(
7104 v: &mut ::flatbuffers::Verifier,
7105 pos: usize,
7106 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
7107 v.visit_table(pos)?
7108 .visit_field::<::flatbuffers::ForwardsUOffset<
7109 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7110 >>("labels", Self::VT_LABELS, false)?
7111 .visit_field::<::flatbuffers::ForwardsUOffset<
7112 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
7113 >>("schema", Self::VT_SCHEMA, false)?
7114 .visit_field::<::flatbuffers::ForwardsUOffset<
7115 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7116 >>("must_labels", Self::VT_MUST_LABELS, false)?
7117 .visit_field::<::flatbuffers::ForwardsUOffset<
7118 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7119 >>("forbidden_labels", Self::VT_FORBIDDEN_LABELS, false)?
7120 .visit_field::<i64>("est_rows", Self::VT_EST_ROWS, false)?
7121 .visit_field::<f64>("selectivity", Self::VT_SELECTIVITY, false)?
7122 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
7123 "graph_ref",
7124 Self::VT_GRAPH_REF,
7125 false,
7126 )?
7127 .finish();
7128 Ok(())
7129 }
7130 }
7131 pub struct ScanNodesOpArgs<'a> {
7132 pub labels: Option<
7133 ::flatbuffers::WIPOffset<
7134 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7135 >,
7136 >,
7137 pub schema: Option<
7138 ::flatbuffers::WIPOffset<
7139 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
7140 >,
7141 >,
7142 pub must_labels: Option<
7143 ::flatbuffers::WIPOffset<
7144 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7145 >,
7146 >,
7147 pub forbidden_labels: Option<
7148 ::flatbuffers::WIPOffset<
7149 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7150 >,
7151 >,
7152 pub est_rows: i64,
7153 pub selectivity: f64,
7154 pub graph_ref: Option<::flatbuffers::WIPOffset<&'a str>>,
7155 }
7156 impl<'a> Default for ScanNodesOpArgs<'a> {
7157 #[inline]
7158 fn default() -> Self {
7159 ScanNodesOpArgs {
7160 labels: None,
7161 schema: None,
7162 must_labels: None,
7163 forbidden_labels: None,
7164 est_rows: -1,
7165 selectivity: 1.0,
7166 graph_ref: None,
7167 }
7168 }
7169 }
7170
7171 pub struct ScanNodesOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
7172 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7173 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
7174 }
7175 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ScanNodesOpBuilder<'a, 'b, A> {
7176 #[inline]
7177 pub fn add_labels(
7178 &mut self,
7179 labels: ::flatbuffers::WIPOffset<
7180 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7181 >,
7182 ) {
7183 self.fbb_
7184 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ScanNodesOp::VT_LABELS, labels);
7185 }
7186 #[inline]
7187 pub fn add_schema(
7188 &mut self,
7189 schema: ::flatbuffers::WIPOffset<
7190 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
7191 >,
7192 ) {
7193 self.fbb_
7194 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ScanNodesOp::VT_SCHEMA, schema);
7195 }
7196 #[inline]
7197 pub fn add_must_labels(
7198 &mut self,
7199 must_labels: ::flatbuffers::WIPOffset<
7200 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7201 >,
7202 ) {
7203 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7204 ScanNodesOp::VT_MUST_LABELS,
7205 must_labels,
7206 );
7207 }
7208 #[inline]
7209 pub fn add_forbidden_labels(
7210 &mut self,
7211 forbidden_labels: ::flatbuffers::WIPOffset<
7212 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7213 >,
7214 ) {
7215 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7216 ScanNodesOp::VT_FORBIDDEN_LABELS,
7217 forbidden_labels,
7218 );
7219 }
7220 #[inline]
7221 pub fn add_est_rows(&mut self, est_rows: i64) {
7222 self.fbb_
7223 .push_slot::<i64>(ScanNodesOp::VT_EST_ROWS, est_rows, -1);
7224 }
7225 #[inline]
7226 pub fn add_selectivity(&mut self, selectivity: f64) {
7227 self.fbb_
7228 .push_slot::<f64>(ScanNodesOp::VT_SELECTIVITY, selectivity, 1.0);
7229 }
7230 #[inline]
7231 pub fn add_graph_ref(&mut self, graph_ref: ::flatbuffers::WIPOffset<&'b str>) {
7232 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7233 ScanNodesOp::VT_GRAPH_REF,
7234 graph_ref,
7235 );
7236 }
7237 #[inline]
7238 pub fn new(
7239 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7240 ) -> ScanNodesOpBuilder<'a, 'b, A> {
7241 let start = _fbb.start_table();
7242 ScanNodesOpBuilder {
7243 fbb_: _fbb,
7244 start_: start,
7245 }
7246 }
7247 #[inline]
7248 pub fn finish(self) -> ::flatbuffers::WIPOffset<ScanNodesOp<'a>> {
7249 let o = self.fbb_.end_table(self.start_);
7250 ::flatbuffers::WIPOffset::new(o.value())
7251 }
7252 }
7253
7254 impl ::core::fmt::Debug for ScanNodesOp<'_> {
7255 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7256 let mut ds = f.debug_struct("ScanNodesOp");
7257 ds.field("labels", &self.labels());
7258 ds.field("schema", &self.schema());
7259 ds.field("must_labels", &self.must_labels());
7260 ds.field("forbidden_labels", &self.forbidden_labels());
7261 ds.field("est_rows", &self.est_rows());
7262 ds.field("selectivity", &self.selectivity());
7263 ds.field("graph_ref", &self.graph_ref());
7264 ds.finish()
7265 }
7266 }
7267 pub enum ScanRelsOpOffset {}
7268 #[derive(Copy, Clone, PartialEq)]
7269
7270 pub struct ScanRelsOp<'a> {
7271 pub _tab: ::flatbuffers::Table<'a>,
7272 }
7273
7274 impl<'a> ::flatbuffers::Follow<'a> for ScanRelsOp<'a> {
7275 type Inner = ScanRelsOp<'a>;
7276 #[inline]
7277 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
7278 Self {
7279 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
7280 }
7281 }
7282 }
7283
7284 impl<'a> ScanRelsOp<'a> {
7285 pub const VT_TYPES: ::flatbuffers::VOffsetT = 4;
7286 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 6;
7287 pub const VT_SRC_LABELS: ::flatbuffers::VOffsetT = 8;
7288 pub const VT_DST_LABELS: ::flatbuffers::VOffsetT = 10;
7289 pub const VT_EST_ROWS: ::flatbuffers::VOffsetT = 12;
7290 pub const VT_SELECTIVITY: ::flatbuffers::VOffsetT = 14;
7291
7292 #[inline]
7293 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
7294 ScanRelsOp { _tab: table }
7295 }
7296 #[allow(unused_mut)]
7297 pub fn create<
7298 'bldr: 'args,
7299 'args: 'mut_bldr,
7300 'mut_bldr,
7301 A: ::flatbuffers::Allocator + 'bldr,
7302 >(
7303 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
7304 args: &'args ScanRelsOpArgs<'args>,
7305 ) -> ::flatbuffers::WIPOffset<ScanRelsOp<'bldr>> {
7306 let mut builder = ScanRelsOpBuilder::new(_fbb);
7307 builder.add_selectivity(args.selectivity);
7308 builder.add_est_rows(args.est_rows);
7309 if let Some(x) = args.dst_labels {
7310 builder.add_dst_labels(x);
7311 }
7312 if let Some(x) = args.src_labels {
7313 builder.add_src_labels(x);
7314 }
7315 if let Some(x) = args.schema {
7316 builder.add_schema(x);
7317 }
7318 if let Some(x) = args.types {
7319 builder.add_types(x);
7320 }
7321 builder.finish()
7322 }
7323
7324 #[inline]
7325 pub fn types(
7326 &self,
7327 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7328 unsafe {
7332 self._tab.get::<::flatbuffers::ForwardsUOffset<
7333 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7334 >>(ScanRelsOp::VT_TYPES, None)
7335 }
7336 }
7337 #[inline]
7338 pub fn schema(
7339 &self,
7340 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
7341 unsafe {
7345 self._tab.get::<::flatbuffers::ForwardsUOffset<
7346 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
7347 >>(ScanRelsOp::VT_SCHEMA, None)
7348 }
7349 }
7350 #[inline]
7351 pub fn src_labels(
7352 &self,
7353 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7354 unsafe {
7358 self._tab.get::<::flatbuffers::ForwardsUOffset<
7359 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7360 >>(ScanRelsOp::VT_SRC_LABELS, None)
7361 }
7362 }
7363 #[inline]
7364 pub fn dst_labels(
7365 &self,
7366 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7367 unsafe {
7371 self._tab.get::<::flatbuffers::ForwardsUOffset<
7372 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7373 >>(ScanRelsOp::VT_DST_LABELS, None)
7374 }
7375 }
7376 #[inline]
7377 pub fn est_rows(&self) -> i64 {
7378 unsafe {
7382 self._tab
7383 .get::<i64>(ScanRelsOp::VT_EST_ROWS, Some(-1))
7384 .unwrap()
7385 }
7386 }
7387 #[inline]
7388 pub fn selectivity(&self) -> f64 {
7389 unsafe {
7393 self._tab
7394 .get::<f64>(ScanRelsOp::VT_SELECTIVITY, Some(1.0))
7395 .unwrap()
7396 }
7397 }
7398 }
7399
7400 impl ::flatbuffers::Verifiable for ScanRelsOp<'_> {
7401 #[inline]
7402 fn run_verifier(
7403 v: &mut ::flatbuffers::Verifier,
7404 pos: usize,
7405 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
7406 v.visit_table(pos)?
7407 .visit_field::<::flatbuffers::ForwardsUOffset<
7408 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7409 >>("types", Self::VT_TYPES, false)?
7410 .visit_field::<::flatbuffers::ForwardsUOffset<
7411 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
7412 >>("schema", Self::VT_SCHEMA, false)?
7413 .visit_field::<::flatbuffers::ForwardsUOffset<
7414 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7415 >>("src_labels", Self::VT_SRC_LABELS, false)?
7416 .visit_field::<::flatbuffers::ForwardsUOffset<
7417 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7418 >>("dst_labels", Self::VT_DST_LABELS, false)?
7419 .visit_field::<i64>("est_rows", Self::VT_EST_ROWS, false)?
7420 .visit_field::<f64>("selectivity", Self::VT_SELECTIVITY, false)?
7421 .finish();
7422 Ok(())
7423 }
7424 }
7425 pub struct ScanRelsOpArgs<'a> {
7426 pub types: Option<
7427 ::flatbuffers::WIPOffset<
7428 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7429 >,
7430 >,
7431 pub schema: Option<
7432 ::flatbuffers::WIPOffset<
7433 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
7434 >,
7435 >,
7436 pub src_labels: Option<
7437 ::flatbuffers::WIPOffset<
7438 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7439 >,
7440 >,
7441 pub dst_labels: Option<
7442 ::flatbuffers::WIPOffset<
7443 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7444 >,
7445 >,
7446 pub est_rows: i64,
7447 pub selectivity: f64,
7448 }
7449 impl<'a> Default for ScanRelsOpArgs<'a> {
7450 #[inline]
7451 fn default() -> Self {
7452 ScanRelsOpArgs {
7453 types: None,
7454 schema: None,
7455 src_labels: None,
7456 dst_labels: None,
7457 est_rows: -1,
7458 selectivity: 1.0,
7459 }
7460 }
7461 }
7462
7463 pub struct ScanRelsOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
7464 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7465 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
7466 }
7467 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ScanRelsOpBuilder<'a, 'b, A> {
7468 #[inline]
7469 pub fn add_types(
7470 &mut self,
7471 types: ::flatbuffers::WIPOffset<
7472 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7473 >,
7474 ) {
7475 self.fbb_
7476 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ScanRelsOp::VT_TYPES, types);
7477 }
7478 #[inline]
7479 pub fn add_schema(
7480 &mut self,
7481 schema: ::flatbuffers::WIPOffset<
7482 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
7483 >,
7484 ) {
7485 self.fbb_
7486 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ScanRelsOp::VT_SCHEMA, schema);
7487 }
7488 #[inline]
7489 pub fn add_src_labels(
7490 &mut self,
7491 src_labels: ::flatbuffers::WIPOffset<
7492 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7493 >,
7494 ) {
7495 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7496 ScanRelsOp::VT_SRC_LABELS,
7497 src_labels,
7498 );
7499 }
7500 #[inline]
7501 pub fn add_dst_labels(
7502 &mut self,
7503 dst_labels: ::flatbuffers::WIPOffset<
7504 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7505 >,
7506 ) {
7507 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7508 ScanRelsOp::VT_DST_LABELS,
7509 dst_labels,
7510 );
7511 }
7512 #[inline]
7513 pub fn add_est_rows(&mut self, est_rows: i64) {
7514 self.fbb_
7515 .push_slot::<i64>(ScanRelsOp::VT_EST_ROWS, est_rows, -1);
7516 }
7517 #[inline]
7518 pub fn add_selectivity(&mut self, selectivity: f64) {
7519 self.fbb_
7520 .push_slot::<f64>(ScanRelsOp::VT_SELECTIVITY, selectivity, 1.0);
7521 }
7522 #[inline]
7523 pub fn new(
7524 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7525 ) -> ScanRelsOpBuilder<'a, 'b, A> {
7526 let start = _fbb.start_table();
7527 ScanRelsOpBuilder {
7528 fbb_: _fbb,
7529 start_: start,
7530 }
7531 }
7532 #[inline]
7533 pub fn finish(self) -> ::flatbuffers::WIPOffset<ScanRelsOp<'a>> {
7534 let o = self.fbb_.end_table(self.start_);
7535 ::flatbuffers::WIPOffset::new(o.value())
7536 }
7537 }
7538
7539 impl ::core::fmt::Debug for ScanRelsOp<'_> {
7540 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7541 let mut ds = f.debug_struct("ScanRelsOp");
7542 ds.field("types", &self.types());
7543 ds.field("schema", &self.schema());
7544 ds.field("src_labels", &self.src_labels());
7545 ds.field("dst_labels", &self.dst_labels());
7546 ds.field("est_rows", &self.est_rows());
7547 ds.field("selectivity", &self.selectivity());
7548 ds.finish()
7549 }
7550 }
7551 pub enum ExpandOpOffset {}
7552 #[derive(Copy, Clone, PartialEq)]
7553
7554 pub struct ExpandOp<'a> {
7555 pub _tab: ::flatbuffers::Table<'a>,
7556 }
7557
7558 impl<'a> ::flatbuffers::Follow<'a> for ExpandOp<'a> {
7559 type Inner = ExpandOp<'a>;
7560 #[inline]
7561 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
7562 Self {
7563 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
7564 }
7565 }
7566 }
7567
7568 impl<'a> ExpandOp<'a> {
7569 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
7570 pub const VT_SRC_COL: ::flatbuffers::VOffsetT = 6;
7571 pub const VT_TYPES: ::flatbuffers::VOffsetT = 8;
7572 pub const VT_DIR: ::flatbuffers::VOffsetT = 10;
7573 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 12;
7574 pub const VT_SRC_VAR: ::flatbuffers::VOffsetT = 14;
7575 pub const VT_REL_VAR: ::flatbuffers::VOffsetT = 16;
7576 pub const VT_DST_VAR: ::flatbuffers::VOffsetT = 18;
7577 pub const VT_LEGAL_SRC_LABELS: ::flatbuffers::VOffsetT = 20;
7578 pub const VT_LEGAL_DST_LABELS: ::flatbuffers::VOffsetT = 22;
7579 pub const VT_EST_DEGREE: ::flatbuffers::VOffsetT = 24;
7580 pub const VT_GRAPH_REF: ::flatbuffers::VOffsetT = 26;
7581
7582 #[inline]
7583 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
7584 ExpandOp { _tab: table }
7585 }
7586 #[allow(unused_mut)]
7587 pub fn create<
7588 'bldr: 'args,
7589 'args: 'mut_bldr,
7590 'mut_bldr,
7591 A: ::flatbuffers::Allocator + 'bldr,
7592 >(
7593 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
7594 args: &'args ExpandOpArgs<'args>,
7595 ) -> ::flatbuffers::WIPOffset<ExpandOp<'bldr>> {
7596 let mut builder = ExpandOpBuilder::new(_fbb);
7597 builder.add_est_degree(args.est_degree);
7598 if let Some(x) = args.graph_ref {
7599 builder.add_graph_ref(x);
7600 }
7601 if let Some(x) = args.legal_dst_labels {
7602 builder.add_legal_dst_labels(x);
7603 }
7604 if let Some(x) = args.legal_src_labels {
7605 builder.add_legal_src_labels(x);
7606 }
7607 if let Some(x) = args.dst_var {
7608 builder.add_dst_var(x);
7609 }
7610 if let Some(x) = args.rel_var {
7611 builder.add_rel_var(x);
7612 }
7613 if let Some(x) = args.src_var {
7614 builder.add_src_var(x);
7615 }
7616 if let Some(x) = args.schema {
7617 builder.add_schema(x);
7618 }
7619 if let Some(x) = args.types {
7620 builder.add_types(x);
7621 }
7622 builder.add_src_col(args.src_col);
7623 builder.add_input(args.input);
7624 builder.add_dir(args.dir);
7625 builder.finish()
7626 }
7627
7628 #[inline]
7629 pub fn input(&self) -> u32 {
7630 unsafe { self._tab.get::<u32>(ExpandOp::VT_INPUT, Some(0)).unwrap() }
7634 }
7635 #[inline]
7636 pub fn src_col(&self) -> u32 {
7637 unsafe { self._tab.get::<u32>(ExpandOp::VT_SRC_COL, Some(0)).unwrap() }
7641 }
7642 #[inline]
7643 pub fn types(
7644 &self,
7645 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7646 unsafe {
7650 self._tab.get::<::flatbuffers::ForwardsUOffset<
7651 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7652 >>(ExpandOp::VT_TYPES, None)
7653 }
7654 }
7655 #[inline]
7656 pub fn dir(&self) -> ExpandDir {
7657 unsafe {
7661 self._tab
7662 .get::<ExpandDir>(ExpandOp::VT_DIR, Some(ExpandDir::out))
7663 .unwrap()
7664 }
7665 }
7666 #[inline]
7667 pub fn schema(
7668 &self,
7669 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
7670 unsafe {
7674 self._tab.get::<::flatbuffers::ForwardsUOffset<
7675 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
7676 >>(ExpandOp::VT_SCHEMA, None)
7677 }
7678 }
7679 #[inline]
7680 pub fn src_var(&self) -> Option<&'a str> {
7681 unsafe {
7685 self._tab
7686 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandOp::VT_SRC_VAR, None)
7687 }
7688 }
7689 #[inline]
7690 pub fn rel_var(&self) -> Option<&'a str> {
7691 unsafe {
7695 self._tab
7696 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandOp::VT_REL_VAR, None)
7697 }
7698 }
7699 #[inline]
7700 pub fn dst_var(&self) -> Option<&'a str> {
7701 unsafe {
7705 self._tab
7706 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandOp::VT_DST_VAR, None)
7707 }
7708 }
7709 #[inline]
7710 pub fn legal_src_labels(
7711 &self,
7712 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7713 unsafe {
7717 self._tab.get::<::flatbuffers::ForwardsUOffset<
7718 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7719 >>(ExpandOp::VT_LEGAL_SRC_LABELS, None)
7720 }
7721 }
7722 #[inline]
7723 pub fn legal_dst_labels(
7724 &self,
7725 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
7726 unsafe {
7730 self._tab.get::<::flatbuffers::ForwardsUOffset<
7731 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7732 >>(ExpandOp::VT_LEGAL_DST_LABELS, None)
7733 }
7734 }
7735 #[inline]
7736 pub fn est_degree(&self) -> f64 {
7737 unsafe {
7741 self._tab
7742 .get::<f64>(ExpandOp::VT_EST_DEGREE, Some(-1.0))
7743 .unwrap()
7744 }
7745 }
7746 #[inline]
7747 pub fn graph_ref(&self) -> Option<&'a str> {
7748 unsafe {
7752 self._tab
7753 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandOp::VT_GRAPH_REF, None)
7754 }
7755 }
7756 }
7757
7758 impl ::flatbuffers::Verifiable for ExpandOp<'_> {
7759 #[inline]
7760 fn run_verifier(
7761 v: &mut ::flatbuffers::Verifier,
7762 pos: usize,
7763 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
7764 v.visit_table(pos)?
7765 .visit_field::<u32>("input", Self::VT_INPUT, false)?
7766 .visit_field::<u32>("src_col", Self::VT_SRC_COL, false)?
7767 .visit_field::<::flatbuffers::ForwardsUOffset<
7768 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7769 >>("types", Self::VT_TYPES, false)?
7770 .visit_field::<ExpandDir>("dir", Self::VT_DIR, false)?
7771 .visit_field::<::flatbuffers::ForwardsUOffset<
7772 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
7773 >>("schema", Self::VT_SCHEMA, false)?
7774 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
7775 "src_var",
7776 Self::VT_SRC_VAR,
7777 false,
7778 )?
7779 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
7780 "rel_var",
7781 Self::VT_REL_VAR,
7782 false,
7783 )?
7784 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
7785 "dst_var",
7786 Self::VT_DST_VAR,
7787 false,
7788 )?
7789 .visit_field::<::flatbuffers::ForwardsUOffset<
7790 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7791 >>("legal_src_labels", Self::VT_LEGAL_SRC_LABELS, false)?
7792 .visit_field::<::flatbuffers::ForwardsUOffset<
7793 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
7794 >>("legal_dst_labels", Self::VT_LEGAL_DST_LABELS, false)?
7795 .visit_field::<f64>("est_degree", Self::VT_EST_DEGREE, false)?
7796 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
7797 "graph_ref",
7798 Self::VT_GRAPH_REF,
7799 false,
7800 )?
7801 .finish();
7802 Ok(())
7803 }
7804 }
7805 pub struct ExpandOpArgs<'a> {
7806 pub input: u32,
7807 pub src_col: u32,
7808 pub types: Option<
7809 ::flatbuffers::WIPOffset<
7810 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7811 >,
7812 >,
7813 pub dir: ExpandDir,
7814 pub schema: Option<
7815 ::flatbuffers::WIPOffset<
7816 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
7817 >,
7818 >,
7819 pub src_var: Option<::flatbuffers::WIPOffset<&'a str>>,
7820 pub rel_var: Option<::flatbuffers::WIPOffset<&'a str>>,
7821 pub dst_var: Option<::flatbuffers::WIPOffset<&'a str>>,
7822 pub legal_src_labels: Option<
7823 ::flatbuffers::WIPOffset<
7824 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7825 >,
7826 >,
7827 pub legal_dst_labels: Option<
7828 ::flatbuffers::WIPOffset<
7829 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
7830 >,
7831 >,
7832 pub est_degree: f64,
7833 pub graph_ref: Option<::flatbuffers::WIPOffset<&'a str>>,
7834 }
7835 impl<'a> Default for ExpandOpArgs<'a> {
7836 #[inline]
7837 fn default() -> Self {
7838 ExpandOpArgs {
7839 input: 0,
7840 src_col: 0,
7841 types: None,
7842 dir: ExpandDir::out,
7843 schema: None,
7844 src_var: None,
7845 rel_var: None,
7846 dst_var: None,
7847 legal_src_labels: None,
7848 legal_dst_labels: None,
7849 est_degree: -1.0,
7850 graph_ref: None,
7851 }
7852 }
7853 }
7854
7855 pub struct ExpandOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
7856 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7857 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
7858 }
7859 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ExpandOpBuilder<'a, 'b, A> {
7860 #[inline]
7861 pub fn add_input(&mut self, input: u32) {
7862 self.fbb_.push_slot::<u32>(ExpandOp::VT_INPUT, input, 0);
7863 }
7864 #[inline]
7865 pub fn add_src_col(&mut self, src_col: u32) {
7866 self.fbb_.push_slot::<u32>(ExpandOp::VT_SRC_COL, src_col, 0);
7867 }
7868 #[inline]
7869 pub fn add_types(
7870 &mut self,
7871 types: ::flatbuffers::WIPOffset<
7872 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7873 >,
7874 ) {
7875 self.fbb_
7876 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_TYPES, types);
7877 }
7878 #[inline]
7879 pub fn add_dir(&mut self, dir: ExpandDir) {
7880 self.fbb_
7881 .push_slot::<ExpandDir>(ExpandOp::VT_DIR, dir, ExpandDir::out);
7882 }
7883 #[inline]
7884 pub fn add_schema(
7885 &mut self,
7886 schema: ::flatbuffers::WIPOffset<
7887 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
7888 >,
7889 ) {
7890 self.fbb_
7891 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_SCHEMA, schema);
7892 }
7893 #[inline]
7894 pub fn add_src_var(&mut self, src_var: ::flatbuffers::WIPOffset<&'b str>) {
7895 self.fbb_
7896 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_SRC_VAR, src_var);
7897 }
7898 #[inline]
7899 pub fn add_rel_var(&mut self, rel_var: ::flatbuffers::WIPOffset<&'b str>) {
7900 self.fbb_
7901 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_REL_VAR, rel_var);
7902 }
7903 #[inline]
7904 pub fn add_dst_var(&mut self, dst_var: ::flatbuffers::WIPOffset<&'b str>) {
7905 self.fbb_
7906 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_DST_VAR, dst_var);
7907 }
7908 #[inline]
7909 pub fn add_legal_src_labels(
7910 &mut self,
7911 legal_src_labels: ::flatbuffers::WIPOffset<
7912 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7913 >,
7914 ) {
7915 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7916 ExpandOp::VT_LEGAL_SRC_LABELS,
7917 legal_src_labels,
7918 );
7919 }
7920 #[inline]
7921 pub fn add_legal_dst_labels(
7922 &mut self,
7923 legal_dst_labels: ::flatbuffers::WIPOffset<
7924 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
7925 >,
7926 ) {
7927 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
7928 ExpandOp::VT_LEGAL_DST_LABELS,
7929 legal_dst_labels,
7930 );
7931 }
7932 #[inline]
7933 pub fn add_est_degree(&mut self, est_degree: f64) {
7934 self.fbb_
7935 .push_slot::<f64>(ExpandOp::VT_EST_DEGREE, est_degree, -1.0);
7936 }
7937 #[inline]
7938 pub fn add_graph_ref(&mut self, graph_ref: ::flatbuffers::WIPOffset<&'b str>) {
7939 self.fbb_
7940 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandOp::VT_GRAPH_REF, graph_ref);
7941 }
7942 #[inline]
7943 pub fn new(
7944 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
7945 ) -> ExpandOpBuilder<'a, 'b, A> {
7946 let start = _fbb.start_table();
7947 ExpandOpBuilder {
7948 fbb_: _fbb,
7949 start_: start,
7950 }
7951 }
7952 #[inline]
7953 pub fn finish(self) -> ::flatbuffers::WIPOffset<ExpandOp<'a>> {
7954 let o = self.fbb_.end_table(self.start_);
7955 ::flatbuffers::WIPOffset::new(o.value())
7956 }
7957 }
7958
7959 impl ::core::fmt::Debug for ExpandOp<'_> {
7960 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7961 let mut ds = f.debug_struct("ExpandOp");
7962 ds.field("input", &self.input());
7963 ds.field("src_col", &self.src_col());
7964 ds.field("types", &self.types());
7965 ds.field("dir", &self.dir());
7966 ds.field("schema", &self.schema());
7967 ds.field("src_var", &self.src_var());
7968 ds.field("rel_var", &self.rel_var());
7969 ds.field("dst_var", &self.dst_var());
7970 ds.field("legal_src_labels", &self.legal_src_labels());
7971 ds.field("legal_dst_labels", &self.legal_dst_labels());
7972 ds.field("est_degree", &self.est_degree());
7973 ds.field("graph_ref", &self.graph_ref());
7974 ds.finish()
7975 }
7976 }
7977 pub enum OptionalExpandOpOffset {}
7978 #[derive(Copy, Clone, PartialEq)]
7979
7980 pub struct OptionalExpandOp<'a> {
7981 pub _tab: ::flatbuffers::Table<'a>,
7982 }
7983
7984 impl<'a> ::flatbuffers::Follow<'a> for OptionalExpandOp<'a> {
7985 type Inner = OptionalExpandOp<'a>;
7986 #[inline]
7987 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
7988 Self {
7989 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
7990 }
7991 }
7992 }
7993
7994 impl<'a> OptionalExpandOp<'a> {
7995 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
7996 pub const VT_SRC_COL: ::flatbuffers::VOffsetT = 6;
7997 pub const VT_TYPES: ::flatbuffers::VOffsetT = 8;
7998 pub const VT_DIR: ::flatbuffers::VOffsetT = 10;
7999 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 12;
8000 pub const VT_SRC_VAR: ::flatbuffers::VOffsetT = 14;
8001 pub const VT_REL_VAR: ::flatbuffers::VOffsetT = 16;
8002 pub const VT_DST_VAR: ::flatbuffers::VOffsetT = 18;
8003 pub const VT_LEGAL_SRC_LABELS: ::flatbuffers::VOffsetT = 20;
8004 pub const VT_LEGAL_DST_LABELS: ::flatbuffers::VOffsetT = 22;
8005 pub const VT_GRAPH_REF: ::flatbuffers::VOffsetT = 24;
8006
8007 #[inline]
8008 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
8009 OptionalExpandOp { _tab: table }
8010 }
8011 #[allow(unused_mut)]
8012 pub fn create<
8013 'bldr: 'args,
8014 'args: 'mut_bldr,
8015 'mut_bldr,
8016 A: ::flatbuffers::Allocator + 'bldr,
8017 >(
8018 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
8019 args: &'args OptionalExpandOpArgs<'args>,
8020 ) -> ::flatbuffers::WIPOffset<OptionalExpandOp<'bldr>> {
8021 let mut builder = OptionalExpandOpBuilder::new(_fbb);
8022 if let Some(x) = args.graph_ref {
8023 builder.add_graph_ref(x);
8024 }
8025 if let Some(x) = args.legal_dst_labels {
8026 builder.add_legal_dst_labels(x);
8027 }
8028 if let Some(x) = args.legal_src_labels {
8029 builder.add_legal_src_labels(x);
8030 }
8031 if let Some(x) = args.dst_var {
8032 builder.add_dst_var(x);
8033 }
8034 if let Some(x) = args.rel_var {
8035 builder.add_rel_var(x);
8036 }
8037 if let Some(x) = args.src_var {
8038 builder.add_src_var(x);
8039 }
8040 if let Some(x) = args.schema {
8041 builder.add_schema(x);
8042 }
8043 if let Some(x) = args.types {
8044 builder.add_types(x);
8045 }
8046 builder.add_src_col(args.src_col);
8047 builder.add_input(args.input);
8048 builder.add_dir(args.dir);
8049 builder.finish()
8050 }
8051
8052 #[inline]
8053 pub fn input(&self) -> u32 {
8054 unsafe {
8058 self._tab
8059 .get::<u32>(OptionalExpandOp::VT_INPUT, Some(0))
8060 .unwrap()
8061 }
8062 }
8063 #[inline]
8064 pub fn src_col(&self) -> u32 {
8065 unsafe {
8069 self._tab
8070 .get::<u32>(OptionalExpandOp::VT_SRC_COL, Some(0))
8071 .unwrap()
8072 }
8073 }
8074 #[inline]
8075 pub fn types(
8076 &self,
8077 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8078 unsafe {
8082 self._tab.get::<::flatbuffers::ForwardsUOffset<
8083 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8084 >>(OptionalExpandOp::VT_TYPES, None)
8085 }
8086 }
8087 #[inline]
8088 pub fn dir(&self) -> ExpandDir {
8089 unsafe {
8093 self._tab
8094 .get::<ExpandDir>(OptionalExpandOp::VT_DIR, Some(ExpandDir::out))
8095 .unwrap()
8096 }
8097 }
8098 #[inline]
8099 pub fn schema(
8100 &self,
8101 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
8102 unsafe {
8106 self._tab.get::<::flatbuffers::ForwardsUOffset<
8107 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
8108 >>(OptionalExpandOp::VT_SCHEMA, None)
8109 }
8110 }
8111 #[inline]
8112 pub fn src_var(&self) -> Option<&'a str> {
8113 unsafe {
8117 self._tab
8118 .get::<::flatbuffers::ForwardsUOffset<&str>>(OptionalExpandOp::VT_SRC_VAR, None)
8119 }
8120 }
8121 #[inline]
8122 pub fn rel_var(&self) -> Option<&'a str> {
8123 unsafe {
8127 self._tab
8128 .get::<::flatbuffers::ForwardsUOffset<&str>>(OptionalExpandOp::VT_REL_VAR, None)
8129 }
8130 }
8131 #[inline]
8132 pub fn dst_var(&self) -> Option<&'a str> {
8133 unsafe {
8137 self._tab
8138 .get::<::flatbuffers::ForwardsUOffset<&str>>(OptionalExpandOp::VT_DST_VAR, None)
8139 }
8140 }
8141 #[inline]
8142 pub fn legal_src_labels(
8143 &self,
8144 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8145 unsafe {
8149 self._tab.get::<::flatbuffers::ForwardsUOffset<
8150 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8151 >>(OptionalExpandOp::VT_LEGAL_SRC_LABELS, None)
8152 }
8153 }
8154 #[inline]
8155 pub fn legal_dst_labels(
8156 &self,
8157 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8158 unsafe {
8162 self._tab.get::<::flatbuffers::ForwardsUOffset<
8163 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8164 >>(OptionalExpandOp::VT_LEGAL_DST_LABELS, None)
8165 }
8166 }
8167 #[inline]
8168 pub fn graph_ref(&self) -> Option<&'a str> {
8169 unsafe {
8173 self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(
8174 OptionalExpandOp::VT_GRAPH_REF,
8175 None,
8176 )
8177 }
8178 }
8179 }
8180
8181 impl ::flatbuffers::Verifiable for OptionalExpandOp<'_> {
8182 #[inline]
8183 fn run_verifier(
8184 v: &mut ::flatbuffers::Verifier,
8185 pos: usize,
8186 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
8187 v.visit_table(pos)?
8188 .visit_field::<u32>("input", Self::VT_INPUT, false)?
8189 .visit_field::<u32>("src_col", Self::VT_SRC_COL, false)?
8190 .visit_field::<::flatbuffers::ForwardsUOffset<
8191 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8192 >>("types", Self::VT_TYPES, false)?
8193 .visit_field::<ExpandDir>("dir", Self::VT_DIR, false)?
8194 .visit_field::<::flatbuffers::ForwardsUOffset<
8195 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
8196 >>("schema", Self::VT_SCHEMA, false)?
8197 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8198 "src_var",
8199 Self::VT_SRC_VAR,
8200 false,
8201 )?
8202 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8203 "rel_var",
8204 Self::VT_REL_VAR,
8205 false,
8206 )?
8207 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8208 "dst_var",
8209 Self::VT_DST_VAR,
8210 false,
8211 )?
8212 .visit_field::<::flatbuffers::ForwardsUOffset<
8213 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8214 >>("legal_src_labels", Self::VT_LEGAL_SRC_LABELS, false)?
8215 .visit_field::<::flatbuffers::ForwardsUOffset<
8216 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8217 >>("legal_dst_labels", Self::VT_LEGAL_DST_LABELS, false)?
8218 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8219 "graph_ref",
8220 Self::VT_GRAPH_REF,
8221 false,
8222 )?
8223 .finish();
8224 Ok(())
8225 }
8226 }
8227 pub struct OptionalExpandOpArgs<'a> {
8228 pub input: u32,
8229 pub src_col: u32,
8230 pub types: Option<
8231 ::flatbuffers::WIPOffset<
8232 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8233 >,
8234 >,
8235 pub dir: ExpandDir,
8236 pub schema: Option<
8237 ::flatbuffers::WIPOffset<
8238 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
8239 >,
8240 >,
8241 pub src_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8242 pub rel_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8243 pub dst_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8244 pub legal_src_labels: Option<
8245 ::flatbuffers::WIPOffset<
8246 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8247 >,
8248 >,
8249 pub legal_dst_labels: Option<
8250 ::flatbuffers::WIPOffset<
8251 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8252 >,
8253 >,
8254 pub graph_ref: Option<::flatbuffers::WIPOffset<&'a str>>,
8255 }
8256 impl<'a> Default for OptionalExpandOpArgs<'a> {
8257 #[inline]
8258 fn default() -> Self {
8259 OptionalExpandOpArgs {
8260 input: 0,
8261 src_col: 0,
8262 types: None,
8263 dir: ExpandDir::out,
8264 schema: None,
8265 src_var: None,
8266 rel_var: None,
8267 dst_var: None,
8268 legal_src_labels: None,
8269 legal_dst_labels: None,
8270 graph_ref: None,
8271 }
8272 }
8273 }
8274
8275 pub struct OptionalExpandOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
8276 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
8277 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
8278 }
8279 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> OptionalExpandOpBuilder<'a, 'b, A> {
8280 #[inline]
8281 pub fn add_input(&mut self, input: u32) {
8282 self.fbb_
8283 .push_slot::<u32>(OptionalExpandOp::VT_INPUT, input, 0);
8284 }
8285 #[inline]
8286 pub fn add_src_col(&mut self, src_col: u32) {
8287 self.fbb_
8288 .push_slot::<u32>(OptionalExpandOp::VT_SRC_COL, src_col, 0);
8289 }
8290 #[inline]
8291 pub fn add_types(
8292 &mut self,
8293 types: ::flatbuffers::WIPOffset<
8294 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8295 >,
8296 ) {
8297 self.fbb_
8298 .push_slot_always::<::flatbuffers::WIPOffset<_>>(OptionalExpandOp::VT_TYPES, types);
8299 }
8300 #[inline]
8301 pub fn add_dir(&mut self, dir: ExpandDir) {
8302 self.fbb_
8303 .push_slot::<ExpandDir>(OptionalExpandOp::VT_DIR, dir, ExpandDir::out);
8304 }
8305 #[inline]
8306 pub fn add_schema(
8307 &mut self,
8308 schema: ::flatbuffers::WIPOffset<
8309 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
8310 >,
8311 ) {
8312 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8313 OptionalExpandOp::VT_SCHEMA,
8314 schema,
8315 );
8316 }
8317 #[inline]
8318 pub fn add_src_var(&mut self, src_var: ::flatbuffers::WIPOffset<&'b str>) {
8319 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8320 OptionalExpandOp::VT_SRC_VAR,
8321 src_var,
8322 );
8323 }
8324 #[inline]
8325 pub fn add_rel_var(&mut self, rel_var: ::flatbuffers::WIPOffset<&'b str>) {
8326 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8327 OptionalExpandOp::VT_REL_VAR,
8328 rel_var,
8329 );
8330 }
8331 #[inline]
8332 pub fn add_dst_var(&mut self, dst_var: ::flatbuffers::WIPOffset<&'b str>) {
8333 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8334 OptionalExpandOp::VT_DST_VAR,
8335 dst_var,
8336 );
8337 }
8338 #[inline]
8339 pub fn add_legal_src_labels(
8340 &mut self,
8341 legal_src_labels: ::flatbuffers::WIPOffset<
8342 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8343 >,
8344 ) {
8345 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8346 OptionalExpandOp::VT_LEGAL_SRC_LABELS,
8347 legal_src_labels,
8348 );
8349 }
8350 #[inline]
8351 pub fn add_legal_dst_labels(
8352 &mut self,
8353 legal_dst_labels: ::flatbuffers::WIPOffset<
8354 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8355 >,
8356 ) {
8357 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8358 OptionalExpandOp::VT_LEGAL_DST_LABELS,
8359 legal_dst_labels,
8360 );
8361 }
8362 #[inline]
8363 pub fn add_graph_ref(&mut self, graph_ref: ::flatbuffers::WIPOffset<&'b str>) {
8364 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8365 OptionalExpandOp::VT_GRAPH_REF,
8366 graph_ref,
8367 );
8368 }
8369 #[inline]
8370 pub fn new(
8371 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
8372 ) -> OptionalExpandOpBuilder<'a, 'b, A> {
8373 let start = _fbb.start_table();
8374 OptionalExpandOpBuilder {
8375 fbb_: _fbb,
8376 start_: start,
8377 }
8378 }
8379 #[inline]
8380 pub fn finish(self) -> ::flatbuffers::WIPOffset<OptionalExpandOp<'a>> {
8381 let o = self.fbb_.end_table(self.start_);
8382 ::flatbuffers::WIPOffset::new(o.value())
8383 }
8384 }
8385
8386 impl ::core::fmt::Debug for OptionalExpandOp<'_> {
8387 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
8388 let mut ds = f.debug_struct("OptionalExpandOp");
8389 ds.field("input", &self.input());
8390 ds.field("src_col", &self.src_col());
8391 ds.field("types", &self.types());
8392 ds.field("dir", &self.dir());
8393 ds.field("schema", &self.schema());
8394 ds.field("src_var", &self.src_var());
8395 ds.field("rel_var", &self.rel_var());
8396 ds.field("dst_var", &self.dst_var());
8397 ds.field("legal_src_labels", &self.legal_src_labels());
8398 ds.field("legal_dst_labels", &self.legal_dst_labels());
8399 ds.field("graph_ref", &self.graph_ref());
8400 ds.finish()
8401 }
8402 }
8403 pub enum SemiExpandOpOffset {}
8404 #[derive(Copy, Clone, PartialEq)]
8405
8406 pub struct SemiExpandOp<'a> {
8407 pub _tab: ::flatbuffers::Table<'a>,
8408 }
8409
8410 impl<'a> ::flatbuffers::Follow<'a> for SemiExpandOp<'a> {
8411 type Inner = SemiExpandOp<'a>;
8412 #[inline]
8413 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
8414 Self {
8415 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
8416 }
8417 }
8418 }
8419
8420 impl<'a> SemiExpandOp<'a> {
8421 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
8422 pub const VT_SRC_COL: ::flatbuffers::VOffsetT = 6;
8423 pub const VT_TYPES: ::flatbuffers::VOffsetT = 8;
8424 pub const VT_DIR: ::flatbuffers::VOffsetT = 10;
8425 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 12;
8426 pub const VT_LEGAL_SRC_LABELS: ::flatbuffers::VOffsetT = 14;
8427 pub const VT_LEGAL_DST_LABELS: ::flatbuffers::VOffsetT = 16;
8428
8429 #[inline]
8430 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
8431 SemiExpandOp { _tab: table }
8432 }
8433 #[allow(unused_mut)]
8434 pub fn create<
8435 'bldr: 'args,
8436 'args: 'mut_bldr,
8437 'mut_bldr,
8438 A: ::flatbuffers::Allocator + 'bldr,
8439 >(
8440 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
8441 args: &'args SemiExpandOpArgs<'args>,
8442 ) -> ::flatbuffers::WIPOffset<SemiExpandOp<'bldr>> {
8443 let mut builder = SemiExpandOpBuilder::new(_fbb);
8444 if let Some(x) = args.legal_dst_labels {
8445 builder.add_legal_dst_labels(x);
8446 }
8447 if let Some(x) = args.legal_src_labels {
8448 builder.add_legal_src_labels(x);
8449 }
8450 if let Some(x) = args.schema {
8451 builder.add_schema(x);
8452 }
8453 if let Some(x) = args.types {
8454 builder.add_types(x);
8455 }
8456 builder.add_src_col(args.src_col);
8457 builder.add_input(args.input);
8458 builder.add_dir(args.dir);
8459 builder.finish()
8460 }
8461
8462 #[inline]
8463 pub fn input(&self) -> u32 {
8464 unsafe {
8468 self._tab
8469 .get::<u32>(SemiExpandOp::VT_INPUT, Some(0))
8470 .unwrap()
8471 }
8472 }
8473 #[inline]
8474 pub fn src_col(&self) -> u32 {
8475 unsafe {
8479 self._tab
8480 .get::<u32>(SemiExpandOp::VT_SRC_COL, Some(0))
8481 .unwrap()
8482 }
8483 }
8484 #[inline]
8485 pub fn types(
8486 &self,
8487 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8488 unsafe {
8492 self._tab.get::<::flatbuffers::ForwardsUOffset<
8493 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8494 >>(SemiExpandOp::VT_TYPES, None)
8495 }
8496 }
8497 #[inline]
8498 pub fn dir(&self) -> ExpandDir {
8499 unsafe {
8503 self._tab
8504 .get::<ExpandDir>(SemiExpandOp::VT_DIR, Some(ExpandDir::out))
8505 .unwrap()
8506 }
8507 }
8508 #[inline]
8509 pub fn schema(
8510 &self,
8511 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
8512 unsafe {
8516 self._tab.get::<::flatbuffers::ForwardsUOffset<
8517 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
8518 >>(SemiExpandOp::VT_SCHEMA, None)
8519 }
8520 }
8521 #[inline]
8522 pub fn legal_src_labels(
8523 &self,
8524 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8525 unsafe {
8529 self._tab.get::<::flatbuffers::ForwardsUOffset<
8530 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8531 >>(SemiExpandOp::VT_LEGAL_SRC_LABELS, None)
8532 }
8533 }
8534 #[inline]
8535 pub fn legal_dst_labels(
8536 &self,
8537 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8538 unsafe {
8542 self._tab.get::<::flatbuffers::ForwardsUOffset<
8543 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8544 >>(SemiExpandOp::VT_LEGAL_DST_LABELS, None)
8545 }
8546 }
8547 }
8548
8549 impl ::flatbuffers::Verifiable for SemiExpandOp<'_> {
8550 #[inline]
8551 fn run_verifier(
8552 v: &mut ::flatbuffers::Verifier,
8553 pos: usize,
8554 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
8555 v.visit_table(pos)?
8556 .visit_field::<u32>("input", Self::VT_INPUT, false)?
8557 .visit_field::<u32>("src_col", Self::VT_SRC_COL, false)?
8558 .visit_field::<::flatbuffers::ForwardsUOffset<
8559 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8560 >>("types", Self::VT_TYPES, false)?
8561 .visit_field::<ExpandDir>("dir", Self::VT_DIR, false)?
8562 .visit_field::<::flatbuffers::ForwardsUOffset<
8563 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
8564 >>("schema", Self::VT_SCHEMA, false)?
8565 .visit_field::<::flatbuffers::ForwardsUOffset<
8566 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8567 >>("legal_src_labels", Self::VT_LEGAL_SRC_LABELS, false)?
8568 .visit_field::<::flatbuffers::ForwardsUOffset<
8569 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8570 >>("legal_dst_labels", Self::VT_LEGAL_DST_LABELS, false)?
8571 .finish();
8572 Ok(())
8573 }
8574 }
8575 pub struct SemiExpandOpArgs<'a> {
8576 pub input: u32,
8577 pub src_col: u32,
8578 pub types: Option<
8579 ::flatbuffers::WIPOffset<
8580 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8581 >,
8582 >,
8583 pub dir: ExpandDir,
8584 pub schema: Option<
8585 ::flatbuffers::WIPOffset<
8586 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
8587 >,
8588 >,
8589 pub legal_src_labels: Option<
8590 ::flatbuffers::WIPOffset<
8591 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8592 >,
8593 >,
8594 pub legal_dst_labels: Option<
8595 ::flatbuffers::WIPOffset<
8596 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8597 >,
8598 >,
8599 }
8600 impl<'a> Default for SemiExpandOpArgs<'a> {
8601 #[inline]
8602 fn default() -> Self {
8603 SemiExpandOpArgs {
8604 input: 0,
8605 src_col: 0,
8606 types: None,
8607 dir: ExpandDir::out,
8608 schema: None,
8609 legal_src_labels: None,
8610 legal_dst_labels: None,
8611 }
8612 }
8613 }
8614
8615 pub struct SemiExpandOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
8616 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
8617 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
8618 }
8619 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> SemiExpandOpBuilder<'a, 'b, A> {
8620 #[inline]
8621 pub fn add_input(&mut self, input: u32) {
8622 self.fbb_.push_slot::<u32>(SemiExpandOp::VT_INPUT, input, 0);
8623 }
8624 #[inline]
8625 pub fn add_src_col(&mut self, src_col: u32) {
8626 self.fbb_
8627 .push_slot::<u32>(SemiExpandOp::VT_SRC_COL, src_col, 0);
8628 }
8629 #[inline]
8630 pub fn add_types(
8631 &mut self,
8632 types: ::flatbuffers::WIPOffset<
8633 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8634 >,
8635 ) {
8636 self.fbb_
8637 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SemiExpandOp::VT_TYPES, types);
8638 }
8639 #[inline]
8640 pub fn add_dir(&mut self, dir: ExpandDir) {
8641 self.fbb_
8642 .push_slot::<ExpandDir>(SemiExpandOp::VT_DIR, dir, ExpandDir::out);
8643 }
8644 #[inline]
8645 pub fn add_schema(
8646 &mut self,
8647 schema: ::flatbuffers::WIPOffset<
8648 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
8649 >,
8650 ) {
8651 self.fbb_
8652 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SemiExpandOp::VT_SCHEMA, schema);
8653 }
8654 #[inline]
8655 pub fn add_legal_src_labels(
8656 &mut self,
8657 legal_src_labels: ::flatbuffers::WIPOffset<
8658 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8659 >,
8660 ) {
8661 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8662 SemiExpandOp::VT_LEGAL_SRC_LABELS,
8663 legal_src_labels,
8664 );
8665 }
8666 #[inline]
8667 pub fn add_legal_dst_labels(
8668 &mut self,
8669 legal_dst_labels: ::flatbuffers::WIPOffset<
8670 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
8671 >,
8672 ) {
8673 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
8674 SemiExpandOp::VT_LEGAL_DST_LABELS,
8675 legal_dst_labels,
8676 );
8677 }
8678 #[inline]
8679 pub fn new(
8680 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
8681 ) -> SemiExpandOpBuilder<'a, 'b, A> {
8682 let start = _fbb.start_table();
8683 SemiExpandOpBuilder {
8684 fbb_: _fbb,
8685 start_: start,
8686 }
8687 }
8688 #[inline]
8689 pub fn finish(self) -> ::flatbuffers::WIPOffset<SemiExpandOp<'a>> {
8690 let o = self.fbb_.end_table(self.start_);
8691 ::flatbuffers::WIPOffset::new(o.value())
8692 }
8693 }
8694
8695 impl ::core::fmt::Debug for SemiExpandOp<'_> {
8696 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
8697 let mut ds = f.debug_struct("SemiExpandOp");
8698 ds.field("input", &self.input());
8699 ds.field("src_col", &self.src_col());
8700 ds.field("types", &self.types());
8701 ds.field("dir", &self.dir());
8702 ds.field("schema", &self.schema());
8703 ds.field("legal_src_labels", &self.legal_src_labels());
8704 ds.field("legal_dst_labels", &self.legal_dst_labels());
8705 ds.finish()
8706 }
8707 }
8708 pub enum ExpandVarLenOpOffset {}
8709 #[derive(Copy, Clone, PartialEq)]
8710
8711 pub struct ExpandVarLenOp<'a> {
8712 pub _tab: ::flatbuffers::Table<'a>,
8713 }
8714
8715 impl<'a> ::flatbuffers::Follow<'a> for ExpandVarLenOp<'a> {
8716 type Inner = ExpandVarLenOp<'a>;
8717 #[inline]
8718 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
8719 Self {
8720 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
8721 }
8722 }
8723 }
8724
8725 impl<'a> ExpandVarLenOp<'a> {
8726 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
8727 pub const VT_SRC_COL: ::flatbuffers::VOffsetT = 6;
8728 pub const VT_TYPES: ::flatbuffers::VOffsetT = 8;
8729 pub const VT_DIR: ::flatbuffers::VOffsetT = 10;
8730 pub const VT_MIN_HOPS: ::flatbuffers::VOffsetT = 12;
8731 pub const VT_MAX_HOPS: ::flatbuffers::VOffsetT = 14;
8732 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 16;
8733 pub const VT_SRC_VAR: ::flatbuffers::VOffsetT = 18;
8734 pub const VT_PATH_VAR: ::flatbuffers::VOffsetT = 20;
8735 pub const VT_DST_VAR: ::flatbuffers::VOffsetT = 22;
8736 pub const VT_GRAPH_REF: ::flatbuffers::VOffsetT = 24;
8737
8738 #[inline]
8739 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
8740 ExpandVarLenOp { _tab: table }
8741 }
8742 #[allow(unused_mut)]
8743 pub fn create<
8744 'bldr: 'args,
8745 'args: 'mut_bldr,
8746 'mut_bldr,
8747 A: ::flatbuffers::Allocator + 'bldr,
8748 >(
8749 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
8750 args: &'args ExpandVarLenOpArgs<'args>,
8751 ) -> ::flatbuffers::WIPOffset<ExpandVarLenOp<'bldr>> {
8752 let mut builder = ExpandVarLenOpBuilder::new(_fbb);
8753 if let Some(x) = args.graph_ref {
8754 builder.add_graph_ref(x);
8755 }
8756 if let Some(x) = args.dst_var {
8757 builder.add_dst_var(x);
8758 }
8759 if let Some(x) = args.path_var {
8760 builder.add_path_var(x);
8761 }
8762 if let Some(x) = args.src_var {
8763 builder.add_src_var(x);
8764 }
8765 if let Some(x) = args.schema {
8766 builder.add_schema(x);
8767 }
8768 builder.add_max_hops(args.max_hops);
8769 builder.add_min_hops(args.min_hops);
8770 if let Some(x) = args.types {
8771 builder.add_types(x);
8772 }
8773 builder.add_src_col(args.src_col);
8774 builder.add_input(args.input);
8775 builder.add_dir(args.dir);
8776 builder.finish()
8777 }
8778
8779 #[inline]
8780 pub fn input(&self) -> u32 {
8781 unsafe {
8785 self._tab
8786 .get::<u32>(ExpandVarLenOp::VT_INPUT, Some(0))
8787 .unwrap()
8788 }
8789 }
8790 #[inline]
8791 pub fn src_col(&self) -> u32 {
8792 unsafe {
8796 self._tab
8797 .get::<u32>(ExpandVarLenOp::VT_SRC_COL, Some(0))
8798 .unwrap()
8799 }
8800 }
8801 #[inline]
8802 pub fn types(
8803 &self,
8804 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
8805 unsafe {
8809 self._tab.get::<::flatbuffers::ForwardsUOffset<
8810 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8811 >>(ExpandVarLenOp::VT_TYPES, None)
8812 }
8813 }
8814 #[inline]
8815 pub fn dir(&self) -> ExpandDir {
8816 unsafe {
8820 self._tab
8821 .get::<ExpandDir>(ExpandVarLenOp::VT_DIR, Some(ExpandDir::out))
8822 .unwrap()
8823 }
8824 }
8825 #[inline]
8826 pub fn min_hops(&self) -> i32 {
8827 unsafe {
8831 self._tab
8832 .get::<i32>(ExpandVarLenOp::VT_MIN_HOPS, Some(0))
8833 .unwrap()
8834 }
8835 }
8836 #[inline]
8837 pub fn max_hops(&self) -> i32 {
8838 unsafe {
8842 self._tab
8843 .get::<i32>(ExpandVarLenOp::VT_MAX_HOPS, Some(0))
8844 .unwrap()
8845 }
8846 }
8847 #[inline]
8848 pub fn schema(
8849 &self,
8850 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
8851 unsafe {
8855 self._tab.get::<::flatbuffers::ForwardsUOffset<
8856 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
8857 >>(ExpandVarLenOp::VT_SCHEMA, None)
8858 }
8859 }
8860 #[inline]
8861 pub fn src_var(&self) -> Option<&'a str> {
8862 unsafe {
8866 self._tab
8867 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandVarLenOp::VT_SRC_VAR, None)
8868 }
8869 }
8870 #[inline]
8871 pub fn path_var(&self) -> Option<&'a str> {
8872 unsafe {
8876 self._tab
8877 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandVarLenOp::VT_PATH_VAR, None)
8878 }
8879 }
8880 #[inline]
8881 pub fn dst_var(&self) -> Option<&'a str> {
8882 unsafe {
8886 self._tab
8887 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandVarLenOp::VT_DST_VAR, None)
8888 }
8889 }
8890 #[inline]
8891 pub fn graph_ref(&self) -> Option<&'a str> {
8892 unsafe {
8896 self._tab
8897 .get::<::flatbuffers::ForwardsUOffset<&str>>(ExpandVarLenOp::VT_GRAPH_REF, None)
8898 }
8899 }
8900 }
8901
8902 impl ::flatbuffers::Verifiable for ExpandVarLenOp<'_> {
8903 #[inline]
8904 fn run_verifier(
8905 v: &mut ::flatbuffers::Verifier,
8906 pos: usize,
8907 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
8908 v.visit_table(pos)?
8909 .visit_field::<u32>("input", Self::VT_INPUT, false)?
8910 .visit_field::<u32>("src_col", Self::VT_SRC_COL, false)?
8911 .visit_field::<::flatbuffers::ForwardsUOffset<
8912 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
8913 >>("types", Self::VT_TYPES, false)?
8914 .visit_field::<ExpandDir>("dir", Self::VT_DIR, false)?
8915 .visit_field::<i32>("min_hops", Self::VT_MIN_HOPS, false)?
8916 .visit_field::<i32>("max_hops", Self::VT_MAX_HOPS, false)?
8917 .visit_field::<::flatbuffers::ForwardsUOffset<
8918 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
8919 >>("schema", Self::VT_SCHEMA, false)?
8920 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8921 "src_var",
8922 Self::VT_SRC_VAR,
8923 false,
8924 )?
8925 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8926 "path_var",
8927 Self::VT_PATH_VAR,
8928 false,
8929 )?
8930 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8931 "dst_var",
8932 Self::VT_DST_VAR,
8933 false,
8934 )?
8935 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
8936 "graph_ref",
8937 Self::VT_GRAPH_REF,
8938 false,
8939 )?
8940 .finish();
8941 Ok(())
8942 }
8943 }
8944 pub struct ExpandVarLenOpArgs<'a> {
8945 pub input: u32,
8946 pub src_col: u32,
8947 pub types: Option<
8948 ::flatbuffers::WIPOffset<
8949 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
8950 >,
8951 >,
8952 pub dir: ExpandDir,
8953 pub min_hops: i32,
8954 pub max_hops: i32,
8955 pub schema: Option<
8956 ::flatbuffers::WIPOffset<
8957 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
8958 >,
8959 >,
8960 pub src_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8961 pub path_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8962 pub dst_var: Option<::flatbuffers::WIPOffset<&'a str>>,
8963 pub graph_ref: Option<::flatbuffers::WIPOffset<&'a str>>,
8964 }
8965 impl<'a> Default for ExpandVarLenOpArgs<'a> {
8966 #[inline]
8967 fn default() -> Self {
8968 ExpandVarLenOpArgs {
8969 input: 0,
8970 src_col: 0,
8971 types: None,
8972 dir: ExpandDir::out,
8973 min_hops: 0,
8974 max_hops: 0,
8975 schema: None,
8976 src_var: None,
8977 path_var: None,
8978 dst_var: None,
8979 graph_ref: None,
8980 }
8981 }
8982 }
8983
8984 pub struct ExpandVarLenOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
8985 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
8986 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
8987 }
8988 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ExpandVarLenOpBuilder<'a, 'b, A> {
8989 #[inline]
8990 pub fn add_input(&mut self, input: u32) {
8991 self.fbb_
8992 .push_slot::<u32>(ExpandVarLenOp::VT_INPUT, input, 0);
8993 }
8994 #[inline]
8995 pub fn add_src_col(&mut self, src_col: u32) {
8996 self.fbb_
8997 .push_slot::<u32>(ExpandVarLenOp::VT_SRC_COL, src_col, 0);
8998 }
8999 #[inline]
9000 pub fn add_types(
9001 &mut self,
9002 types: ::flatbuffers::WIPOffset<
9003 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
9004 >,
9005 ) {
9006 self.fbb_
9007 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandVarLenOp::VT_TYPES, types);
9008 }
9009 #[inline]
9010 pub fn add_dir(&mut self, dir: ExpandDir) {
9011 self.fbb_
9012 .push_slot::<ExpandDir>(ExpandVarLenOp::VT_DIR, dir, ExpandDir::out);
9013 }
9014 #[inline]
9015 pub fn add_min_hops(&mut self, min_hops: i32) {
9016 self.fbb_
9017 .push_slot::<i32>(ExpandVarLenOp::VT_MIN_HOPS, min_hops, 0);
9018 }
9019 #[inline]
9020 pub fn add_max_hops(&mut self, max_hops: i32) {
9021 self.fbb_
9022 .push_slot::<i32>(ExpandVarLenOp::VT_MAX_HOPS, max_hops, 0);
9023 }
9024 #[inline]
9025 pub fn add_schema(
9026 &mut self,
9027 schema: ::flatbuffers::WIPOffset<
9028 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
9029 >,
9030 ) {
9031 self.fbb_
9032 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ExpandVarLenOp::VT_SCHEMA, schema);
9033 }
9034 #[inline]
9035 pub fn add_src_var(&mut self, src_var: ::flatbuffers::WIPOffset<&'b str>) {
9036 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
9037 ExpandVarLenOp::VT_SRC_VAR,
9038 src_var,
9039 );
9040 }
9041 #[inline]
9042 pub fn add_path_var(&mut self, path_var: ::flatbuffers::WIPOffset<&'b str>) {
9043 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
9044 ExpandVarLenOp::VT_PATH_VAR,
9045 path_var,
9046 );
9047 }
9048 #[inline]
9049 pub fn add_dst_var(&mut self, dst_var: ::flatbuffers::WIPOffset<&'b str>) {
9050 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
9051 ExpandVarLenOp::VT_DST_VAR,
9052 dst_var,
9053 );
9054 }
9055 #[inline]
9056 pub fn add_graph_ref(&mut self, graph_ref: ::flatbuffers::WIPOffset<&'b str>) {
9057 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
9058 ExpandVarLenOp::VT_GRAPH_REF,
9059 graph_ref,
9060 );
9061 }
9062 #[inline]
9063 pub fn new(
9064 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9065 ) -> ExpandVarLenOpBuilder<'a, 'b, A> {
9066 let start = _fbb.start_table();
9067 ExpandVarLenOpBuilder {
9068 fbb_: _fbb,
9069 start_: start,
9070 }
9071 }
9072 #[inline]
9073 pub fn finish(self) -> ::flatbuffers::WIPOffset<ExpandVarLenOp<'a>> {
9074 let o = self.fbb_.end_table(self.start_);
9075 ::flatbuffers::WIPOffset::new(o.value())
9076 }
9077 }
9078
9079 impl ::core::fmt::Debug for ExpandVarLenOp<'_> {
9080 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9081 let mut ds = f.debug_struct("ExpandVarLenOp");
9082 ds.field("input", &self.input());
9083 ds.field("src_col", &self.src_col());
9084 ds.field("types", &self.types());
9085 ds.field("dir", &self.dir());
9086 ds.field("min_hops", &self.min_hops());
9087 ds.field("max_hops", &self.max_hops());
9088 ds.field("schema", &self.schema());
9089 ds.field("src_var", &self.src_var());
9090 ds.field("path_var", &self.path_var());
9091 ds.field("dst_var", &self.dst_var());
9092 ds.field("graph_ref", &self.graph_ref());
9093 ds.finish()
9094 }
9095 }
9096 pub enum FilterOpOffset {}
9097 #[derive(Copy, Clone, PartialEq)]
9098
9099 pub struct FilterOp<'a> {
9100 pub _tab: ::flatbuffers::Table<'a>,
9101 }
9102
9103 impl<'a> ::flatbuffers::Follow<'a> for FilterOp<'a> {
9104 type Inner = FilterOp<'a>;
9105 #[inline]
9106 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9107 Self {
9108 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9109 }
9110 }
9111 }
9112
9113 impl<'a> FilterOp<'a> {
9114 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9115 pub const VT_PREDICATE: ::flatbuffers::VOffsetT = 6;
9116
9117 #[inline]
9118 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9119 FilterOp { _tab: table }
9120 }
9121 #[allow(unused_mut)]
9122 pub fn create<
9123 'bldr: 'args,
9124 'args: 'mut_bldr,
9125 'mut_bldr,
9126 A: ::flatbuffers::Allocator + 'bldr,
9127 >(
9128 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9129 args: &'args FilterOpArgs<'args>,
9130 ) -> ::flatbuffers::WIPOffset<FilterOp<'bldr>> {
9131 let mut builder = FilterOpBuilder::new(_fbb);
9132 if let Some(x) = args.predicate {
9133 builder.add_predicate(x);
9134 }
9135 builder.add_input(args.input);
9136 builder.finish()
9137 }
9138
9139 #[inline]
9140 pub fn input(&self) -> u32 {
9141 unsafe { self._tab.get::<u32>(FilterOp::VT_INPUT, Some(0)).unwrap() }
9145 }
9146 #[inline]
9147 pub fn predicate(&self) -> Option<Expr<'a>> {
9148 unsafe {
9152 self._tab
9153 .get::<::flatbuffers::ForwardsUOffset<Expr>>(FilterOp::VT_PREDICATE, None)
9154 }
9155 }
9156 }
9157
9158 impl ::flatbuffers::Verifiable for FilterOp<'_> {
9159 #[inline]
9160 fn run_verifier(
9161 v: &mut ::flatbuffers::Verifier,
9162 pos: usize,
9163 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
9164 v.visit_table(pos)?
9165 .visit_field::<u32>("input", Self::VT_INPUT, false)?
9166 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
9167 "predicate",
9168 Self::VT_PREDICATE,
9169 false,
9170 )?
9171 .finish();
9172 Ok(())
9173 }
9174 }
9175 pub struct FilterOpArgs<'a> {
9176 pub input: u32,
9177 pub predicate: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
9178 }
9179 impl<'a> Default for FilterOpArgs<'a> {
9180 #[inline]
9181 fn default() -> Self {
9182 FilterOpArgs {
9183 input: 0,
9184 predicate: None,
9185 }
9186 }
9187 }
9188
9189 pub struct FilterOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
9190 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9191 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
9192 }
9193 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> FilterOpBuilder<'a, 'b, A> {
9194 #[inline]
9195 pub fn add_input(&mut self, input: u32) {
9196 self.fbb_.push_slot::<u32>(FilterOp::VT_INPUT, input, 0);
9197 }
9198 #[inline]
9199 pub fn add_predicate(&mut self, predicate: ::flatbuffers::WIPOffset<Expr<'b>>) {
9200 self.fbb_
9201 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
9202 FilterOp::VT_PREDICATE,
9203 predicate,
9204 );
9205 }
9206 #[inline]
9207 pub fn new(
9208 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9209 ) -> FilterOpBuilder<'a, 'b, A> {
9210 let start = _fbb.start_table();
9211 FilterOpBuilder {
9212 fbb_: _fbb,
9213 start_: start,
9214 }
9215 }
9216 #[inline]
9217 pub fn finish(self) -> ::flatbuffers::WIPOffset<FilterOp<'a>> {
9218 let o = self.fbb_.end_table(self.start_);
9219 ::flatbuffers::WIPOffset::new(o.value())
9220 }
9221 }
9222
9223 impl ::core::fmt::Debug for FilterOp<'_> {
9224 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9225 let mut ds = f.debug_struct("FilterOp");
9226 ds.field("input", &self.input());
9227 ds.field("predicate", &self.predicate());
9228 ds.finish()
9229 }
9230 }
9231 pub enum BlockMarkerOpOffset {}
9232 #[derive(Copy, Clone, PartialEq)]
9233
9234 pub struct BlockMarkerOp<'a> {
9235 pub _tab: ::flatbuffers::Table<'a>,
9236 }
9237
9238 impl<'a> ::flatbuffers::Follow<'a> for BlockMarkerOp<'a> {
9239 type Inner = BlockMarkerOp<'a>;
9240 #[inline]
9241 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9242 Self {
9243 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9244 }
9245 }
9246 }
9247
9248 impl<'a> BlockMarkerOp<'a> {
9249 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9250 pub const VT_BLOCK_ID: ::flatbuffers::VOffsetT = 6;
9251 pub const VT_BRANCH_ID: ::flatbuffers::VOffsetT = 8;
9252
9253 #[inline]
9254 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9255 BlockMarkerOp { _tab: table }
9256 }
9257 #[allow(unused_mut)]
9258 pub fn create<
9259 'bldr: 'args,
9260 'args: 'mut_bldr,
9261 'mut_bldr,
9262 A: ::flatbuffers::Allocator + 'bldr,
9263 >(
9264 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9265 args: &'args BlockMarkerOpArgs,
9266 ) -> ::flatbuffers::WIPOffset<BlockMarkerOp<'bldr>> {
9267 let mut builder = BlockMarkerOpBuilder::new(_fbb);
9268 builder.add_branch_id(args.branch_id);
9269 builder.add_block_id(args.block_id);
9270 builder.add_input(args.input);
9271 builder.finish()
9272 }
9273
9274 #[inline]
9275 pub fn input(&self) -> u32 {
9276 unsafe {
9280 self._tab
9281 .get::<u32>(BlockMarkerOp::VT_INPUT, Some(0))
9282 .unwrap()
9283 }
9284 }
9285 #[inline]
9286 pub fn block_id(&self) -> i32 {
9287 unsafe {
9291 self._tab
9292 .get::<i32>(BlockMarkerOp::VT_BLOCK_ID, Some(0))
9293 .unwrap()
9294 }
9295 }
9296 #[inline]
9297 pub fn branch_id(&self) -> i32 {
9298 unsafe {
9302 self._tab
9303 .get::<i32>(BlockMarkerOp::VT_BRANCH_ID, Some(0))
9304 .unwrap()
9305 }
9306 }
9307 }
9308
9309 impl ::flatbuffers::Verifiable for BlockMarkerOp<'_> {
9310 #[inline]
9311 fn run_verifier(
9312 v: &mut ::flatbuffers::Verifier,
9313 pos: usize,
9314 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
9315 v.visit_table(pos)?
9316 .visit_field::<u32>("input", Self::VT_INPUT, false)?
9317 .visit_field::<i32>("block_id", Self::VT_BLOCK_ID, false)?
9318 .visit_field::<i32>("branch_id", Self::VT_BRANCH_ID, false)?
9319 .finish();
9320 Ok(())
9321 }
9322 }
9323 pub struct BlockMarkerOpArgs {
9324 pub input: u32,
9325 pub block_id: i32,
9326 pub branch_id: i32,
9327 }
9328 impl<'a> Default for BlockMarkerOpArgs {
9329 #[inline]
9330 fn default() -> Self {
9331 BlockMarkerOpArgs {
9332 input: 0,
9333 block_id: 0,
9334 branch_id: 0,
9335 }
9336 }
9337 }
9338
9339 pub struct BlockMarkerOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
9340 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9341 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
9342 }
9343 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> BlockMarkerOpBuilder<'a, 'b, A> {
9344 #[inline]
9345 pub fn add_input(&mut self, input: u32) {
9346 self.fbb_
9347 .push_slot::<u32>(BlockMarkerOp::VT_INPUT, input, 0);
9348 }
9349 #[inline]
9350 pub fn add_block_id(&mut self, block_id: i32) {
9351 self.fbb_
9352 .push_slot::<i32>(BlockMarkerOp::VT_BLOCK_ID, block_id, 0);
9353 }
9354 #[inline]
9355 pub fn add_branch_id(&mut self, branch_id: i32) {
9356 self.fbb_
9357 .push_slot::<i32>(BlockMarkerOp::VT_BRANCH_ID, branch_id, 0);
9358 }
9359 #[inline]
9360 pub fn new(
9361 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9362 ) -> BlockMarkerOpBuilder<'a, 'b, A> {
9363 let start = _fbb.start_table();
9364 BlockMarkerOpBuilder {
9365 fbb_: _fbb,
9366 start_: start,
9367 }
9368 }
9369 #[inline]
9370 pub fn finish(self) -> ::flatbuffers::WIPOffset<BlockMarkerOp<'a>> {
9371 let o = self.fbb_.end_table(self.start_);
9372 ::flatbuffers::WIPOffset::new(o.value())
9373 }
9374 }
9375
9376 impl ::core::fmt::Debug for BlockMarkerOp<'_> {
9377 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9378 let mut ds = f.debug_struct("BlockMarkerOp");
9379 ds.field("input", &self.input());
9380 ds.field("block_id", &self.block_id());
9381 ds.field("branch_id", &self.branch_id());
9382 ds.finish()
9383 }
9384 }
9385 pub enum ProjectOpOffset {}
9386 #[derive(Copy, Clone, PartialEq)]
9387
9388 pub struct ProjectOp<'a> {
9389 pub _tab: ::flatbuffers::Table<'a>,
9390 }
9391
9392 impl<'a> ::flatbuffers::Follow<'a> for ProjectOp<'a> {
9393 type Inner = ProjectOp<'a>;
9394 #[inline]
9395 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9396 Self {
9397 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9398 }
9399 }
9400 }
9401
9402 impl<'a> ProjectOp<'a> {
9403 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9404 pub const VT_EXPRS: ::flatbuffers::VOffsetT = 6;
9405 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 8;
9406
9407 #[inline]
9408 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9409 ProjectOp { _tab: table }
9410 }
9411 #[allow(unused_mut)]
9412 pub fn create<
9413 'bldr: 'args,
9414 'args: 'mut_bldr,
9415 'mut_bldr,
9416 A: ::flatbuffers::Allocator + 'bldr,
9417 >(
9418 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9419 args: &'args ProjectOpArgs<'args>,
9420 ) -> ::flatbuffers::WIPOffset<ProjectOp<'bldr>> {
9421 let mut builder = ProjectOpBuilder::new(_fbb);
9422 if let Some(x) = args.schema {
9423 builder.add_schema(x);
9424 }
9425 if let Some(x) = args.exprs {
9426 builder.add_exprs(x);
9427 }
9428 builder.add_input(args.input);
9429 builder.finish()
9430 }
9431
9432 #[inline]
9433 pub fn input(&self) -> u32 {
9434 unsafe { self._tab.get::<u32>(ProjectOp::VT_INPUT, Some(0)).unwrap() }
9438 }
9439 #[inline]
9440 pub fn exprs(
9441 &self,
9442 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>> {
9443 unsafe {
9447 self._tab.get::<::flatbuffers::ForwardsUOffset<
9448 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr>>,
9449 >>(ProjectOp::VT_EXPRS, None)
9450 }
9451 }
9452 #[inline]
9453 pub fn schema(
9454 &self,
9455 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
9456 unsafe {
9460 self._tab.get::<::flatbuffers::ForwardsUOffset<
9461 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
9462 >>(ProjectOp::VT_SCHEMA, None)
9463 }
9464 }
9465 }
9466
9467 impl ::flatbuffers::Verifiable for ProjectOp<'_> {
9468 #[inline]
9469 fn run_verifier(
9470 v: &mut ::flatbuffers::Verifier,
9471 pos: usize,
9472 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
9473 v.visit_table(pos)?
9474 .visit_field::<u32>("input", Self::VT_INPUT, false)?
9475 .visit_field::<::flatbuffers::ForwardsUOffset<
9476 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<Expr>>,
9477 >>("exprs", Self::VT_EXPRS, false)?
9478 .visit_field::<::flatbuffers::ForwardsUOffset<
9479 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
9480 >>("schema", Self::VT_SCHEMA, false)?
9481 .finish();
9482 Ok(())
9483 }
9484 }
9485 pub struct ProjectOpArgs<'a> {
9486 pub input: u32,
9487 pub exprs: Option<
9488 ::flatbuffers::WIPOffset<
9489 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>,
9490 >,
9491 >,
9492 pub schema: Option<
9493 ::flatbuffers::WIPOffset<
9494 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
9495 >,
9496 >,
9497 }
9498 impl<'a> Default for ProjectOpArgs<'a> {
9499 #[inline]
9500 fn default() -> Self {
9501 ProjectOpArgs {
9502 input: 0,
9503 exprs: None,
9504 schema: None,
9505 }
9506 }
9507 }
9508
9509 pub struct ProjectOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
9510 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9511 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
9512 }
9513 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ProjectOpBuilder<'a, 'b, A> {
9514 #[inline]
9515 pub fn add_input(&mut self, input: u32) {
9516 self.fbb_.push_slot::<u32>(ProjectOp::VT_INPUT, input, 0);
9517 }
9518 #[inline]
9519 pub fn add_exprs(
9520 &mut self,
9521 exprs: ::flatbuffers::WIPOffset<
9522 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<Expr<'b>>>,
9523 >,
9524 ) {
9525 self.fbb_
9526 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ProjectOp::VT_EXPRS, exprs);
9527 }
9528 #[inline]
9529 pub fn add_schema(
9530 &mut self,
9531 schema: ::flatbuffers::WIPOffset<
9532 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
9533 >,
9534 ) {
9535 self.fbb_
9536 .push_slot_always::<::flatbuffers::WIPOffset<_>>(ProjectOp::VT_SCHEMA, schema);
9537 }
9538 #[inline]
9539 pub fn new(
9540 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9541 ) -> ProjectOpBuilder<'a, 'b, A> {
9542 let start = _fbb.start_table();
9543 ProjectOpBuilder {
9544 fbb_: _fbb,
9545 start_: start,
9546 }
9547 }
9548 #[inline]
9549 pub fn finish(self) -> ::flatbuffers::WIPOffset<ProjectOp<'a>> {
9550 let o = self.fbb_.end_table(self.start_);
9551 ::flatbuffers::WIPOffset::new(o.value())
9552 }
9553 }
9554
9555 impl ::core::fmt::Debug for ProjectOp<'_> {
9556 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9557 let mut ds = f.debug_struct("ProjectOp");
9558 ds.field("input", &self.input());
9559 ds.field("exprs", &self.exprs());
9560 ds.field("schema", &self.schema());
9561 ds.finish()
9562 }
9563 }
9564 pub enum AggregateOpOffset {}
9565 #[derive(Copy, Clone, PartialEq)]
9566
9567 pub struct AggregateOp<'a> {
9568 pub _tab: ::flatbuffers::Table<'a>,
9569 }
9570
9571 impl<'a> ::flatbuffers::Follow<'a> for AggregateOp<'a> {
9572 type Inner = AggregateOp<'a>;
9573 #[inline]
9574 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9575 Self {
9576 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9577 }
9578 }
9579 }
9580
9581 impl<'a> AggregateOp<'a> {
9582 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9583 pub const VT_KEYS: ::flatbuffers::VOffsetT = 6;
9584 pub const VT_AGGS: ::flatbuffers::VOffsetT = 8;
9585 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
9586
9587 #[inline]
9588 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9589 AggregateOp { _tab: table }
9590 }
9591 #[allow(unused_mut)]
9592 pub fn create<
9593 'bldr: 'args,
9594 'args: 'mut_bldr,
9595 'mut_bldr,
9596 A: ::flatbuffers::Allocator + 'bldr,
9597 >(
9598 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9599 args: &'args AggregateOpArgs<'args>,
9600 ) -> ::flatbuffers::WIPOffset<AggregateOp<'bldr>> {
9601 let mut builder = AggregateOpBuilder::new(_fbb);
9602 if let Some(x) = args.schema {
9603 builder.add_schema(x);
9604 }
9605 if let Some(x) = args.aggs {
9606 builder.add_aggs(x);
9607 }
9608 if let Some(x) = args.keys {
9609 builder.add_keys(x);
9610 }
9611 builder.add_input(args.input);
9612 builder.finish()
9613 }
9614
9615 #[inline]
9616 pub fn input(&self) -> u32 {
9617 unsafe {
9621 self._tab
9622 .get::<u32>(AggregateOp::VT_INPUT, Some(0))
9623 .unwrap()
9624 }
9625 }
9626 #[inline]
9627 pub fn keys(&self) -> Option<::flatbuffers::Vector<'a, u32>> {
9628 unsafe {
9632 self._tab
9633 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, u32>>>(
9634 AggregateOp::VT_KEYS,
9635 None,
9636 )
9637 }
9638 }
9639 #[inline]
9640 pub fn aggs(
9641 &self,
9642 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>> {
9643 unsafe {
9647 self._tab.get::<::flatbuffers::ForwardsUOffset<
9648 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr>>,
9649 >>(AggregateOp::VT_AGGS, None)
9650 }
9651 }
9652 #[inline]
9653 pub fn schema(
9654 &self,
9655 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
9656 unsafe {
9660 self._tab.get::<::flatbuffers::ForwardsUOffset<
9661 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
9662 >>(AggregateOp::VT_SCHEMA, None)
9663 }
9664 }
9665 }
9666
9667 impl ::flatbuffers::Verifiable for AggregateOp<'_> {
9668 #[inline]
9669 fn run_verifier(
9670 v: &mut ::flatbuffers::Verifier,
9671 pos: usize,
9672 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
9673 v.visit_table(pos)?
9674 .visit_field::<u32>("input", Self::VT_INPUT, false)?
9675 .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, u32>>>(
9676 "keys",
9677 Self::VT_KEYS,
9678 false,
9679 )?
9680 .visit_field::<::flatbuffers::ForwardsUOffset<
9681 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<Expr>>,
9682 >>("aggs", Self::VT_AGGS, false)?
9683 .visit_field::<::flatbuffers::ForwardsUOffset<
9684 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
9685 >>("schema", Self::VT_SCHEMA, false)?
9686 .finish();
9687 Ok(())
9688 }
9689 }
9690 pub struct AggregateOpArgs<'a> {
9691 pub input: u32,
9692 pub keys: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, u32>>>,
9693 pub aggs: Option<
9694 ::flatbuffers::WIPOffset<
9695 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Expr<'a>>>,
9696 >,
9697 >,
9698 pub schema: Option<
9699 ::flatbuffers::WIPOffset<
9700 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
9701 >,
9702 >,
9703 }
9704 impl<'a> Default for AggregateOpArgs<'a> {
9705 #[inline]
9706 fn default() -> Self {
9707 AggregateOpArgs {
9708 input: 0,
9709 keys: None,
9710 aggs: None,
9711 schema: None,
9712 }
9713 }
9714 }
9715
9716 pub struct AggregateOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
9717 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9718 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
9719 }
9720 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> AggregateOpBuilder<'a, 'b, A> {
9721 #[inline]
9722 pub fn add_input(&mut self, input: u32) {
9723 self.fbb_.push_slot::<u32>(AggregateOp::VT_INPUT, input, 0);
9724 }
9725 #[inline]
9726 pub fn add_keys(&mut self, keys: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b, u32>>) {
9727 self.fbb_
9728 .push_slot_always::<::flatbuffers::WIPOffset<_>>(AggregateOp::VT_KEYS, keys);
9729 }
9730 #[inline]
9731 pub fn add_aggs(
9732 &mut self,
9733 aggs: ::flatbuffers::WIPOffset<
9734 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<Expr<'b>>>,
9735 >,
9736 ) {
9737 self.fbb_
9738 .push_slot_always::<::flatbuffers::WIPOffset<_>>(AggregateOp::VT_AGGS, aggs);
9739 }
9740 #[inline]
9741 pub fn add_schema(
9742 &mut self,
9743 schema: ::flatbuffers::WIPOffset<
9744 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
9745 >,
9746 ) {
9747 self.fbb_
9748 .push_slot_always::<::flatbuffers::WIPOffset<_>>(AggregateOp::VT_SCHEMA, schema);
9749 }
9750 #[inline]
9751 pub fn new(
9752 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9753 ) -> AggregateOpBuilder<'a, 'b, A> {
9754 let start = _fbb.start_table();
9755 AggregateOpBuilder {
9756 fbb_: _fbb,
9757 start_: start,
9758 }
9759 }
9760 #[inline]
9761 pub fn finish(self) -> ::flatbuffers::WIPOffset<AggregateOp<'a>> {
9762 let o = self.fbb_.end_table(self.start_);
9763 ::flatbuffers::WIPOffset::new(o.value())
9764 }
9765 }
9766
9767 impl ::core::fmt::Debug for AggregateOp<'_> {
9768 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9769 let mut ds = f.debug_struct("AggregateOp");
9770 ds.field("input", &self.input());
9771 ds.field("keys", &self.keys());
9772 ds.field("aggs", &self.aggs());
9773 ds.field("schema", &self.schema());
9774 ds.finish()
9775 }
9776 }
9777 pub enum SortOpOffset {}
9778 #[derive(Copy, Clone, PartialEq)]
9779
9780 pub struct SortOp<'a> {
9781 pub _tab: ::flatbuffers::Table<'a>,
9782 }
9783
9784 impl<'a> ::flatbuffers::Follow<'a> for SortOp<'a> {
9785 type Inner = SortOp<'a>;
9786 #[inline]
9787 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9788 Self {
9789 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9790 }
9791 }
9792 }
9793
9794 impl<'a> SortOp<'a> {
9795 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9796 pub const VT_KEYS: ::flatbuffers::VOffsetT = 6;
9797 pub const VT_DIRS: ::flatbuffers::VOffsetT = 8;
9798
9799 #[inline]
9800 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9801 SortOp { _tab: table }
9802 }
9803 #[allow(unused_mut)]
9804 pub fn create<
9805 'bldr: 'args,
9806 'args: 'mut_bldr,
9807 'mut_bldr,
9808 A: ::flatbuffers::Allocator + 'bldr,
9809 >(
9810 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9811 args: &'args SortOpArgs<'args>,
9812 ) -> ::flatbuffers::WIPOffset<SortOp<'bldr>> {
9813 let mut builder = SortOpBuilder::new(_fbb);
9814 if let Some(x) = args.dirs {
9815 builder.add_dirs(x);
9816 }
9817 if let Some(x) = args.keys {
9818 builder.add_keys(x);
9819 }
9820 builder.add_input(args.input);
9821 builder.finish()
9822 }
9823
9824 #[inline]
9825 pub fn input(&self) -> u32 {
9826 unsafe { self._tab.get::<u32>(SortOp::VT_INPUT, Some(0)).unwrap() }
9830 }
9831 #[inline]
9832 pub fn keys(&self) -> Option<::flatbuffers::Vector<'a, u32>> {
9833 unsafe {
9837 self._tab
9838 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, u32>>>(
9839 SortOp::VT_KEYS,
9840 None,
9841 )
9842 }
9843 }
9844 #[inline]
9845 pub fn dirs(&self) -> Option<::flatbuffers::Vector<'a, SortDir>> {
9846 unsafe {
9850 self._tab
9851 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, SortDir>>>(
9852 SortOp::VT_DIRS,
9853 None,
9854 )
9855 }
9856 }
9857 }
9858
9859 impl ::flatbuffers::Verifiable for SortOp<'_> {
9860 #[inline]
9861 fn run_verifier(
9862 v: &mut ::flatbuffers::Verifier,
9863 pos: usize,
9864 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
9865 v.visit_table(pos)?
9866 .visit_field::<u32>("input", Self::VT_INPUT, false)?
9867 .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, u32>>>(
9868 "keys",
9869 Self::VT_KEYS,
9870 false,
9871 )?
9872 .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, SortDir>>>(
9873 "dirs",
9874 Self::VT_DIRS,
9875 false,
9876 )?
9877 .finish();
9878 Ok(())
9879 }
9880 }
9881 pub struct SortOpArgs<'a> {
9882 pub input: u32,
9883 pub keys: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, u32>>>,
9884 pub dirs: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, SortDir>>>,
9885 }
9886 impl<'a> Default for SortOpArgs<'a> {
9887 #[inline]
9888 fn default() -> Self {
9889 SortOpArgs {
9890 input: 0,
9891 keys: None,
9892 dirs: None,
9893 }
9894 }
9895 }
9896
9897 pub struct SortOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
9898 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9899 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
9900 }
9901 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> SortOpBuilder<'a, 'b, A> {
9902 #[inline]
9903 pub fn add_input(&mut self, input: u32) {
9904 self.fbb_.push_slot::<u32>(SortOp::VT_INPUT, input, 0);
9905 }
9906 #[inline]
9907 pub fn add_keys(&mut self, keys: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b, u32>>) {
9908 self.fbb_
9909 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SortOp::VT_KEYS, keys);
9910 }
9911 #[inline]
9912 pub fn add_dirs(
9913 &mut self,
9914 dirs: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b, SortDir>>,
9915 ) {
9916 self.fbb_
9917 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SortOp::VT_DIRS, dirs);
9918 }
9919 #[inline]
9920 pub fn new(
9921 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
9922 ) -> SortOpBuilder<'a, 'b, A> {
9923 let start = _fbb.start_table();
9924 SortOpBuilder {
9925 fbb_: _fbb,
9926 start_: start,
9927 }
9928 }
9929 #[inline]
9930 pub fn finish(self) -> ::flatbuffers::WIPOffset<SortOp<'a>> {
9931 let o = self.fbb_.end_table(self.start_);
9932 ::flatbuffers::WIPOffset::new(o.value())
9933 }
9934 }
9935
9936 impl ::core::fmt::Debug for SortOp<'_> {
9937 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9938 let mut ds = f.debug_struct("SortOp");
9939 ds.field("input", &self.input());
9940 ds.field("keys", &self.keys());
9941 ds.field("dirs", &self.dirs());
9942 ds.finish()
9943 }
9944 }
9945 pub enum LimitOpOffset {}
9946 #[derive(Copy, Clone, PartialEq)]
9947
9948 pub struct LimitOp<'a> {
9949 pub _tab: ::flatbuffers::Table<'a>,
9950 }
9951
9952 impl<'a> ::flatbuffers::Follow<'a> for LimitOp<'a> {
9953 type Inner = LimitOp<'a>;
9954 #[inline]
9955 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
9956 Self {
9957 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
9958 }
9959 }
9960 }
9961
9962 impl<'a> LimitOp<'a> {
9963 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
9964 pub const VT_COUNT: ::flatbuffers::VOffsetT = 6;
9965 pub const VT_SKIP: ::flatbuffers::VOffsetT = 8;
9966 pub const VT_CURSOR: ::flatbuffers::VOffsetT = 10;
9967 pub const VT_EMIT_CURSOR: ::flatbuffers::VOffsetT = 12;
9968
9969 #[inline]
9970 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
9971 LimitOp { _tab: table }
9972 }
9973 #[allow(unused_mut)]
9974 pub fn create<
9975 'bldr: 'args,
9976 'args: 'mut_bldr,
9977 'mut_bldr,
9978 A: ::flatbuffers::Allocator + 'bldr,
9979 >(
9980 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
9981 args: &'args LimitOpArgs<'args>,
9982 ) -> ::flatbuffers::WIPOffset<LimitOp<'bldr>> {
9983 let mut builder = LimitOpBuilder::new(_fbb);
9984 builder.add_skip(args.skip);
9985 builder.add_count(args.count);
9986 if let Some(x) = args.cursor {
9987 builder.add_cursor(x);
9988 }
9989 builder.add_input(args.input);
9990 builder.add_emit_cursor(args.emit_cursor);
9991 builder.finish()
9992 }
9993
9994 #[inline]
9995 pub fn input(&self) -> u32 {
9996 unsafe { self._tab.get::<u32>(LimitOp::VT_INPUT, Some(0)).unwrap() }
10000 }
10001 #[inline]
10002 pub fn count(&self) -> i64 {
10003 unsafe { self._tab.get::<i64>(LimitOp::VT_COUNT, Some(-1)).unwrap() }
10007 }
10008 #[inline]
10009 pub fn skip(&self) -> i64 {
10010 unsafe { self._tab.get::<i64>(LimitOp::VT_SKIP, Some(0)).unwrap() }
10014 }
10015 #[inline]
10016 pub fn cursor(&self) -> Option<::flatbuffers::Vector<'a, i8>> {
10017 unsafe {
10021 self._tab.get::<::flatbuffers::ForwardsUOffset<
10022 ::flatbuffers::Vector<'a, i8>,
10023 >>(LimitOp::VT_CURSOR, None)
10024 }
10025 }
10026 #[inline]
10027 pub fn emit_cursor(&self) -> bool {
10028 unsafe {
10032 self._tab
10033 .get::<bool>(LimitOp::VT_EMIT_CURSOR, Some(false))
10034 .unwrap()
10035 }
10036 }
10037 }
10038
10039 impl ::flatbuffers::Verifiable for LimitOp<'_> {
10040 #[inline]
10041 fn run_verifier(
10042 v: &mut ::flatbuffers::Verifier,
10043 pos: usize,
10044 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
10045 v.visit_table(pos)?
10046 .visit_field::<u32>("input", Self::VT_INPUT, false)?
10047 .visit_field::<i64>("count", Self::VT_COUNT, false)?
10048 .visit_field::<i64>("skip", Self::VT_SKIP, false)?
10049 .visit_field::<::flatbuffers::ForwardsUOffset<
10050 ::flatbuffers::Vector<'_, i8>,
10051 >>("cursor", Self::VT_CURSOR, false)?
10052 .visit_field::<bool>("emit_cursor", Self::VT_EMIT_CURSOR, false)?
10053 .finish();
10054 Ok(())
10055 }
10056 }
10057 pub struct LimitOpArgs<'a> {
10058 pub input: u32,
10059 pub count: i64,
10060 pub skip: i64,
10061 pub cursor: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, i8>>>,
10062 pub emit_cursor: bool,
10063 }
10064 impl<'a> Default for LimitOpArgs<'a> {
10065 #[inline]
10066 fn default() -> Self {
10067 LimitOpArgs {
10068 input: 0,
10069 count: -1,
10070 skip: 0,
10071 cursor: None,
10072 emit_cursor: false,
10073 }
10074 }
10075 }
10076
10077 pub struct LimitOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
10078 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10079 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
10080 }
10081 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> LimitOpBuilder<'a, 'b, A> {
10082 #[inline]
10083 pub fn add_input(&mut self, input: u32) {
10084 self.fbb_.push_slot::<u32>(LimitOp::VT_INPUT, input, 0);
10085 }
10086 #[inline]
10087 pub fn add_count(&mut self, count: i64) {
10088 self.fbb_.push_slot::<i64>(LimitOp::VT_COUNT, count, -1);
10089 }
10090 #[inline]
10091 pub fn add_skip(&mut self, skip: i64) {
10092 self.fbb_.push_slot::<i64>(LimitOp::VT_SKIP, skip, 0);
10093 }
10094 #[inline]
10095 pub fn add_cursor(
10096 &mut self,
10097 cursor: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b, i8>>,
10098 ) {
10099 self.fbb_
10100 .push_slot_always::<::flatbuffers::WIPOffset<_>>(LimitOp::VT_CURSOR, cursor);
10101 }
10102 #[inline]
10103 pub fn add_emit_cursor(&mut self, emit_cursor: bool) {
10104 self.fbb_
10105 .push_slot::<bool>(LimitOp::VT_EMIT_CURSOR, emit_cursor, false);
10106 }
10107 #[inline]
10108 pub fn new(
10109 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10110 ) -> LimitOpBuilder<'a, 'b, A> {
10111 let start = _fbb.start_table();
10112 LimitOpBuilder {
10113 fbb_: _fbb,
10114 start_: start,
10115 }
10116 }
10117 #[inline]
10118 pub fn finish(self) -> ::flatbuffers::WIPOffset<LimitOp<'a>> {
10119 let o = self.fbb_.end_table(self.start_);
10120 ::flatbuffers::WIPOffset::new(o.value())
10121 }
10122 }
10123
10124 impl ::core::fmt::Debug for LimitOp<'_> {
10125 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10126 let mut ds = f.debug_struct("LimitOp");
10127 ds.field("input", &self.input());
10128 ds.field("count", &self.count());
10129 ds.field("skip", &self.skip());
10130 ds.field("cursor", &self.cursor());
10131 ds.field("emit_cursor", &self.emit_cursor());
10132 ds.finish()
10133 }
10134 }
10135 pub enum UnwindOpOffset {}
10136 #[derive(Copy, Clone, PartialEq)]
10137
10138 pub struct UnwindOp<'a> {
10139 pub _tab: ::flatbuffers::Table<'a>,
10140 }
10141
10142 impl<'a> ::flatbuffers::Follow<'a> for UnwindOp<'a> {
10143 type Inner = UnwindOp<'a>;
10144 #[inline]
10145 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
10146 Self {
10147 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
10148 }
10149 }
10150 }
10151
10152 impl<'a> UnwindOp<'a> {
10153 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
10154 pub const VT_LIST_EXPR: ::flatbuffers::VOffsetT = 6;
10155 pub const VT_OUT_VAR: ::flatbuffers::VOffsetT = 8;
10156 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
10157
10158 #[inline]
10159 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
10160 UnwindOp { _tab: table }
10161 }
10162 #[allow(unused_mut)]
10163 pub fn create<
10164 'bldr: 'args,
10165 'args: 'mut_bldr,
10166 'mut_bldr,
10167 A: ::flatbuffers::Allocator + 'bldr,
10168 >(
10169 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
10170 args: &'args UnwindOpArgs<'args>,
10171 ) -> ::flatbuffers::WIPOffset<UnwindOp<'bldr>> {
10172 let mut builder = UnwindOpBuilder::new(_fbb);
10173 if let Some(x) = args.schema {
10174 builder.add_schema(x);
10175 }
10176 if let Some(x) = args.out_var {
10177 builder.add_out_var(x);
10178 }
10179 if let Some(x) = args.list_expr {
10180 builder.add_list_expr(x);
10181 }
10182 builder.add_input(args.input);
10183 builder.finish()
10184 }
10185
10186 #[inline]
10187 pub fn input(&self) -> u32 {
10188 unsafe { self._tab.get::<u32>(UnwindOp::VT_INPUT, Some(0)).unwrap() }
10192 }
10193 #[inline]
10194 pub fn list_expr(&self) -> Option<Expr<'a>> {
10195 unsafe {
10199 self._tab
10200 .get::<::flatbuffers::ForwardsUOffset<Expr>>(UnwindOp::VT_LIST_EXPR, None)
10201 }
10202 }
10203 #[inline]
10204 pub fn out_var(&self) -> Option<&'a str> {
10205 unsafe {
10209 self._tab
10210 .get::<::flatbuffers::ForwardsUOffset<&str>>(UnwindOp::VT_OUT_VAR, None)
10211 }
10212 }
10213 #[inline]
10214 pub fn schema(
10215 &self,
10216 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
10217 unsafe {
10221 self._tab.get::<::flatbuffers::ForwardsUOffset<
10222 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
10223 >>(UnwindOp::VT_SCHEMA, None)
10224 }
10225 }
10226 }
10227
10228 impl ::flatbuffers::Verifiable for UnwindOp<'_> {
10229 #[inline]
10230 fn run_verifier(
10231 v: &mut ::flatbuffers::Verifier,
10232 pos: usize,
10233 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
10234 v.visit_table(pos)?
10235 .visit_field::<u32>("input", Self::VT_INPUT, false)?
10236 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
10237 "list_expr",
10238 Self::VT_LIST_EXPR,
10239 false,
10240 )?
10241 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
10242 "out_var",
10243 Self::VT_OUT_VAR,
10244 false,
10245 )?
10246 .visit_field::<::flatbuffers::ForwardsUOffset<
10247 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
10248 >>("schema", Self::VT_SCHEMA, false)?
10249 .finish();
10250 Ok(())
10251 }
10252 }
10253 pub struct UnwindOpArgs<'a> {
10254 pub input: u32,
10255 pub list_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
10256 pub out_var: Option<::flatbuffers::WIPOffset<&'a str>>,
10257 pub schema: Option<
10258 ::flatbuffers::WIPOffset<
10259 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
10260 >,
10261 >,
10262 }
10263 impl<'a> Default for UnwindOpArgs<'a> {
10264 #[inline]
10265 fn default() -> Self {
10266 UnwindOpArgs {
10267 input: 0,
10268 list_expr: None,
10269 out_var: None,
10270 schema: None,
10271 }
10272 }
10273 }
10274
10275 pub struct UnwindOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
10276 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10277 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
10278 }
10279 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> UnwindOpBuilder<'a, 'b, A> {
10280 #[inline]
10281 pub fn add_input(&mut self, input: u32) {
10282 self.fbb_.push_slot::<u32>(UnwindOp::VT_INPUT, input, 0);
10283 }
10284 #[inline]
10285 pub fn add_list_expr(&mut self, list_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
10286 self.fbb_
10287 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
10288 UnwindOp::VT_LIST_EXPR,
10289 list_expr,
10290 );
10291 }
10292 #[inline]
10293 pub fn add_out_var(&mut self, out_var: ::flatbuffers::WIPOffset<&'b str>) {
10294 self.fbb_
10295 .push_slot_always::<::flatbuffers::WIPOffset<_>>(UnwindOp::VT_OUT_VAR, out_var);
10296 }
10297 #[inline]
10298 pub fn add_schema(
10299 &mut self,
10300 schema: ::flatbuffers::WIPOffset<
10301 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
10302 >,
10303 ) {
10304 self.fbb_
10305 .push_slot_always::<::flatbuffers::WIPOffset<_>>(UnwindOp::VT_SCHEMA, schema);
10306 }
10307 #[inline]
10308 pub fn new(
10309 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10310 ) -> UnwindOpBuilder<'a, 'b, A> {
10311 let start = _fbb.start_table();
10312 UnwindOpBuilder {
10313 fbb_: _fbb,
10314 start_: start,
10315 }
10316 }
10317 #[inline]
10318 pub fn finish(self) -> ::flatbuffers::WIPOffset<UnwindOp<'a>> {
10319 let o = self.fbb_.end_table(self.start_);
10320 ::flatbuffers::WIPOffset::new(o.value())
10321 }
10322 }
10323
10324 impl ::core::fmt::Debug for UnwindOp<'_> {
10325 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10326 let mut ds = f.debug_struct("UnwindOp");
10327 ds.field("input", &self.input());
10328 ds.field("list_expr", &self.list_expr());
10329 ds.field("out_var", &self.out_var());
10330 ds.field("schema", &self.schema());
10331 ds.finish()
10332 }
10333 }
10334 pub enum PathConstructOpOffset {}
10335 #[derive(Copy, Clone, PartialEq)]
10336
10337 pub struct PathConstructOp<'a> {
10338 pub _tab: ::flatbuffers::Table<'a>,
10339 }
10340
10341 impl<'a> ::flatbuffers::Follow<'a> for PathConstructOp<'a> {
10342 type Inner = PathConstructOp<'a>;
10343 #[inline]
10344 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
10345 Self {
10346 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
10347 }
10348 }
10349 }
10350
10351 impl<'a> PathConstructOp<'a> {
10352 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
10353 pub const VT_REL_COLS: ::flatbuffers::VOffsetT = 6;
10354 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 8;
10355
10356 #[inline]
10357 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
10358 PathConstructOp { _tab: table }
10359 }
10360 #[allow(unused_mut)]
10361 pub fn create<
10362 'bldr: 'args,
10363 'args: 'mut_bldr,
10364 'mut_bldr,
10365 A: ::flatbuffers::Allocator + 'bldr,
10366 >(
10367 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
10368 args: &'args PathConstructOpArgs<'args>,
10369 ) -> ::flatbuffers::WIPOffset<PathConstructOp<'bldr>> {
10370 let mut builder = PathConstructOpBuilder::new(_fbb);
10371 if let Some(x) = args.schema {
10372 builder.add_schema(x);
10373 }
10374 if let Some(x) = args.rel_cols {
10375 builder.add_rel_cols(x);
10376 }
10377 builder.add_input(args.input);
10378 builder.finish()
10379 }
10380
10381 #[inline]
10382 pub fn input(&self) -> u32 {
10383 unsafe {
10387 self._tab
10388 .get::<u32>(PathConstructOp::VT_INPUT, Some(0))
10389 .unwrap()
10390 }
10391 }
10392 #[inline]
10393 pub fn rel_cols(&self) -> Option<::flatbuffers::Vector<'a, u32>> {
10394 unsafe {
10398 self._tab
10399 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, u32>>>(
10400 PathConstructOp::VT_REL_COLS,
10401 None,
10402 )
10403 }
10404 }
10405 #[inline]
10406 pub fn schema(
10407 &self,
10408 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
10409 unsafe {
10413 self._tab.get::<::flatbuffers::ForwardsUOffset<
10414 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
10415 >>(PathConstructOp::VT_SCHEMA, None)
10416 }
10417 }
10418 }
10419
10420 impl ::flatbuffers::Verifiable for PathConstructOp<'_> {
10421 #[inline]
10422 fn run_verifier(
10423 v: &mut ::flatbuffers::Verifier,
10424 pos: usize,
10425 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
10426 v.visit_table(pos)?
10427 .visit_field::<u32>("input", Self::VT_INPUT, false)?
10428 .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, u32>>>(
10429 "rel_cols",
10430 Self::VT_REL_COLS,
10431 false,
10432 )?
10433 .visit_field::<::flatbuffers::ForwardsUOffset<
10434 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
10435 >>("schema", Self::VT_SCHEMA, false)?
10436 .finish();
10437 Ok(())
10438 }
10439 }
10440 pub struct PathConstructOpArgs<'a> {
10441 pub input: u32,
10442 pub rel_cols: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, u32>>>,
10443 pub schema: Option<
10444 ::flatbuffers::WIPOffset<
10445 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
10446 >,
10447 >,
10448 }
10449 impl<'a> Default for PathConstructOpArgs<'a> {
10450 #[inline]
10451 fn default() -> Self {
10452 PathConstructOpArgs {
10453 input: 0,
10454 rel_cols: None,
10455 schema: None,
10456 }
10457 }
10458 }
10459
10460 pub struct PathConstructOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
10461 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10462 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
10463 }
10464 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> PathConstructOpBuilder<'a, 'b, A> {
10465 #[inline]
10466 pub fn add_input(&mut self, input: u32) {
10467 self.fbb_
10468 .push_slot::<u32>(PathConstructOp::VT_INPUT, input, 0);
10469 }
10470 #[inline]
10471 pub fn add_rel_cols(
10472 &mut self,
10473 rel_cols: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b, u32>>,
10474 ) {
10475 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
10476 PathConstructOp::VT_REL_COLS,
10477 rel_cols,
10478 );
10479 }
10480 #[inline]
10481 pub fn add_schema(
10482 &mut self,
10483 schema: ::flatbuffers::WIPOffset<
10484 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
10485 >,
10486 ) {
10487 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
10488 PathConstructOp::VT_SCHEMA,
10489 schema,
10490 );
10491 }
10492 #[inline]
10493 pub fn new(
10494 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10495 ) -> PathConstructOpBuilder<'a, 'b, A> {
10496 let start = _fbb.start_table();
10497 PathConstructOpBuilder {
10498 fbb_: _fbb,
10499 start_: start,
10500 }
10501 }
10502 #[inline]
10503 pub fn finish(self) -> ::flatbuffers::WIPOffset<PathConstructOp<'a>> {
10504 let o = self.fbb_.end_table(self.start_);
10505 ::flatbuffers::WIPOffset::new(o.value())
10506 }
10507 }
10508
10509 impl ::core::fmt::Debug for PathConstructOp<'_> {
10510 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10511 let mut ds = f.debug_struct("PathConstructOp");
10512 ds.field("input", &self.input());
10513 ds.field("rel_cols", &self.rel_cols());
10514 ds.field("schema", &self.schema());
10515 ds.finish()
10516 }
10517 }
10518 pub enum UnionOpOffset {}
10519 #[derive(Copy, Clone, PartialEq)]
10520
10521 pub struct UnionOp<'a> {
10522 pub _tab: ::flatbuffers::Table<'a>,
10523 }
10524
10525 impl<'a> ::flatbuffers::Follow<'a> for UnionOp<'a> {
10526 type Inner = UnionOp<'a>;
10527 #[inline]
10528 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
10529 Self {
10530 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
10531 }
10532 }
10533 }
10534
10535 impl<'a> UnionOp<'a> {
10536 pub const VT_LHS: ::flatbuffers::VOffsetT = 4;
10537 pub const VT_RHS: ::flatbuffers::VOffsetT = 6;
10538 pub const VT_ALL: ::flatbuffers::VOffsetT = 8;
10539 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
10540
10541 #[inline]
10542 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
10543 UnionOp { _tab: table }
10544 }
10545 #[allow(unused_mut)]
10546 pub fn create<
10547 'bldr: 'args,
10548 'args: 'mut_bldr,
10549 'mut_bldr,
10550 A: ::flatbuffers::Allocator + 'bldr,
10551 >(
10552 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
10553 args: &'args UnionOpArgs<'args>,
10554 ) -> ::flatbuffers::WIPOffset<UnionOp<'bldr>> {
10555 let mut builder = UnionOpBuilder::new(_fbb);
10556 if let Some(x) = args.schema {
10557 builder.add_schema(x);
10558 }
10559 builder.add_rhs(args.rhs);
10560 builder.add_lhs(args.lhs);
10561 builder.add_all(args.all);
10562 builder.finish()
10563 }
10564
10565 #[inline]
10566 pub fn lhs(&self) -> u32 {
10567 unsafe { self._tab.get::<u32>(UnionOp::VT_LHS, Some(0)).unwrap() }
10571 }
10572 #[inline]
10573 pub fn rhs(&self) -> u32 {
10574 unsafe { self._tab.get::<u32>(UnionOp::VT_RHS, Some(0)).unwrap() }
10578 }
10579 #[inline]
10580 pub fn all(&self) -> bool {
10581 unsafe { self._tab.get::<bool>(UnionOp::VT_ALL, Some(false)).unwrap() }
10585 }
10586 #[inline]
10587 pub fn schema(
10588 &self,
10589 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
10590 unsafe {
10594 self._tab.get::<::flatbuffers::ForwardsUOffset<
10595 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
10596 >>(UnionOp::VT_SCHEMA, None)
10597 }
10598 }
10599 }
10600
10601 impl ::flatbuffers::Verifiable for UnionOp<'_> {
10602 #[inline]
10603 fn run_verifier(
10604 v: &mut ::flatbuffers::Verifier,
10605 pos: usize,
10606 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
10607 v.visit_table(pos)?
10608 .visit_field::<u32>("lhs", Self::VT_LHS, false)?
10609 .visit_field::<u32>("rhs", Self::VT_RHS, false)?
10610 .visit_field::<bool>("all", Self::VT_ALL, false)?
10611 .visit_field::<::flatbuffers::ForwardsUOffset<
10612 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
10613 >>("schema", Self::VT_SCHEMA, false)?
10614 .finish();
10615 Ok(())
10616 }
10617 }
10618 pub struct UnionOpArgs<'a> {
10619 pub lhs: u32,
10620 pub rhs: u32,
10621 pub all: bool,
10622 pub schema: Option<
10623 ::flatbuffers::WIPOffset<
10624 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
10625 >,
10626 >,
10627 }
10628 impl<'a> Default for UnionOpArgs<'a> {
10629 #[inline]
10630 fn default() -> Self {
10631 UnionOpArgs {
10632 lhs: 0,
10633 rhs: 0,
10634 all: false,
10635 schema: None,
10636 }
10637 }
10638 }
10639
10640 pub struct UnionOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
10641 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10642 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
10643 }
10644 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> UnionOpBuilder<'a, 'b, A> {
10645 #[inline]
10646 pub fn add_lhs(&mut self, lhs: u32) {
10647 self.fbb_.push_slot::<u32>(UnionOp::VT_LHS, lhs, 0);
10648 }
10649 #[inline]
10650 pub fn add_rhs(&mut self, rhs: u32) {
10651 self.fbb_.push_slot::<u32>(UnionOp::VT_RHS, rhs, 0);
10652 }
10653 #[inline]
10654 pub fn add_all(&mut self, all: bool) {
10655 self.fbb_.push_slot::<bool>(UnionOp::VT_ALL, all, false);
10656 }
10657 #[inline]
10658 pub fn add_schema(
10659 &mut self,
10660 schema: ::flatbuffers::WIPOffset<
10661 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
10662 >,
10663 ) {
10664 self.fbb_
10665 .push_slot_always::<::flatbuffers::WIPOffset<_>>(UnionOp::VT_SCHEMA, schema);
10666 }
10667 #[inline]
10668 pub fn new(
10669 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10670 ) -> UnionOpBuilder<'a, 'b, A> {
10671 let start = _fbb.start_table();
10672 UnionOpBuilder {
10673 fbb_: _fbb,
10674 start_: start,
10675 }
10676 }
10677 #[inline]
10678 pub fn finish(self) -> ::flatbuffers::WIPOffset<UnionOp<'a>> {
10679 let o = self.fbb_.end_table(self.start_);
10680 ::flatbuffers::WIPOffset::new(o.value())
10681 }
10682 }
10683
10684 impl ::core::fmt::Debug for UnionOp<'_> {
10685 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10686 let mut ds = f.debug_struct("UnionOp");
10687 ds.field("lhs", &self.lhs());
10688 ds.field("rhs", &self.rhs());
10689 ds.field("all", &self.all());
10690 ds.field("schema", &self.schema());
10691 ds.finish()
10692 }
10693 }
10694 pub enum CreateNodeOpOffset {}
10695 #[derive(Copy, Clone, PartialEq)]
10696
10697 pub struct CreateNodeOp<'a> {
10698 pub _tab: ::flatbuffers::Table<'a>,
10699 }
10700
10701 impl<'a> ::flatbuffers::Follow<'a> for CreateNodeOp<'a> {
10702 type Inner = CreateNodeOp<'a>;
10703 #[inline]
10704 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
10705 Self {
10706 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
10707 }
10708 }
10709 }
10710
10711 impl<'a> CreateNodeOp<'a> {
10712 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
10713 pub const VT_LABELS: ::flatbuffers::VOffsetT = 6;
10714 pub const VT_PROPS: ::flatbuffers::VOffsetT = 8;
10715 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
10716 pub const VT_OUT_VAR: ::flatbuffers::VOffsetT = 12;
10717
10718 #[inline]
10719 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
10720 CreateNodeOp { _tab: table }
10721 }
10722 #[allow(unused_mut)]
10723 pub fn create<
10724 'bldr: 'args,
10725 'args: 'mut_bldr,
10726 'mut_bldr,
10727 A: ::flatbuffers::Allocator + 'bldr,
10728 >(
10729 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
10730 args: &'args CreateNodeOpArgs<'args>,
10731 ) -> ::flatbuffers::WIPOffset<CreateNodeOp<'bldr>> {
10732 let mut builder = CreateNodeOpBuilder::new(_fbb);
10733 if let Some(x) = args.out_var {
10734 builder.add_out_var(x);
10735 }
10736 if let Some(x) = args.schema {
10737 builder.add_schema(x);
10738 }
10739 if let Some(x) = args.props {
10740 builder.add_props(x);
10741 }
10742 if let Some(x) = args.labels {
10743 builder.add_labels(x);
10744 }
10745 builder.add_input(args.input);
10746 builder.finish()
10747 }
10748
10749 #[inline]
10750 pub fn input(&self) -> u32 {
10751 unsafe {
10755 self._tab
10756 .get::<u32>(CreateNodeOp::VT_INPUT, Some(0))
10757 .unwrap()
10758 }
10759 }
10760 #[inline]
10761 pub fn labels(
10762 &self,
10763 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>> {
10764 unsafe {
10768 self._tab.get::<::flatbuffers::ForwardsUOffset<
10769 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
10770 >>(CreateNodeOp::VT_LABELS, None)
10771 }
10772 }
10773 #[inline]
10774 pub fn props(&self) -> Option<Expr<'a>> {
10775 unsafe {
10779 self._tab
10780 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CreateNodeOp::VT_PROPS, None)
10781 }
10782 }
10783 #[inline]
10784 pub fn schema(
10785 &self,
10786 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
10787 unsafe {
10791 self._tab.get::<::flatbuffers::ForwardsUOffset<
10792 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
10793 >>(CreateNodeOp::VT_SCHEMA, None)
10794 }
10795 }
10796 #[inline]
10797 pub fn out_var(&self) -> Option<&'a str> {
10798 unsafe {
10802 self._tab
10803 .get::<::flatbuffers::ForwardsUOffset<&str>>(CreateNodeOp::VT_OUT_VAR, None)
10804 }
10805 }
10806 }
10807
10808 impl ::flatbuffers::Verifiable for CreateNodeOp<'_> {
10809 #[inline]
10810 fn run_verifier(
10811 v: &mut ::flatbuffers::Verifier,
10812 pos: usize,
10813 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
10814 v.visit_table(pos)?
10815 .visit_field::<u32>("input", Self::VT_INPUT, false)?
10816 .visit_field::<::flatbuffers::ForwardsUOffset<
10817 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<&'_ str>>,
10818 >>("labels", Self::VT_LABELS, false)?
10819 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
10820 "props",
10821 Self::VT_PROPS,
10822 false,
10823 )?
10824 .visit_field::<::flatbuffers::ForwardsUOffset<
10825 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
10826 >>("schema", Self::VT_SCHEMA, false)?
10827 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
10828 "out_var",
10829 Self::VT_OUT_VAR,
10830 false,
10831 )?
10832 .finish();
10833 Ok(())
10834 }
10835 }
10836 pub struct CreateNodeOpArgs<'a> {
10837 pub input: u32,
10838 pub labels: Option<
10839 ::flatbuffers::WIPOffset<
10840 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<&'a str>>,
10841 >,
10842 >,
10843 pub props: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
10844 pub schema: Option<
10845 ::flatbuffers::WIPOffset<
10846 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
10847 >,
10848 >,
10849 pub out_var: Option<::flatbuffers::WIPOffset<&'a str>>,
10850 }
10851 impl<'a> Default for CreateNodeOpArgs<'a> {
10852 #[inline]
10853 fn default() -> Self {
10854 CreateNodeOpArgs {
10855 input: 0,
10856 labels: None,
10857 props: None,
10858 schema: None,
10859 out_var: None,
10860 }
10861 }
10862 }
10863
10864 pub struct CreateNodeOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
10865 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10866 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
10867 }
10868 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CreateNodeOpBuilder<'a, 'b, A> {
10869 #[inline]
10870 pub fn add_input(&mut self, input: u32) {
10871 self.fbb_.push_slot::<u32>(CreateNodeOp::VT_INPUT, input, 0);
10872 }
10873 #[inline]
10874 pub fn add_labels(
10875 &mut self,
10876 labels: ::flatbuffers::WIPOffset<
10877 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<&'b str>>,
10878 >,
10879 ) {
10880 self.fbb_
10881 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CreateNodeOp::VT_LABELS, labels);
10882 }
10883 #[inline]
10884 pub fn add_props(&mut self, props: ::flatbuffers::WIPOffset<Expr<'b>>) {
10885 self.fbb_
10886 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(CreateNodeOp::VT_PROPS, props);
10887 }
10888 #[inline]
10889 pub fn add_schema(
10890 &mut self,
10891 schema: ::flatbuffers::WIPOffset<
10892 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
10893 >,
10894 ) {
10895 self.fbb_
10896 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CreateNodeOp::VT_SCHEMA, schema);
10897 }
10898 #[inline]
10899 pub fn add_out_var(&mut self, out_var: ::flatbuffers::WIPOffset<&'b str>) {
10900 self.fbb_
10901 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CreateNodeOp::VT_OUT_VAR, out_var);
10902 }
10903 #[inline]
10904 pub fn new(
10905 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
10906 ) -> CreateNodeOpBuilder<'a, 'b, A> {
10907 let start = _fbb.start_table();
10908 CreateNodeOpBuilder {
10909 fbb_: _fbb,
10910 start_: start,
10911 }
10912 }
10913 #[inline]
10914 pub fn finish(self) -> ::flatbuffers::WIPOffset<CreateNodeOp<'a>> {
10915 let o = self.fbb_.end_table(self.start_);
10916 ::flatbuffers::WIPOffset::new(o.value())
10917 }
10918 }
10919
10920 impl ::core::fmt::Debug for CreateNodeOp<'_> {
10921 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10922 let mut ds = f.debug_struct("CreateNodeOp");
10923 ds.field("input", &self.input());
10924 ds.field("labels", &self.labels());
10925 ds.field("props", &self.props());
10926 ds.field("schema", &self.schema());
10927 ds.field("out_var", &self.out_var());
10928 ds.finish()
10929 }
10930 }
10931 pub enum CreateRelOpOffset {}
10932 #[derive(Copy, Clone, PartialEq)]
10933
10934 pub struct CreateRelOp<'a> {
10935 pub _tab: ::flatbuffers::Table<'a>,
10936 }
10937
10938 impl<'a> ::flatbuffers::Follow<'a> for CreateRelOp<'a> {
10939 type Inner = CreateRelOp<'a>;
10940 #[inline]
10941 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
10942 Self {
10943 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
10944 }
10945 }
10946 }
10947
10948 impl<'a> CreateRelOp<'a> {
10949 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
10950 pub const VT_SRC_COL: ::flatbuffers::VOffsetT = 6;
10951 pub const VT_DST_COL: ::flatbuffers::VOffsetT = 8;
10952 pub const VT_REL_TYPE: ::flatbuffers::VOffsetT = 10;
10953 pub const VT_PROPS: ::flatbuffers::VOffsetT = 12;
10954 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 14;
10955 pub const VT_OUT_VAR: ::flatbuffers::VOffsetT = 16;
10956
10957 #[inline]
10958 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
10959 CreateRelOp { _tab: table }
10960 }
10961 #[allow(unused_mut)]
10962 pub fn create<
10963 'bldr: 'args,
10964 'args: 'mut_bldr,
10965 'mut_bldr,
10966 A: ::flatbuffers::Allocator + 'bldr,
10967 >(
10968 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
10969 args: &'args CreateRelOpArgs<'args>,
10970 ) -> ::flatbuffers::WIPOffset<CreateRelOp<'bldr>> {
10971 let mut builder = CreateRelOpBuilder::new(_fbb);
10972 if let Some(x) = args.out_var {
10973 builder.add_out_var(x);
10974 }
10975 if let Some(x) = args.schema {
10976 builder.add_schema(x);
10977 }
10978 if let Some(x) = args.props {
10979 builder.add_props(x);
10980 }
10981 if let Some(x) = args.rel_type {
10982 builder.add_rel_type(x);
10983 }
10984 builder.add_dst_col(args.dst_col);
10985 builder.add_src_col(args.src_col);
10986 builder.add_input(args.input);
10987 builder.finish()
10988 }
10989
10990 #[inline]
10991 pub fn input(&self) -> u32 {
10992 unsafe {
10996 self._tab
10997 .get::<u32>(CreateRelOp::VT_INPUT, Some(0))
10998 .unwrap()
10999 }
11000 }
11001 #[inline]
11002 pub fn src_col(&self) -> i32 {
11003 unsafe {
11007 self._tab
11008 .get::<i32>(CreateRelOp::VT_SRC_COL, Some(0))
11009 .unwrap()
11010 }
11011 }
11012 #[inline]
11013 pub fn dst_col(&self) -> i32 {
11014 unsafe {
11018 self._tab
11019 .get::<i32>(CreateRelOp::VT_DST_COL, Some(0))
11020 .unwrap()
11021 }
11022 }
11023 #[inline]
11024 pub fn rel_type(&self) -> Option<&'a str> {
11025 unsafe {
11029 self._tab
11030 .get::<::flatbuffers::ForwardsUOffset<&str>>(CreateRelOp::VT_REL_TYPE, None)
11031 }
11032 }
11033 #[inline]
11034 pub fn props(&self) -> Option<Expr<'a>> {
11035 unsafe {
11039 self._tab
11040 .get::<::flatbuffers::ForwardsUOffset<Expr>>(CreateRelOp::VT_PROPS, None)
11041 }
11042 }
11043 #[inline]
11044 pub fn schema(
11045 &self,
11046 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
11047 unsafe {
11051 self._tab.get::<::flatbuffers::ForwardsUOffset<
11052 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
11053 >>(CreateRelOp::VT_SCHEMA, None)
11054 }
11055 }
11056 #[inline]
11057 pub fn out_var(&self) -> Option<&'a str> {
11058 unsafe {
11062 self._tab
11063 .get::<::flatbuffers::ForwardsUOffset<&str>>(CreateRelOp::VT_OUT_VAR, None)
11064 }
11065 }
11066 }
11067
11068 impl ::flatbuffers::Verifiable for CreateRelOp<'_> {
11069 #[inline]
11070 fn run_verifier(
11071 v: &mut ::flatbuffers::Verifier,
11072 pos: usize,
11073 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
11074 v.visit_table(pos)?
11075 .visit_field::<u32>("input", Self::VT_INPUT, false)?
11076 .visit_field::<i32>("src_col", Self::VT_SRC_COL, false)?
11077 .visit_field::<i32>("dst_col", Self::VT_DST_COL, false)?
11078 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
11079 "rel_type",
11080 Self::VT_REL_TYPE,
11081 false,
11082 )?
11083 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
11084 "props",
11085 Self::VT_PROPS,
11086 false,
11087 )?
11088 .visit_field::<::flatbuffers::ForwardsUOffset<
11089 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
11090 >>("schema", Self::VT_SCHEMA, false)?
11091 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
11092 "out_var",
11093 Self::VT_OUT_VAR,
11094 false,
11095 )?
11096 .finish();
11097 Ok(())
11098 }
11099 }
11100 pub struct CreateRelOpArgs<'a> {
11101 pub input: u32,
11102 pub src_col: i32,
11103 pub dst_col: i32,
11104 pub rel_type: Option<::flatbuffers::WIPOffset<&'a str>>,
11105 pub props: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
11106 pub schema: Option<
11107 ::flatbuffers::WIPOffset<
11108 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
11109 >,
11110 >,
11111 pub out_var: Option<::flatbuffers::WIPOffset<&'a str>>,
11112 }
11113 impl<'a> Default for CreateRelOpArgs<'a> {
11114 #[inline]
11115 fn default() -> Self {
11116 CreateRelOpArgs {
11117 input: 0,
11118 src_col: 0,
11119 dst_col: 0,
11120 rel_type: None,
11121 props: None,
11122 schema: None,
11123 out_var: None,
11124 }
11125 }
11126 }
11127
11128 pub struct CreateRelOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
11129 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11130 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
11131 }
11132 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> CreateRelOpBuilder<'a, 'b, A> {
11133 #[inline]
11134 pub fn add_input(&mut self, input: u32) {
11135 self.fbb_.push_slot::<u32>(CreateRelOp::VT_INPUT, input, 0);
11136 }
11137 #[inline]
11138 pub fn add_src_col(&mut self, src_col: i32) {
11139 self.fbb_
11140 .push_slot::<i32>(CreateRelOp::VT_SRC_COL, src_col, 0);
11141 }
11142 #[inline]
11143 pub fn add_dst_col(&mut self, dst_col: i32) {
11144 self.fbb_
11145 .push_slot::<i32>(CreateRelOp::VT_DST_COL, dst_col, 0);
11146 }
11147 #[inline]
11148 pub fn add_rel_type(&mut self, rel_type: ::flatbuffers::WIPOffset<&'b str>) {
11149 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
11150 CreateRelOp::VT_REL_TYPE,
11151 rel_type,
11152 );
11153 }
11154 #[inline]
11155 pub fn add_props(&mut self, props: ::flatbuffers::WIPOffset<Expr<'b>>) {
11156 self.fbb_
11157 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(CreateRelOp::VT_PROPS, props);
11158 }
11159 #[inline]
11160 pub fn add_schema(
11161 &mut self,
11162 schema: ::flatbuffers::WIPOffset<
11163 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
11164 >,
11165 ) {
11166 self.fbb_
11167 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CreateRelOp::VT_SCHEMA, schema);
11168 }
11169 #[inline]
11170 pub fn add_out_var(&mut self, out_var: ::flatbuffers::WIPOffset<&'b str>) {
11171 self.fbb_
11172 .push_slot_always::<::flatbuffers::WIPOffset<_>>(CreateRelOp::VT_OUT_VAR, out_var);
11173 }
11174 #[inline]
11175 pub fn new(
11176 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11177 ) -> CreateRelOpBuilder<'a, 'b, A> {
11178 let start = _fbb.start_table();
11179 CreateRelOpBuilder {
11180 fbb_: _fbb,
11181 start_: start,
11182 }
11183 }
11184 #[inline]
11185 pub fn finish(self) -> ::flatbuffers::WIPOffset<CreateRelOp<'a>> {
11186 let o = self.fbb_.end_table(self.start_);
11187 ::flatbuffers::WIPOffset::new(o.value())
11188 }
11189 }
11190
11191 impl ::core::fmt::Debug for CreateRelOp<'_> {
11192 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11193 let mut ds = f.debug_struct("CreateRelOp");
11194 ds.field("input", &self.input());
11195 ds.field("src_col", &self.src_col());
11196 ds.field("dst_col", &self.dst_col());
11197 ds.field("rel_type", &self.rel_type());
11198 ds.field("props", &self.props());
11199 ds.field("schema", &self.schema());
11200 ds.field("out_var", &self.out_var());
11201 ds.finish()
11202 }
11203 }
11204 pub enum MergeOpOffset {}
11205 #[derive(Copy, Clone, PartialEq)]
11206
11207 pub struct MergeOp<'a> {
11208 pub _tab: ::flatbuffers::Table<'a>,
11209 }
11210
11211 impl<'a> ::flatbuffers::Follow<'a> for MergeOp<'a> {
11212 type Inner = MergeOp<'a>;
11213 #[inline]
11214 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
11215 Self {
11216 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
11217 }
11218 }
11219 }
11220
11221 impl<'a> MergeOp<'a> {
11222 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
11223 pub const VT_PATTERN: ::flatbuffers::VOffsetT = 6;
11224 pub const VT_ON_CREATE_PROPS: ::flatbuffers::VOffsetT = 8;
11225 pub const VT_ON_MATCH_PROPS: ::flatbuffers::VOffsetT = 10;
11226 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 12;
11227
11228 #[inline]
11229 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
11230 MergeOp { _tab: table }
11231 }
11232 #[allow(unused_mut)]
11233 pub fn create<
11234 'bldr: 'args,
11235 'args: 'mut_bldr,
11236 'mut_bldr,
11237 A: ::flatbuffers::Allocator + 'bldr,
11238 >(
11239 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
11240 args: &'args MergeOpArgs<'args>,
11241 ) -> ::flatbuffers::WIPOffset<MergeOp<'bldr>> {
11242 let mut builder = MergeOpBuilder::new(_fbb);
11243 if let Some(x) = args.schema {
11244 builder.add_schema(x);
11245 }
11246 if let Some(x) = args.on_match_props {
11247 builder.add_on_match_props(x);
11248 }
11249 if let Some(x) = args.on_create_props {
11250 builder.add_on_create_props(x);
11251 }
11252 if let Some(x) = args.pattern {
11253 builder.add_pattern(x);
11254 }
11255 builder.add_input(args.input);
11256 builder.finish()
11257 }
11258
11259 #[inline]
11260 pub fn input(&self) -> u32 {
11261 unsafe { self._tab.get::<u32>(MergeOp::VT_INPUT, Some(0)).unwrap() }
11265 }
11266 #[inline]
11267 pub fn pattern(&self) -> Option<Expr<'a>> {
11268 unsafe {
11272 self._tab
11273 .get::<::flatbuffers::ForwardsUOffset<Expr>>(MergeOp::VT_PATTERN, None)
11274 }
11275 }
11276 #[inline]
11277 pub fn on_create_props(&self) -> Option<Expr<'a>> {
11278 unsafe {
11282 self._tab
11283 .get::<::flatbuffers::ForwardsUOffset<Expr>>(MergeOp::VT_ON_CREATE_PROPS, None)
11284 }
11285 }
11286 #[inline]
11287 pub fn on_match_props(&self) -> Option<Expr<'a>> {
11288 unsafe {
11292 self._tab
11293 .get::<::flatbuffers::ForwardsUOffset<Expr>>(MergeOp::VT_ON_MATCH_PROPS, None)
11294 }
11295 }
11296 #[inline]
11297 pub fn schema(
11298 &self,
11299 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
11300 unsafe {
11304 self._tab.get::<::flatbuffers::ForwardsUOffset<
11305 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
11306 >>(MergeOp::VT_SCHEMA, None)
11307 }
11308 }
11309 }
11310
11311 impl ::flatbuffers::Verifiable for MergeOp<'_> {
11312 #[inline]
11313 fn run_verifier(
11314 v: &mut ::flatbuffers::Verifier,
11315 pos: usize,
11316 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
11317 v.visit_table(pos)?
11318 .visit_field::<u32>("input", Self::VT_INPUT, false)?
11319 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
11320 "pattern",
11321 Self::VT_PATTERN,
11322 false,
11323 )?
11324 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
11325 "on_create_props",
11326 Self::VT_ON_CREATE_PROPS,
11327 false,
11328 )?
11329 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
11330 "on_match_props",
11331 Self::VT_ON_MATCH_PROPS,
11332 false,
11333 )?
11334 .visit_field::<::flatbuffers::ForwardsUOffset<
11335 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
11336 >>("schema", Self::VT_SCHEMA, false)?
11337 .finish();
11338 Ok(())
11339 }
11340 }
11341 pub struct MergeOpArgs<'a> {
11342 pub input: u32,
11343 pub pattern: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
11344 pub on_create_props: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
11345 pub on_match_props: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
11346 pub schema: Option<
11347 ::flatbuffers::WIPOffset<
11348 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
11349 >,
11350 >,
11351 }
11352 impl<'a> Default for MergeOpArgs<'a> {
11353 #[inline]
11354 fn default() -> Self {
11355 MergeOpArgs {
11356 input: 0,
11357 pattern: None,
11358 on_create_props: None,
11359 on_match_props: None,
11360 schema: None,
11361 }
11362 }
11363 }
11364
11365 pub struct MergeOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
11366 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11367 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
11368 }
11369 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> MergeOpBuilder<'a, 'b, A> {
11370 #[inline]
11371 pub fn add_input(&mut self, input: u32) {
11372 self.fbb_.push_slot::<u32>(MergeOp::VT_INPUT, input, 0);
11373 }
11374 #[inline]
11375 pub fn add_pattern(&mut self, pattern: ::flatbuffers::WIPOffset<Expr<'b>>) {
11376 self.fbb_
11377 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(MergeOp::VT_PATTERN, pattern);
11378 }
11379 #[inline]
11380 pub fn add_on_create_props(&mut self, on_create_props: ::flatbuffers::WIPOffset<Expr<'b>>) {
11381 self.fbb_
11382 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
11383 MergeOp::VT_ON_CREATE_PROPS,
11384 on_create_props,
11385 );
11386 }
11387 #[inline]
11388 pub fn add_on_match_props(&mut self, on_match_props: ::flatbuffers::WIPOffset<Expr<'b>>) {
11389 self.fbb_
11390 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
11391 MergeOp::VT_ON_MATCH_PROPS,
11392 on_match_props,
11393 );
11394 }
11395 #[inline]
11396 pub fn add_schema(
11397 &mut self,
11398 schema: ::flatbuffers::WIPOffset<
11399 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
11400 >,
11401 ) {
11402 self.fbb_
11403 .push_slot_always::<::flatbuffers::WIPOffset<_>>(MergeOp::VT_SCHEMA, schema);
11404 }
11405 #[inline]
11406 pub fn new(
11407 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11408 ) -> MergeOpBuilder<'a, 'b, A> {
11409 let start = _fbb.start_table();
11410 MergeOpBuilder {
11411 fbb_: _fbb,
11412 start_: start,
11413 }
11414 }
11415 #[inline]
11416 pub fn finish(self) -> ::flatbuffers::WIPOffset<MergeOp<'a>> {
11417 let o = self.fbb_.end_table(self.start_);
11418 ::flatbuffers::WIPOffset::new(o.value())
11419 }
11420 }
11421
11422 impl ::core::fmt::Debug for MergeOp<'_> {
11423 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11424 let mut ds = f.debug_struct("MergeOp");
11425 ds.field("input", &self.input());
11426 ds.field("pattern", &self.pattern());
11427 ds.field("on_create_props", &self.on_create_props());
11428 ds.field("on_match_props", &self.on_match_props());
11429 ds.field("schema", &self.schema());
11430 ds.finish()
11431 }
11432 }
11433 pub enum DeleteOpOffset {}
11434 #[derive(Copy, Clone, PartialEq)]
11435
11436 pub struct DeleteOp<'a> {
11437 pub _tab: ::flatbuffers::Table<'a>,
11438 }
11439
11440 impl<'a> ::flatbuffers::Follow<'a> for DeleteOp<'a> {
11441 type Inner = DeleteOp<'a>;
11442 #[inline]
11443 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
11444 Self {
11445 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
11446 }
11447 }
11448 }
11449
11450 impl<'a> DeleteOp<'a> {
11451 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
11452 pub const VT_TARGET_COL: ::flatbuffers::VOffsetT = 6;
11453 pub const VT_DETACH: ::flatbuffers::VOffsetT = 8;
11454 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
11455
11456 #[inline]
11457 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
11458 DeleteOp { _tab: table }
11459 }
11460 #[allow(unused_mut)]
11461 pub fn create<
11462 'bldr: 'args,
11463 'args: 'mut_bldr,
11464 'mut_bldr,
11465 A: ::flatbuffers::Allocator + 'bldr,
11466 >(
11467 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
11468 args: &'args DeleteOpArgs<'args>,
11469 ) -> ::flatbuffers::WIPOffset<DeleteOp<'bldr>> {
11470 let mut builder = DeleteOpBuilder::new(_fbb);
11471 if let Some(x) = args.schema {
11472 builder.add_schema(x);
11473 }
11474 builder.add_target_col(args.target_col);
11475 builder.add_input(args.input);
11476 builder.add_detach(args.detach);
11477 builder.finish()
11478 }
11479
11480 #[inline]
11481 pub fn input(&self) -> u32 {
11482 unsafe { self._tab.get::<u32>(DeleteOp::VT_INPUT, Some(0)).unwrap() }
11486 }
11487 #[inline]
11488 pub fn target_col(&self) -> i32 {
11489 unsafe {
11493 self._tab
11494 .get::<i32>(DeleteOp::VT_TARGET_COL, Some(0))
11495 .unwrap()
11496 }
11497 }
11498 #[inline]
11499 pub fn detach(&self) -> bool {
11500 unsafe {
11504 self._tab
11505 .get::<bool>(DeleteOp::VT_DETACH, Some(false))
11506 .unwrap()
11507 }
11508 }
11509 #[inline]
11510 pub fn schema(
11511 &self,
11512 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
11513 unsafe {
11517 self._tab.get::<::flatbuffers::ForwardsUOffset<
11518 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
11519 >>(DeleteOp::VT_SCHEMA, None)
11520 }
11521 }
11522 }
11523
11524 impl ::flatbuffers::Verifiable for DeleteOp<'_> {
11525 #[inline]
11526 fn run_verifier(
11527 v: &mut ::flatbuffers::Verifier,
11528 pos: usize,
11529 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
11530 v.visit_table(pos)?
11531 .visit_field::<u32>("input", Self::VT_INPUT, false)?
11532 .visit_field::<i32>("target_col", Self::VT_TARGET_COL, false)?
11533 .visit_field::<bool>("detach", Self::VT_DETACH, false)?
11534 .visit_field::<::flatbuffers::ForwardsUOffset<
11535 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
11536 >>("schema", Self::VT_SCHEMA, false)?
11537 .finish();
11538 Ok(())
11539 }
11540 }
11541 pub struct DeleteOpArgs<'a> {
11542 pub input: u32,
11543 pub target_col: i32,
11544 pub detach: bool,
11545 pub schema: Option<
11546 ::flatbuffers::WIPOffset<
11547 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
11548 >,
11549 >,
11550 }
11551 impl<'a> Default for DeleteOpArgs<'a> {
11552 #[inline]
11553 fn default() -> Self {
11554 DeleteOpArgs {
11555 input: 0,
11556 target_col: 0,
11557 detach: false,
11558 schema: None,
11559 }
11560 }
11561 }
11562
11563 pub struct DeleteOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
11564 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11565 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
11566 }
11567 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> DeleteOpBuilder<'a, 'b, A> {
11568 #[inline]
11569 pub fn add_input(&mut self, input: u32) {
11570 self.fbb_.push_slot::<u32>(DeleteOp::VT_INPUT, input, 0);
11571 }
11572 #[inline]
11573 pub fn add_target_col(&mut self, target_col: i32) {
11574 self.fbb_
11575 .push_slot::<i32>(DeleteOp::VT_TARGET_COL, target_col, 0);
11576 }
11577 #[inline]
11578 pub fn add_detach(&mut self, detach: bool) {
11579 self.fbb_
11580 .push_slot::<bool>(DeleteOp::VT_DETACH, detach, false);
11581 }
11582 #[inline]
11583 pub fn add_schema(
11584 &mut self,
11585 schema: ::flatbuffers::WIPOffset<
11586 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
11587 >,
11588 ) {
11589 self.fbb_
11590 .push_slot_always::<::flatbuffers::WIPOffset<_>>(DeleteOp::VT_SCHEMA, schema);
11591 }
11592 #[inline]
11593 pub fn new(
11594 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11595 ) -> DeleteOpBuilder<'a, 'b, A> {
11596 let start = _fbb.start_table();
11597 DeleteOpBuilder {
11598 fbb_: _fbb,
11599 start_: start,
11600 }
11601 }
11602 #[inline]
11603 pub fn finish(self) -> ::flatbuffers::WIPOffset<DeleteOp<'a>> {
11604 let o = self.fbb_.end_table(self.start_);
11605 ::flatbuffers::WIPOffset::new(o.value())
11606 }
11607 }
11608
11609 impl ::core::fmt::Debug for DeleteOp<'_> {
11610 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11611 let mut ds = f.debug_struct("DeleteOp");
11612 ds.field("input", &self.input());
11613 ds.field("target_col", &self.target_col());
11614 ds.field("detach", &self.detach());
11615 ds.field("schema", &self.schema());
11616 ds.finish()
11617 }
11618 }
11619 pub enum SetPropertyOpOffset {}
11620 #[derive(Copy, Clone, PartialEq)]
11621
11622 pub struct SetPropertyOp<'a> {
11623 pub _tab: ::flatbuffers::Table<'a>,
11624 }
11625
11626 impl<'a> ::flatbuffers::Follow<'a> for SetPropertyOp<'a> {
11627 type Inner = SetPropertyOp<'a>;
11628 #[inline]
11629 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
11630 Self {
11631 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
11632 }
11633 }
11634 }
11635
11636 impl<'a> SetPropertyOp<'a> {
11637 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
11638 pub const VT_TARGET_COL: ::flatbuffers::VOffsetT = 6;
11639 pub const VT_KEY: ::flatbuffers::VOffsetT = 8;
11640 pub const VT_VALUE_EXPR: ::flatbuffers::VOffsetT = 10;
11641 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 12;
11642
11643 #[inline]
11644 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
11645 SetPropertyOp { _tab: table }
11646 }
11647 #[allow(unused_mut)]
11648 pub fn create<
11649 'bldr: 'args,
11650 'args: 'mut_bldr,
11651 'mut_bldr,
11652 A: ::flatbuffers::Allocator + 'bldr,
11653 >(
11654 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
11655 args: &'args SetPropertyOpArgs<'args>,
11656 ) -> ::flatbuffers::WIPOffset<SetPropertyOp<'bldr>> {
11657 let mut builder = SetPropertyOpBuilder::new(_fbb);
11658 if let Some(x) = args.schema {
11659 builder.add_schema(x);
11660 }
11661 if let Some(x) = args.value_expr {
11662 builder.add_value_expr(x);
11663 }
11664 if let Some(x) = args.key {
11665 builder.add_key(x);
11666 }
11667 builder.add_target_col(args.target_col);
11668 builder.add_input(args.input);
11669 builder.finish()
11670 }
11671
11672 #[inline]
11673 pub fn input(&self) -> u32 {
11674 unsafe {
11678 self._tab
11679 .get::<u32>(SetPropertyOp::VT_INPUT, Some(0))
11680 .unwrap()
11681 }
11682 }
11683 #[inline]
11684 pub fn target_col(&self) -> i32 {
11685 unsafe {
11689 self._tab
11690 .get::<i32>(SetPropertyOp::VT_TARGET_COL, Some(0))
11691 .unwrap()
11692 }
11693 }
11694 #[inline]
11695 pub fn key(&self) -> Option<&'a str> {
11696 unsafe {
11700 self._tab
11701 .get::<::flatbuffers::ForwardsUOffset<&str>>(SetPropertyOp::VT_KEY, None)
11702 }
11703 }
11704 #[inline]
11705 pub fn value_expr(&self) -> Option<Expr<'a>> {
11706 unsafe {
11710 self._tab
11711 .get::<::flatbuffers::ForwardsUOffset<Expr>>(SetPropertyOp::VT_VALUE_EXPR, None)
11712 }
11713 }
11714 #[inline]
11715 pub fn schema(
11716 &self,
11717 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
11718 unsafe {
11722 self._tab.get::<::flatbuffers::ForwardsUOffset<
11723 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
11724 >>(SetPropertyOp::VT_SCHEMA, None)
11725 }
11726 }
11727 }
11728
11729 impl ::flatbuffers::Verifiable for SetPropertyOp<'_> {
11730 #[inline]
11731 fn run_verifier(
11732 v: &mut ::flatbuffers::Verifier,
11733 pos: usize,
11734 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
11735 v.visit_table(pos)?
11736 .visit_field::<u32>("input", Self::VT_INPUT, false)?
11737 .visit_field::<i32>("target_col", Self::VT_TARGET_COL, false)?
11738 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("key", Self::VT_KEY, false)?
11739 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
11740 "value_expr",
11741 Self::VT_VALUE_EXPR,
11742 false,
11743 )?
11744 .visit_field::<::flatbuffers::ForwardsUOffset<
11745 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
11746 >>("schema", Self::VT_SCHEMA, false)?
11747 .finish();
11748 Ok(())
11749 }
11750 }
11751 pub struct SetPropertyOpArgs<'a> {
11752 pub input: u32,
11753 pub target_col: i32,
11754 pub key: Option<::flatbuffers::WIPOffset<&'a str>>,
11755 pub value_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
11756 pub schema: Option<
11757 ::flatbuffers::WIPOffset<
11758 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
11759 >,
11760 >,
11761 }
11762 impl<'a> Default for SetPropertyOpArgs<'a> {
11763 #[inline]
11764 fn default() -> Self {
11765 SetPropertyOpArgs {
11766 input: 0,
11767 target_col: 0,
11768 key: None,
11769 value_expr: None,
11770 schema: None,
11771 }
11772 }
11773 }
11774
11775 pub struct SetPropertyOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
11776 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11777 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
11778 }
11779 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> SetPropertyOpBuilder<'a, 'b, A> {
11780 #[inline]
11781 pub fn add_input(&mut self, input: u32) {
11782 self.fbb_
11783 .push_slot::<u32>(SetPropertyOp::VT_INPUT, input, 0);
11784 }
11785 #[inline]
11786 pub fn add_target_col(&mut self, target_col: i32) {
11787 self.fbb_
11788 .push_slot::<i32>(SetPropertyOp::VT_TARGET_COL, target_col, 0);
11789 }
11790 #[inline]
11791 pub fn add_key(&mut self, key: ::flatbuffers::WIPOffset<&'b str>) {
11792 self.fbb_
11793 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SetPropertyOp::VT_KEY, key);
11794 }
11795 #[inline]
11796 pub fn add_value_expr(&mut self, value_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
11797 self.fbb_
11798 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
11799 SetPropertyOp::VT_VALUE_EXPR,
11800 value_expr,
11801 );
11802 }
11803 #[inline]
11804 pub fn add_schema(
11805 &mut self,
11806 schema: ::flatbuffers::WIPOffset<
11807 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
11808 >,
11809 ) {
11810 self.fbb_
11811 .push_slot_always::<::flatbuffers::WIPOffset<_>>(SetPropertyOp::VT_SCHEMA, schema);
11812 }
11813 #[inline]
11814 pub fn new(
11815 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11816 ) -> SetPropertyOpBuilder<'a, 'b, A> {
11817 let start = _fbb.start_table();
11818 SetPropertyOpBuilder {
11819 fbb_: _fbb,
11820 start_: start,
11821 }
11822 }
11823 #[inline]
11824 pub fn finish(self) -> ::flatbuffers::WIPOffset<SetPropertyOp<'a>> {
11825 let o = self.fbb_.end_table(self.start_);
11826 ::flatbuffers::WIPOffset::new(o.value())
11827 }
11828 }
11829
11830 impl ::core::fmt::Debug for SetPropertyOp<'_> {
11831 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11832 let mut ds = f.debug_struct("SetPropertyOp");
11833 ds.field("input", &self.input());
11834 ds.field("target_col", &self.target_col());
11835 ds.field("key", &self.key());
11836 ds.field("value_expr", &self.value_expr());
11837 ds.field("schema", &self.schema());
11838 ds.finish()
11839 }
11840 }
11841 pub enum RemovePropertyOpOffset {}
11842 #[derive(Copy, Clone, PartialEq)]
11843
11844 pub struct RemovePropertyOp<'a> {
11845 pub _tab: ::flatbuffers::Table<'a>,
11846 }
11847
11848 impl<'a> ::flatbuffers::Follow<'a> for RemovePropertyOp<'a> {
11849 type Inner = RemovePropertyOp<'a>;
11850 #[inline]
11851 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
11852 Self {
11853 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
11854 }
11855 }
11856 }
11857
11858 impl<'a> RemovePropertyOp<'a> {
11859 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
11860 pub const VT_TARGET_COL: ::flatbuffers::VOffsetT = 6;
11861 pub const VT_KEY: ::flatbuffers::VOffsetT = 8;
11862 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
11863
11864 #[inline]
11865 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
11866 RemovePropertyOp { _tab: table }
11867 }
11868 #[allow(unused_mut)]
11869 pub fn create<
11870 'bldr: 'args,
11871 'args: 'mut_bldr,
11872 'mut_bldr,
11873 A: ::flatbuffers::Allocator + 'bldr,
11874 >(
11875 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
11876 args: &'args RemovePropertyOpArgs<'args>,
11877 ) -> ::flatbuffers::WIPOffset<RemovePropertyOp<'bldr>> {
11878 let mut builder = RemovePropertyOpBuilder::new(_fbb);
11879 if let Some(x) = args.schema {
11880 builder.add_schema(x);
11881 }
11882 if let Some(x) = args.key {
11883 builder.add_key(x);
11884 }
11885 builder.add_target_col(args.target_col);
11886 builder.add_input(args.input);
11887 builder.finish()
11888 }
11889
11890 #[inline]
11891 pub fn input(&self) -> u32 {
11892 unsafe {
11896 self._tab
11897 .get::<u32>(RemovePropertyOp::VT_INPUT, Some(0))
11898 .unwrap()
11899 }
11900 }
11901 #[inline]
11902 pub fn target_col(&self) -> i32 {
11903 unsafe {
11907 self._tab
11908 .get::<i32>(RemovePropertyOp::VT_TARGET_COL, Some(0))
11909 .unwrap()
11910 }
11911 }
11912 #[inline]
11913 pub fn key(&self) -> Option<&'a str> {
11914 unsafe {
11918 self._tab
11919 .get::<::flatbuffers::ForwardsUOffset<&str>>(RemovePropertyOp::VT_KEY, None)
11920 }
11921 }
11922 #[inline]
11923 pub fn schema(
11924 &self,
11925 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
11926 unsafe {
11930 self._tab.get::<::flatbuffers::ForwardsUOffset<
11931 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
11932 >>(RemovePropertyOp::VT_SCHEMA, None)
11933 }
11934 }
11935 }
11936
11937 impl ::flatbuffers::Verifiable for RemovePropertyOp<'_> {
11938 #[inline]
11939 fn run_verifier(
11940 v: &mut ::flatbuffers::Verifier,
11941 pos: usize,
11942 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
11943 v.visit_table(pos)?
11944 .visit_field::<u32>("input", Self::VT_INPUT, false)?
11945 .visit_field::<i32>("target_col", Self::VT_TARGET_COL, false)?
11946 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("key", Self::VT_KEY, false)?
11947 .visit_field::<::flatbuffers::ForwardsUOffset<
11948 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
11949 >>("schema", Self::VT_SCHEMA, false)?
11950 .finish();
11951 Ok(())
11952 }
11953 }
11954 pub struct RemovePropertyOpArgs<'a> {
11955 pub input: u32,
11956 pub target_col: i32,
11957 pub key: Option<::flatbuffers::WIPOffset<&'a str>>,
11958 pub schema: Option<
11959 ::flatbuffers::WIPOffset<
11960 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
11961 >,
11962 >,
11963 }
11964 impl<'a> Default for RemovePropertyOpArgs<'a> {
11965 #[inline]
11966 fn default() -> Self {
11967 RemovePropertyOpArgs {
11968 input: 0,
11969 target_col: 0,
11970 key: None,
11971 schema: None,
11972 }
11973 }
11974 }
11975
11976 pub struct RemovePropertyOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
11977 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
11978 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
11979 }
11980 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> RemovePropertyOpBuilder<'a, 'b, A> {
11981 #[inline]
11982 pub fn add_input(&mut self, input: u32) {
11983 self.fbb_
11984 .push_slot::<u32>(RemovePropertyOp::VT_INPUT, input, 0);
11985 }
11986 #[inline]
11987 pub fn add_target_col(&mut self, target_col: i32) {
11988 self.fbb_
11989 .push_slot::<i32>(RemovePropertyOp::VT_TARGET_COL, target_col, 0);
11990 }
11991 #[inline]
11992 pub fn add_key(&mut self, key: ::flatbuffers::WIPOffset<&'b str>) {
11993 self.fbb_
11994 .push_slot_always::<::flatbuffers::WIPOffset<_>>(RemovePropertyOp::VT_KEY, key);
11995 }
11996 #[inline]
11997 pub fn add_schema(
11998 &mut self,
11999 schema: ::flatbuffers::WIPOffset<
12000 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
12001 >,
12002 ) {
12003 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
12004 RemovePropertyOp::VT_SCHEMA,
12005 schema,
12006 );
12007 }
12008 #[inline]
12009 pub fn new(
12010 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12011 ) -> RemovePropertyOpBuilder<'a, 'b, A> {
12012 let start = _fbb.start_table();
12013 RemovePropertyOpBuilder {
12014 fbb_: _fbb,
12015 start_: start,
12016 }
12017 }
12018 #[inline]
12019 pub fn finish(self) -> ::flatbuffers::WIPOffset<RemovePropertyOp<'a>> {
12020 let o = self.fbb_.end_table(self.start_);
12021 ::flatbuffers::WIPOffset::new(o.value())
12022 }
12023 }
12024
12025 impl ::core::fmt::Debug for RemovePropertyOp<'_> {
12026 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12027 let mut ds = f.debug_struct("RemovePropertyOp");
12028 ds.field("input", &self.input());
12029 ds.field("target_col", &self.target_col());
12030 ds.field("key", &self.key());
12031 ds.field("schema", &self.schema());
12032 ds.finish()
12033 }
12034 }
12035 pub enum VectorScanOpOffset {}
12036 #[derive(Copy, Clone, PartialEq)]
12037
12038 pub struct VectorScanOp<'a> {
12039 pub _tab: ::flatbuffers::Table<'a>,
12040 }
12041
12042 impl<'a> ::flatbuffers::Follow<'a> for VectorScanOp<'a> {
12043 type Inner = VectorScanOp<'a>;
12044 #[inline]
12045 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
12046 Self {
12047 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
12048 }
12049 }
12050 }
12051
12052 impl<'a> VectorScanOp<'a> {
12053 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
12054 pub const VT_COLLECTION: ::flatbuffers::VOffsetT = 6;
12055 pub const VT_QUERY_VECTOR: ::flatbuffers::VOffsetT = 8;
12056 pub const VT_METRIC: ::flatbuffers::VOffsetT = 10;
12057 pub const VT_TOP_K: ::flatbuffers::VOffsetT = 12;
12058 pub const VT_APPROX_HINT: ::flatbuffers::VOffsetT = 14;
12059 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 16;
12060
12061 #[inline]
12062 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
12063 VectorScanOp { _tab: table }
12064 }
12065 #[allow(unused_mut)]
12066 pub fn create<
12067 'bldr: 'args,
12068 'args: 'mut_bldr,
12069 'mut_bldr,
12070 A: ::flatbuffers::Allocator + 'bldr,
12071 >(
12072 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
12073 args: &'args VectorScanOpArgs<'args>,
12074 ) -> ::flatbuffers::WIPOffset<VectorScanOp<'bldr>> {
12075 let mut builder = VectorScanOpBuilder::new(_fbb);
12076 if let Some(x) = args.schema {
12077 builder.add_schema(x);
12078 }
12079 builder.add_top_k(args.top_k);
12080 if let Some(x) = args.query_vector {
12081 builder.add_query_vector(x);
12082 }
12083 if let Some(x) = args.collection {
12084 builder.add_collection(x);
12085 }
12086 builder.add_input(args.input);
12087 builder.add_approx_hint(args.approx_hint);
12088 builder.add_metric(args.metric);
12089 builder.finish()
12090 }
12091
12092 #[inline]
12093 pub fn input(&self) -> u32 {
12094 unsafe {
12098 self._tab
12099 .get::<u32>(VectorScanOp::VT_INPUT, Some(0))
12100 .unwrap()
12101 }
12102 }
12103 #[inline]
12104 pub fn collection(&self) -> Option<&'a str> {
12105 unsafe {
12109 self._tab
12110 .get::<::flatbuffers::ForwardsUOffset<&str>>(VectorScanOp::VT_COLLECTION, None)
12111 }
12112 }
12113 #[inline]
12114 pub fn query_vector(&self) -> Option<Expr<'a>> {
12115 unsafe {
12119 self._tab.get::<::flatbuffers::ForwardsUOffset<Expr>>(
12120 VectorScanOp::VT_QUERY_VECTOR,
12121 None,
12122 )
12123 }
12124 }
12125 #[inline]
12126 pub fn metric(&self) -> VectorMetric {
12127 unsafe {
12131 self._tab
12132 .get::<VectorMetric>(VectorScanOp::VT_METRIC, Some(VectorMetric::cosine))
12133 .unwrap()
12134 }
12135 }
12136 #[inline]
12137 pub fn top_k(&self) -> u32 {
12138 unsafe {
12142 self._tab
12143 .get::<u32>(VectorScanOp::VT_TOP_K, Some(0))
12144 .unwrap()
12145 }
12146 }
12147 #[inline]
12148 pub fn approx_hint(&self) -> bool {
12149 unsafe {
12153 self._tab
12154 .get::<bool>(VectorScanOp::VT_APPROX_HINT, Some(true))
12155 .unwrap()
12156 }
12157 }
12158 #[inline]
12159 pub fn schema(
12160 &self,
12161 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
12162 unsafe {
12166 self._tab.get::<::flatbuffers::ForwardsUOffset<
12167 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
12168 >>(VectorScanOp::VT_SCHEMA, None)
12169 }
12170 }
12171 }
12172
12173 impl ::flatbuffers::Verifiable for VectorScanOp<'_> {
12174 #[inline]
12175 fn run_verifier(
12176 v: &mut ::flatbuffers::Verifier,
12177 pos: usize,
12178 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
12179 v.visit_table(pos)?
12180 .visit_field::<u32>("input", Self::VT_INPUT, false)?
12181 .visit_field::<::flatbuffers::ForwardsUOffset<&str>>(
12182 "collection",
12183 Self::VT_COLLECTION,
12184 false,
12185 )?
12186 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
12187 "query_vector",
12188 Self::VT_QUERY_VECTOR,
12189 false,
12190 )?
12191 .visit_field::<VectorMetric>("metric", Self::VT_METRIC, false)?
12192 .visit_field::<u32>("top_k", Self::VT_TOP_K, false)?
12193 .visit_field::<bool>("approx_hint", Self::VT_APPROX_HINT, false)?
12194 .visit_field::<::flatbuffers::ForwardsUOffset<
12195 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
12196 >>("schema", Self::VT_SCHEMA, false)?
12197 .finish();
12198 Ok(())
12199 }
12200 }
12201 pub struct VectorScanOpArgs<'a> {
12202 pub input: u32,
12203 pub collection: Option<::flatbuffers::WIPOffset<&'a str>>,
12204 pub query_vector: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
12205 pub metric: VectorMetric,
12206 pub top_k: u32,
12207 pub approx_hint: bool,
12208 pub schema: Option<
12209 ::flatbuffers::WIPOffset<
12210 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
12211 >,
12212 >,
12213 }
12214 impl<'a> Default for VectorScanOpArgs<'a> {
12215 #[inline]
12216 fn default() -> Self {
12217 VectorScanOpArgs {
12218 input: 0,
12219 collection: None,
12220 query_vector: None,
12221 metric: VectorMetric::cosine,
12222 top_k: 0,
12223 approx_hint: true,
12224 schema: None,
12225 }
12226 }
12227 }
12228
12229 pub struct VectorScanOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
12230 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12231 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
12232 }
12233 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> VectorScanOpBuilder<'a, 'b, A> {
12234 #[inline]
12235 pub fn add_input(&mut self, input: u32) {
12236 self.fbb_.push_slot::<u32>(VectorScanOp::VT_INPUT, input, 0);
12237 }
12238 #[inline]
12239 pub fn add_collection(&mut self, collection: ::flatbuffers::WIPOffset<&'b str>) {
12240 self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(
12241 VectorScanOp::VT_COLLECTION,
12242 collection,
12243 );
12244 }
12245 #[inline]
12246 pub fn add_query_vector(&mut self, query_vector: ::flatbuffers::WIPOffset<Expr<'b>>) {
12247 self.fbb_
12248 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
12249 VectorScanOp::VT_QUERY_VECTOR,
12250 query_vector,
12251 );
12252 }
12253 #[inline]
12254 pub fn add_metric(&mut self, metric: VectorMetric) {
12255 self.fbb_.push_slot::<VectorMetric>(
12256 VectorScanOp::VT_METRIC,
12257 metric,
12258 VectorMetric::cosine,
12259 );
12260 }
12261 #[inline]
12262 pub fn add_top_k(&mut self, top_k: u32) {
12263 self.fbb_.push_slot::<u32>(VectorScanOp::VT_TOP_K, top_k, 0);
12264 }
12265 #[inline]
12266 pub fn add_approx_hint(&mut self, approx_hint: bool) {
12267 self.fbb_
12268 .push_slot::<bool>(VectorScanOp::VT_APPROX_HINT, approx_hint, true);
12269 }
12270 #[inline]
12271 pub fn add_schema(
12272 &mut self,
12273 schema: ::flatbuffers::WIPOffset<
12274 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
12275 >,
12276 ) {
12277 self.fbb_
12278 .push_slot_always::<::flatbuffers::WIPOffset<_>>(VectorScanOp::VT_SCHEMA, schema);
12279 }
12280 #[inline]
12281 pub fn new(
12282 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12283 ) -> VectorScanOpBuilder<'a, 'b, A> {
12284 let start = _fbb.start_table();
12285 VectorScanOpBuilder {
12286 fbb_: _fbb,
12287 start_: start,
12288 }
12289 }
12290 #[inline]
12291 pub fn finish(self) -> ::flatbuffers::WIPOffset<VectorScanOp<'a>> {
12292 let o = self.fbb_.end_table(self.start_);
12293 ::flatbuffers::WIPOffset::new(o.value())
12294 }
12295 }
12296
12297 impl ::core::fmt::Debug for VectorScanOp<'_> {
12298 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12299 let mut ds = f.debug_struct("VectorScanOp");
12300 ds.field("input", &self.input());
12301 ds.field("collection", &self.collection());
12302 ds.field("query_vector", &self.query_vector());
12303 ds.field("metric", &self.metric());
12304 ds.field("top_k", &self.top_k());
12305 ds.field("approx_hint", &self.approx_hint());
12306 ds.field("schema", &self.schema());
12307 ds.finish()
12308 }
12309 }
12310 pub enum RerankOpOffset {}
12311 #[derive(Copy, Clone, PartialEq)]
12312
12313 pub struct RerankOp<'a> {
12314 pub _tab: ::flatbuffers::Table<'a>,
12315 }
12316
12317 impl<'a> ::flatbuffers::Follow<'a> for RerankOp<'a> {
12318 type Inner = RerankOp<'a>;
12319 #[inline]
12320 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
12321 Self {
12322 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
12323 }
12324 }
12325 }
12326
12327 impl<'a> RerankOp<'a> {
12328 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
12329 pub const VT_SCORE_EXPR: ::flatbuffers::VOffsetT = 6;
12330 pub const VT_TOP_K: ::flatbuffers::VOffsetT = 8;
12331 pub const VT_SCHEMA: ::flatbuffers::VOffsetT = 10;
12332
12333 #[inline]
12334 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
12335 RerankOp { _tab: table }
12336 }
12337 #[allow(unused_mut)]
12338 pub fn create<
12339 'bldr: 'args,
12340 'args: 'mut_bldr,
12341 'mut_bldr,
12342 A: ::flatbuffers::Allocator + 'bldr,
12343 >(
12344 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
12345 args: &'args RerankOpArgs<'args>,
12346 ) -> ::flatbuffers::WIPOffset<RerankOp<'bldr>> {
12347 let mut builder = RerankOpBuilder::new(_fbb);
12348 if let Some(x) = args.schema {
12349 builder.add_schema(x);
12350 }
12351 builder.add_top_k(args.top_k);
12352 if let Some(x) = args.score_expr {
12353 builder.add_score_expr(x);
12354 }
12355 builder.add_input(args.input);
12356 builder.finish()
12357 }
12358
12359 #[inline]
12360 pub fn input(&self) -> u32 {
12361 unsafe { self._tab.get::<u32>(RerankOp::VT_INPUT, Some(0)).unwrap() }
12365 }
12366 #[inline]
12367 pub fn score_expr(&self) -> Option<Expr<'a>> {
12368 unsafe {
12372 self._tab
12373 .get::<::flatbuffers::ForwardsUOffset<Expr>>(RerankOp::VT_SCORE_EXPR, None)
12374 }
12375 }
12376 #[inline]
12377 pub fn top_k(&self) -> u32 {
12378 unsafe { self._tab.get::<u32>(RerankOp::VT_TOP_K, Some(0)).unwrap() }
12382 }
12383 #[inline]
12384 pub fn schema(
12385 &self,
12386 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>> {
12387 unsafe {
12391 self._tab.get::<::flatbuffers::ForwardsUOffset<
12392 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef>>,
12393 >>(RerankOp::VT_SCHEMA, None)
12394 }
12395 }
12396 }
12397
12398 impl ::flatbuffers::Verifiable for RerankOp<'_> {
12399 #[inline]
12400 fn run_verifier(
12401 v: &mut ::flatbuffers::Verifier,
12402 pos: usize,
12403 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
12404 v.visit_table(pos)?
12405 .visit_field::<u32>("input", Self::VT_INPUT, false)?
12406 .visit_field::<::flatbuffers::ForwardsUOffset<Expr>>(
12407 "score_expr",
12408 Self::VT_SCORE_EXPR,
12409 false,
12410 )?
12411 .visit_field::<u32>("top_k", Self::VT_TOP_K, false)?
12412 .visit_field::<::flatbuffers::ForwardsUOffset<
12413 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<ColDef>>,
12414 >>("schema", Self::VT_SCHEMA, false)?
12415 .finish();
12416 Ok(())
12417 }
12418 }
12419 pub struct RerankOpArgs<'a> {
12420 pub input: u32,
12421 pub score_expr: Option<::flatbuffers::WIPOffset<Expr<'a>>>,
12422 pub top_k: u32,
12423 pub schema: Option<
12424 ::flatbuffers::WIPOffset<
12425 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<ColDef<'a>>>,
12426 >,
12427 >,
12428 }
12429 impl<'a> Default for RerankOpArgs<'a> {
12430 #[inline]
12431 fn default() -> Self {
12432 RerankOpArgs {
12433 input: 0,
12434 score_expr: None,
12435 top_k: 0,
12436 schema: None,
12437 }
12438 }
12439 }
12440
12441 pub struct RerankOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
12442 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12443 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
12444 }
12445 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> RerankOpBuilder<'a, 'b, A> {
12446 #[inline]
12447 pub fn add_input(&mut self, input: u32) {
12448 self.fbb_.push_slot::<u32>(RerankOp::VT_INPUT, input, 0);
12449 }
12450 #[inline]
12451 pub fn add_score_expr(&mut self, score_expr: ::flatbuffers::WIPOffset<Expr<'b>>) {
12452 self.fbb_
12453 .push_slot_always::<::flatbuffers::WIPOffset<Expr>>(
12454 RerankOp::VT_SCORE_EXPR,
12455 score_expr,
12456 );
12457 }
12458 #[inline]
12459 pub fn add_top_k(&mut self, top_k: u32) {
12460 self.fbb_.push_slot::<u32>(RerankOp::VT_TOP_K, top_k, 0);
12461 }
12462 #[inline]
12463 pub fn add_schema(
12464 &mut self,
12465 schema: ::flatbuffers::WIPOffset<
12466 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<ColDef<'b>>>,
12467 >,
12468 ) {
12469 self.fbb_
12470 .push_slot_always::<::flatbuffers::WIPOffset<_>>(RerankOp::VT_SCHEMA, schema);
12471 }
12472 #[inline]
12473 pub fn new(
12474 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12475 ) -> RerankOpBuilder<'a, 'b, A> {
12476 let start = _fbb.start_table();
12477 RerankOpBuilder {
12478 fbb_: _fbb,
12479 start_: start,
12480 }
12481 }
12482 #[inline]
12483 pub fn finish(self) -> ::flatbuffers::WIPOffset<RerankOp<'a>> {
12484 let o = self.fbb_.end_table(self.start_);
12485 ::flatbuffers::WIPOffset::new(o.value())
12486 }
12487 }
12488
12489 impl ::core::fmt::Debug for RerankOp<'_> {
12490 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12491 let mut ds = f.debug_struct("RerankOp");
12492 ds.field("input", &self.input());
12493 ds.field("score_expr", &self.score_expr());
12494 ds.field("top_k", &self.top_k());
12495 ds.field("schema", &self.schema());
12496 ds.finish()
12497 }
12498 }
12499 pub enum ReturnOpOffset {}
12500 #[derive(Copy, Clone, PartialEq)]
12501
12502 pub struct ReturnOp<'a> {
12503 pub _tab: ::flatbuffers::Table<'a>,
12504 }
12505
12506 impl<'a> ::flatbuffers::Follow<'a> for ReturnOp<'a> {
12507 type Inner = ReturnOp<'a>;
12508 #[inline]
12509 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
12510 Self {
12511 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
12512 }
12513 }
12514 }
12515
12516 impl<'a> ReturnOp<'a> {
12517 pub const VT_INPUT: ::flatbuffers::VOffsetT = 4;
12518
12519 #[inline]
12520 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
12521 ReturnOp { _tab: table }
12522 }
12523 #[allow(unused_mut)]
12524 pub fn create<
12525 'bldr: 'args,
12526 'args: 'mut_bldr,
12527 'mut_bldr,
12528 A: ::flatbuffers::Allocator + 'bldr,
12529 >(
12530 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
12531 args: &'args ReturnOpArgs,
12532 ) -> ::flatbuffers::WIPOffset<ReturnOp<'bldr>> {
12533 let mut builder = ReturnOpBuilder::new(_fbb);
12534 builder.add_input(args.input);
12535 builder.finish()
12536 }
12537
12538 #[inline]
12539 pub fn input(&self) -> u32 {
12540 unsafe { self._tab.get::<u32>(ReturnOp::VT_INPUT, Some(0)).unwrap() }
12544 }
12545 }
12546
12547 impl ::flatbuffers::Verifiable for ReturnOp<'_> {
12548 #[inline]
12549 fn run_verifier(
12550 v: &mut ::flatbuffers::Verifier,
12551 pos: usize,
12552 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
12553 v.visit_table(pos)?
12554 .visit_field::<u32>("input", Self::VT_INPUT, false)?
12555 .finish();
12556 Ok(())
12557 }
12558 }
12559 pub struct ReturnOpArgs {
12560 pub input: u32,
12561 }
12562 impl<'a> Default for ReturnOpArgs {
12563 #[inline]
12564 fn default() -> Self {
12565 ReturnOpArgs { input: 0 }
12566 }
12567 }
12568
12569 pub struct ReturnOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
12570 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12571 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
12572 }
12573 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ReturnOpBuilder<'a, 'b, A> {
12574 #[inline]
12575 pub fn add_input(&mut self, input: u32) {
12576 self.fbb_.push_slot::<u32>(ReturnOp::VT_INPUT, input, 0);
12577 }
12578 #[inline]
12579 pub fn new(
12580 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12581 ) -> ReturnOpBuilder<'a, 'b, A> {
12582 let start = _fbb.start_table();
12583 ReturnOpBuilder {
12584 fbb_: _fbb,
12585 start_: start,
12586 }
12587 }
12588 #[inline]
12589 pub fn finish(self) -> ::flatbuffers::WIPOffset<ReturnOp<'a>> {
12590 let o = self.fbb_.end_table(self.start_);
12591 ::flatbuffers::WIPOffset::new(o.value())
12592 }
12593 }
12594
12595 impl ::core::fmt::Debug for ReturnOp<'_> {
12596 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12597 let mut ds = f.debug_struct("ReturnOp");
12598 ds.field("input", &self.input());
12599 ds.finish()
12600 }
12601 }
12602 pub enum ConstRowOpOffset {}
12603 #[derive(Copy, Clone, PartialEq)]
12604
12605 pub struct ConstRowOp<'a> {
12608 pub _tab: ::flatbuffers::Table<'a>,
12609 }
12610
12611 impl<'a> ::flatbuffers::Follow<'a> for ConstRowOp<'a> {
12612 type Inner = ConstRowOp<'a>;
12613 #[inline]
12614 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
12615 Self {
12616 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
12617 }
12618 }
12619 }
12620
12621 impl<'a> ConstRowOp<'a> {
12622 #[inline]
12623 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
12624 ConstRowOp { _tab: table }
12625 }
12626 #[allow(unused_mut)]
12627 pub fn create<
12628 'bldr: 'args,
12629 'args: 'mut_bldr,
12630 'mut_bldr,
12631 A: ::flatbuffers::Allocator + 'bldr,
12632 >(
12633 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
12634 _args: &'args ConstRowOpArgs,
12635 ) -> ::flatbuffers::WIPOffset<ConstRowOp<'bldr>> {
12636 let mut builder = ConstRowOpBuilder::new(_fbb);
12637 builder.finish()
12638 }
12639 }
12640
12641 impl ::flatbuffers::Verifiable for ConstRowOp<'_> {
12642 #[inline]
12643 fn run_verifier(
12644 v: &mut ::flatbuffers::Verifier,
12645 pos: usize,
12646 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
12647 v.visit_table(pos)?.finish();
12648 Ok(())
12649 }
12650 }
12651 pub struct ConstRowOpArgs {}
12652 impl<'a> Default for ConstRowOpArgs {
12653 #[inline]
12654 fn default() -> Self {
12655 ConstRowOpArgs {}
12656 }
12657 }
12658
12659 pub struct ConstRowOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
12660 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12661 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
12662 }
12663 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> ConstRowOpBuilder<'a, 'b, A> {
12664 #[inline]
12665 pub fn new(
12666 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
12667 ) -> ConstRowOpBuilder<'a, 'b, A> {
12668 let start = _fbb.start_table();
12669 ConstRowOpBuilder {
12670 fbb_: _fbb,
12671 start_: start,
12672 }
12673 }
12674 #[inline]
12675 pub fn finish(self) -> ::flatbuffers::WIPOffset<ConstRowOp<'a>> {
12676 let o = self.fbb_.end_table(self.start_);
12677 ::flatbuffers::WIPOffset::new(o.value())
12678 }
12679 }
12680
12681 impl ::core::fmt::Debug for ConstRowOp<'_> {
12682 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12683 let mut ds = f.debug_struct("ConstRowOp");
12684 ds.finish()
12685 }
12686 }
12687 pub enum PlanOpOffset {}
12688 #[derive(Copy, Clone, PartialEq)]
12689
12690 pub struct PlanOp<'a> {
12691 pub _tab: ::flatbuffers::Table<'a>,
12692 }
12693
12694 impl<'a> ::flatbuffers::Follow<'a> for PlanOp<'a> {
12695 type Inner = PlanOp<'a>;
12696 #[inline]
12697 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
12698 Self {
12699 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
12700 }
12701 }
12702 }
12703
12704 impl<'a> PlanOp<'a> {
12705 pub const VT_NODE_TYPE: ::flatbuffers::VOffsetT = 4;
12706 pub const VT_NODE: ::flatbuffers::VOffsetT = 6;
12707
12708 #[inline]
12709 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
12710 PlanOp { _tab: table }
12711 }
12712 #[allow(unused_mut)]
12713 pub fn create<
12714 'bldr: 'args,
12715 'args: 'mut_bldr,
12716 'mut_bldr,
12717 A: ::flatbuffers::Allocator + 'bldr,
12718 >(
12719 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
12720 args: &'args PlanOpArgs,
12721 ) -> ::flatbuffers::WIPOffset<PlanOp<'bldr>> {
12722 let mut builder = PlanOpBuilder::new(_fbb);
12723 if let Some(x) = args.node {
12724 builder.add_node(x);
12725 }
12726 builder.add_node_type(args.node_type);
12727 builder.finish()
12728 }
12729
12730 #[inline]
12731 pub fn node_type(&self) -> OpNode {
12732 unsafe {
12736 self._tab
12737 .get::<OpNode>(PlanOp::VT_NODE_TYPE, Some(OpNode::NONE))
12738 .unwrap()
12739 }
12740 }
12741 #[inline]
12742 pub fn node(&self) -> Option<::flatbuffers::Table<'a>> {
12743 unsafe {
12747 self._tab
12748 .get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Table<'a>>>(
12749 PlanOp::VT_NODE,
12750 None,
12751 )
12752 }
12753 }
12754 #[inline]
12755 #[allow(non_snake_case)]
12756 pub fn node_as_scan_nodes_op(&self) -> Option<ScanNodesOp<'a>> {
12757 if self.node_type() == OpNode::ScanNodesOp {
12758 self.node().map(|t| {
12759 unsafe { ScanNodesOp::init_from_table(t) }
12763 })
12764 } else {
12765 None
12766 }
12767 }
12768
12769 #[inline]
12770 #[allow(non_snake_case)]
12771 pub fn node_as_scan_rels_op(&self) -> Option<ScanRelsOp<'a>> {
12772 if self.node_type() == OpNode::ScanRelsOp {
12773 self.node().map(|t| {
12774 unsafe { ScanRelsOp::init_from_table(t) }
12778 })
12779 } else {
12780 None
12781 }
12782 }
12783
12784 #[inline]
12785 #[allow(non_snake_case)]
12786 pub fn node_as_expand_op(&self) -> Option<ExpandOp<'a>> {
12787 if self.node_type() == OpNode::ExpandOp {
12788 self.node().map(|t| {
12789 unsafe { ExpandOp::init_from_table(t) }
12793 })
12794 } else {
12795 None
12796 }
12797 }
12798
12799 #[inline]
12800 #[allow(non_snake_case)]
12801 pub fn node_as_optional_expand_op(&self) -> Option<OptionalExpandOp<'a>> {
12802 if self.node_type() == OpNode::OptionalExpandOp {
12803 self.node().map(|t| {
12804 unsafe { OptionalExpandOp::init_from_table(t) }
12808 })
12809 } else {
12810 None
12811 }
12812 }
12813
12814 #[inline]
12815 #[allow(non_snake_case)]
12816 pub fn node_as_semi_expand_op(&self) -> Option<SemiExpandOp<'a>> {
12817 if self.node_type() == OpNode::SemiExpandOp {
12818 self.node().map(|t| {
12819 unsafe { SemiExpandOp::init_from_table(t) }
12823 })
12824 } else {
12825 None
12826 }
12827 }
12828
12829 #[inline]
12830 #[allow(non_snake_case)]
12831 pub fn node_as_expand_var_len_op(&self) -> Option<ExpandVarLenOp<'a>> {
12832 if self.node_type() == OpNode::ExpandVarLenOp {
12833 self.node().map(|t| {
12834 unsafe { ExpandVarLenOp::init_from_table(t) }
12838 })
12839 } else {
12840 None
12841 }
12842 }
12843
12844 #[inline]
12845 #[allow(non_snake_case)]
12846 pub fn node_as_filter_op(&self) -> Option<FilterOp<'a>> {
12847 if self.node_type() == OpNode::FilterOp {
12848 self.node().map(|t| {
12849 unsafe { FilterOp::init_from_table(t) }
12853 })
12854 } else {
12855 None
12856 }
12857 }
12858
12859 #[inline]
12860 #[allow(non_snake_case)]
12861 pub fn node_as_block_marker_op(&self) -> Option<BlockMarkerOp<'a>> {
12862 if self.node_type() == OpNode::BlockMarkerOp {
12863 self.node().map(|t| {
12864 unsafe { BlockMarkerOp::init_from_table(t) }
12868 })
12869 } else {
12870 None
12871 }
12872 }
12873
12874 #[inline]
12875 #[allow(non_snake_case)]
12876 pub fn node_as_project_op(&self) -> Option<ProjectOp<'a>> {
12877 if self.node_type() == OpNode::ProjectOp {
12878 self.node().map(|t| {
12879 unsafe { ProjectOp::init_from_table(t) }
12883 })
12884 } else {
12885 None
12886 }
12887 }
12888
12889 #[inline]
12890 #[allow(non_snake_case)]
12891 pub fn node_as_aggregate_op(&self) -> Option<AggregateOp<'a>> {
12892 if self.node_type() == OpNode::AggregateOp {
12893 self.node().map(|t| {
12894 unsafe { AggregateOp::init_from_table(t) }
12898 })
12899 } else {
12900 None
12901 }
12902 }
12903
12904 #[inline]
12905 #[allow(non_snake_case)]
12906 pub fn node_as_sort_op(&self) -> Option<SortOp<'a>> {
12907 if self.node_type() == OpNode::SortOp {
12908 self.node().map(|t| {
12909 unsafe { SortOp::init_from_table(t) }
12913 })
12914 } else {
12915 None
12916 }
12917 }
12918
12919 #[inline]
12920 #[allow(non_snake_case)]
12921 pub fn node_as_limit_op(&self) -> Option<LimitOp<'a>> {
12922 if self.node_type() == OpNode::LimitOp {
12923 self.node().map(|t| {
12924 unsafe { LimitOp::init_from_table(t) }
12928 })
12929 } else {
12930 None
12931 }
12932 }
12933
12934 #[inline]
12935 #[allow(non_snake_case)]
12936 pub fn node_as_unwind_op(&self) -> Option<UnwindOp<'a>> {
12937 if self.node_type() == OpNode::UnwindOp {
12938 self.node().map(|t| {
12939 unsafe { UnwindOp::init_from_table(t) }
12943 })
12944 } else {
12945 None
12946 }
12947 }
12948
12949 #[inline]
12950 #[allow(non_snake_case)]
12951 pub fn node_as_path_construct_op(&self) -> Option<PathConstructOp<'a>> {
12952 if self.node_type() == OpNode::PathConstructOp {
12953 self.node().map(|t| {
12954 unsafe { PathConstructOp::init_from_table(t) }
12958 })
12959 } else {
12960 None
12961 }
12962 }
12963
12964 #[inline]
12965 #[allow(non_snake_case)]
12966 pub fn node_as_union_op(&self) -> Option<UnionOp<'a>> {
12967 if self.node_type() == OpNode::UnionOp {
12968 self.node().map(|t| {
12969 unsafe { UnionOp::init_from_table(t) }
12973 })
12974 } else {
12975 None
12976 }
12977 }
12978
12979 #[inline]
12980 #[allow(non_snake_case)]
12981 pub fn node_as_create_node_op(&self) -> Option<CreateNodeOp<'a>> {
12982 if self.node_type() == OpNode::CreateNodeOp {
12983 self.node().map(|t| {
12984 unsafe { CreateNodeOp::init_from_table(t) }
12988 })
12989 } else {
12990 None
12991 }
12992 }
12993
12994 #[inline]
12995 #[allow(non_snake_case)]
12996 pub fn node_as_create_rel_op(&self) -> Option<CreateRelOp<'a>> {
12997 if self.node_type() == OpNode::CreateRelOp {
12998 self.node().map(|t| {
12999 unsafe { CreateRelOp::init_from_table(t) }
13003 })
13004 } else {
13005 None
13006 }
13007 }
13008
13009 #[inline]
13010 #[allow(non_snake_case)]
13011 pub fn node_as_merge_op(&self) -> Option<MergeOp<'a>> {
13012 if self.node_type() == OpNode::MergeOp {
13013 self.node().map(|t| {
13014 unsafe { MergeOp::init_from_table(t) }
13018 })
13019 } else {
13020 None
13021 }
13022 }
13023
13024 #[inline]
13025 #[allow(non_snake_case)]
13026 pub fn node_as_delete_op(&self) -> Option<DeleteOp<'a>> {
13027 if self.node_type() == OpNode::DeleteOp {
13028 self.node().map(|t| {
13029 unsafe { DeleteOp::init_from_table(t) }
13033 })
13034 } else {
13035 None
13036 }
13037 }
13038
13039 #[inline]
13040 #[allow(non_snake_case)]
13041 pub fn node_as_set_property_op(&self) -> Option<SetPropertyOp<'a>> {
13042 if self.node_type() == OpNode::SetPropertyOp {
13043 self.node().map(|t| {
13044 unsafe { SetPropertyOp::init_from_table(t) }
13048 })
13049 } else {
13050 None
13051 }
13052 }
13053
13054 #[inline]
13055 #[allow(non_snake_case)]
13056 pub fn node_as_remove_property_op(&self) -> Option<RemovePropertyOp<'a>> {
13057 if self.node_type() == OpNode::RemovePropertyOp {
13058 self.node().map(|t| {
13059 unsafe { RemovePropertyOp::init_from_table(t) }
13063 })
13064 } else {
13065 None
13066 }
13067 }
13068
13069 #[inline]
13070 #[allow(non_snake_case)]
13071 pub fn node_as_vector_scan_op(&self) -> Option<VectorScanOp<'a>> {
13072 if self.node_type() == OpNode::VectorScanOp {
13073 self.node().map(|t| {
13074 unsafe { VectorScanOp::init_from_table(t) }
13078 })
13079 } else {
13080 None
13081 }
13082 }
13083
13084 #[inline]
13085 #[allow(non_snake_case)]
13086 pub fn node_as_rerank_op(&self) -> Option<RerankOp<'a>> {
13087 if self.node_type() == OpNode::RerankOp {
13088 self.node().map(|t| {
13089 unsafe { RerankOp::init_from_table(t) }
13093 })
13094 } else {
13095 None
13096 }
13097 }
13098
13099 #[inline]
13100 #[allow(non_snake_case)]
13101 pub fn node_as_return_op(&self) -> Option<ReturnOp<'a>> {
13102 if self.node_type() == OpNode::ReturnOp {
13103 self.node().map(|t| {
13104 unsafe { ReturnOp::init_from_table(t) }
13108 })
13109 } else {
13110 None
13111 }
13112 }
13113
13114 #[inline]
13115 #[allow(non_snake_case)]
13116 pub fn node_as_const_row_op(&self) -> Option<ConstRowOp<'a>> {
13117 if self.node_type() == OpNode::ConstRowOp {
13118 self.node().map(|t| {
13119 unsafe { ConstRowOp::init_from_table(t) }
13123 })
13124 } else {
13125 None
13126 }
13127 }
13128 }
13129
13130 impl ::flatbuffers::Verifiable for PlanOp<'_> {
13131 #[inline]
13132 fn run_verifier(
13133 v: &mut ::flatbuffers::Verifier,
13134 pos: usize,
13135 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
13136 v.visit_table(pos)?
13137 .visit_union::<OpNode, _>("node_type", Self::VT_NODE_TYPE, "node", Self::VT_NODE, false, |key, v, pos| {
13138 match key {
13139 OpNode::ScanNodesOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ScanNodesOp>>("OpNode::ScanNodesOp", pos),
13140 OpNode::ScanRelsOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ScanRelsOp>>("OpNode::ScanRelsOp", pos),
13141 OpNode::ExpandOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ExpandOp>>("OpNode::ExpandOp", pos),
13142 OpNode::OptionalExpandOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<OptionalExpandOp>>("OpNode::OptionalExpandOp", pos),
13143 OpNode::SemiExpandOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<SemiExpandOp>>("OpNode::SemiExpandOp", pos),
13144 OpNode::ExpandVarLenOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ExpandVarLenOp>>("OpNode::ExpandVarLenOp", pos),
13145 OpNode::FilterOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<FilterOp>>("OpNode::FilterOp", pos),
13146 OpNode::BlockMarkerOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<BlockMarkerOp>>("OpNode::BlockMarkerOp", pos),
13147 OpNode::ProjectOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ProjectOp>>("OpNode::ProjectOp", pos),
13148 OpNode::AggregateOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<AggregateOp>>("OpNode::AggregateOp", pos),
13149 OpNode::SortOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<SortOp>>("OpNode::SortOp", pos),
13150 OpNode::LimitOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<LimitOp>>("OpNode::LimitOp", pos),
13151 OpNode::UnwindOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<UnwindOp>>("OpNode::UnwindOp", pos),
13152 OpNode::PathConstructOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<PathConstructOp>>("OpNode::PathConstructOp", pos),
13153 OpNode::UnionOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<UnionOp>>("OpNode::UnionOp", pos),
13154 OpNode::CreateNodeOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<CreateNodeOp>>("OpNode::CreateNodeOp", pos),
13155 OpNode::CreateRelOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<CreateRelOp>>("OpNode::CreateRelOp", pos),
13156 OpNode::MergeOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<MergeOp>>("OpNode::MergeOp", pos),
13157 OpNode::DeleteOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<DeleteOp>>("OpNode::DeleteOp", pos),
13158 OpNode::SetPropertyOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<SetPropertyOp>>("OpNode::SetPropertyOp", pos),
13159 OpNode::RemovePropertyOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<RemovePropertyOp>>("OpNode::RemovePropertyOp", pos),
13160 OpNode::VectorScanOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<VectorScanOp>>("OpNode::VectorScanOp", pos),
13161 OpNode::RerankOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<RerankOp>>("OpNode::RerankOp", pos),
13162 OpNode::ReturnOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ReturnOp>>("OpNode::ReturnOp", pos),
13163 OpNode::ConstRowOp => v.verify_union_variant::<::flatbuffers::ForwardsUOffset<ConstRowOp>>("OpNode::ConstRowOp", pos),
13164 _ => Ok(()),
13165 }
13166 })?
13167 .finish();
13168 Ok(())
13169 }
13170 }
13171 pub struct PlanOpArgs {
13172 pub node_type: OpNode,
13173 pub node: Option<::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>>,
13174 }
13175 impl<'a> Default for PlanOpArgs {
13176 #[inline]
13177 fn default() -> Self {
13178 PlanOpArgs {
13179 node_type: OpNode::NONE,
13180 node: None,
13181 }
13182 }
13183 }
13184
13185 pub struct PlanOpBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
13186 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13187 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
13188 }
13189 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> PlanOpBuilder<'a, 'b, A> {
13190 #[inline]
13191 pub fn add_node_type(&mut self, node_type: OpNode) {
13192 self.fbb_
13193 .push_slot::<OpNode>(PlanOp::VT_NODE_TYPE, node_type, OpNode::NONE);
13194 }
13195 #[inline]
13196 pub fn add_node(&mut self, node: ::flatbuffers::WIPOffset<::flatbuffers::UnionWIPOffset>) {
13197 self.fbb_
13198 .push_slot_always::<::flatbuffers::WIPOffset<_>>(PlanOp::VT_NODE, node);
13199 }
13200 #[inline]
13201 pub fn new(
13202 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13203 ) -> PlanOpBuilder<'a, 'b, A> {
13204 let start = _fbb.start_table();
13205 PlanOpBuilder {
13206 fbb_: _fbb,
13207 start_: start,
13208 }
13209 }
13210 #[inline]
13211 pub fn finish(self) -> ::flatbuffers::WIPOffset<PlanOp<'a>> {
13212 let o = self.fbb_.end_table(self.start_);
13213 ::flatbuffers::WIPOffset::new(o.value())
13214 }
13215 }
13216
13217 impl ::core::fmt::Debug for PlanOp<'_> {
13218 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13219 let mut ds = f.debug_struct("PlanOp");
13220 ds.field("node_type", &self.node_type());
13221 match self.node_type() {
13222 OpNode::ScanNodesOp => {
13223 if let Some(x) = self.node_as_scan_nodes_op() {
13224 ds.field("node", &x)
13225 } else {
13226 ds.field(
13227 "node",
13228 &"InvalidFlatbuffer: Union discriminant does not match value.",
13229 )
13230 }
13231 }
13232 OpNode::ScanRelsOp => {
13233 if let Some(x) = self.node_as_scan_rels_op() {
13234 ds.field("node", &x)
13235 } else {
13236 ds.field(
13237 "node",
13238 &"InvalidFlatbuffer: Union discriminant does not match value.",
13239 )
13240 }
13241 }
13242 OpNode::ExpandOp => {
13243 if let Some(x) = self.node_as_expand_op() {
13244 ds.field("node", &x)
13245 } else {
13246 ds.field(
13247 "node",
13248 &"InvalidFlatbuffer: Union discriminant does not match value.",
13249 )
13250 }
13251 }
13252 OpNode::OptionalExpandOp => {
13253 if let Some(x) = self.node_as_optional_expand_op() {
13254 ds.field("node", &x)
13255 } else {
13256 ds.field(
13257 "node",
13258 &"InvalidFlatbuffer: Union discriminant does not match value.",
13259 )
13260 }
13261 }
13262 OpNode::SemiExpandOp => {
13263 if let Some(x) = self.node_as_semi_expand_op() {
13264 ds.field("node", &x)
13265 } else {
13266 ds.field(
13267 "node",
13268 &"InvalidFlatbuffer: Union discriminant does not match value.",
13269 )
13270 }
13271 }
13272 OpNode::ExpandVarLenOp => {
13273 if let Some(x) = self.node_as_expand_var_len_op() {
13274 ds.field("node", &x)
13275 } else {
13276 ds.field(
13277 "node",
13278 &"InvalidFlatbuffer: Union discriminant does not match value.",
13279 )
13280 }
13281 }
13282 OpNode::FilterOp => {
13283 if let Some(x) = self.node_as_filter_op() {
13284 ds.field("node", &x)
13285 } else {
13286 ds.field(
13287 "node",
13288 &"InvalidFlatbuffer: Union discriminant does not match value.",
13289 )
13290 }
13291 }
13292 OpNode::BlockMarkerOp => {
13293 if let Some(x) = self.node_as_block_marker_op() {
13294 ds.field("node", &x)
13295 } else {
13296 ds.field(
13297 "node",
13298 &"InvalidFlatbuffer: Union discriminant does not match value.",
13299 )
13300 }
13301 }
13302 OpNode::ProjectOp => {
13303 if let Some(x) = self.node_as_project_op() {
13304 ds.field("node", &x)
13305 } else {
13306 ds.field(
13307 "node",
13308 &"InvalidFlatbuffer: Union discriminant does not match value.",
13309 )
13310 }
13311 }
13312 OpNode::AggregateOp => {
13313 if let Some(x) = self.node_as_aggregate_op() {
13314 ds.field("node", &x)
13315 } else {
13316 ds.field(
13317 "node",
13318 &"InvalidFlatbuffer: Union discriminant does not match value.",
13319 )
13320 }
13321 }
13322 OpNode::SortOp => {
13323 if let Some(x) = self.node_as_sort_op() {
13324 ds.field("node", &x)
13325 } else {
13326 ds.field(
13327 "node",
13328 &"InvalidFlatbuffer: Union discriminant does not match value.",
13329 )
13330 }
13331 }
13332 OpNode::LimitOp => {
13333 if let Some(x) = self.node_as_limit_op() {
13334 ds.field("node", &x)
13335 } else {
13336 ds.field(
13337 "node",
13338 &"InvalidFlatbuffer: Union discriminant does not match value.",
13339 )
13340 }
13341 }
13342 OpNode::UnwindOp => {
13343 if let Some(x) = self.node_as_unwind_op() {
13344 ds.field("node", &x)
13345 } else {
13346 ds.field(
13347 "node",
13348 &"InvalidFlatbuffer: Union discriminant does not match value.",
13349 )
13350 }
13351 }
13352 OpNode::PathConstructOp => {
13353 if let Some(x) = self.node_as_path_construct_op() {
13354 ds.field("node", &x)
13355 } else {
13356 ds.field(
13357 "node",
13358 &"InvalidFlatbuffer: Union discriminant does not match value.",
13359 )
13360 }
13361 }
13362 OpNode::UnionOp => {
13363 if let Some(x) = self.node_as_union_op() {
13364 ds.field("node", &x)
13365 } else {
13366 ds.field(
13367 "node",
13368 &"InvalidFlatbuffer: Union discriminant does not match value.",
13369 )
13370 }
13371 }
13372 OpNode::CreateNodeOp => {
13373 if let Some(x) = self.node_as_create_node_op() {
13374 ds.field("node", &x)
13375 } else {
13376 ds.field(
13377 "node",
13378 &"InvalidFlatbuffer: Union discriminant does not match value.",
13379 )
13380 }
13381 }
13382 OpNode::CreateRelOp => {
13383 if let Some(x) = self.node_as_create_rel_op() {
13384 ds.field("node", &x)
13385 } else {
13386 ds.field(
13387 "node",
13388 &"InvalidFlatbuffer: Union discriminant does not match value.",
13389 )
13390 }
13391 }
13392 OpNode::MergeOp => {
13393 if let Some(x) = self.node_as_merge_op() {
13394 ds.field("node", &x)
13395 } else {
13396 ds.field(
13397 "node",
13398 &"InvalidFlatbuffer: Union discriminant does not match value.",
13399 )
13400 }
13401 }
13402 OpNode::DeleteOp => {
13403 if let Some(x) = self.node_as_delete_op() {
13404 ds.field("node", &x)
13405 } else {
13406 ds.field(
13407 "node",
13408 &"InvalidFlatbuffer: Union discriminant does not match value.",
13409 )
13410 }
13411 }
13412 OpNode::SetPropertyOp => {
13413 if let Some(x) = self.node_as_set_property_op() {
13414 ds.field("node", &x)
13415 } else {
13416 ds.field(
13417 "node",
13418 &"InvalidFlatbuffer: Union discriminant does not match value.",
13419 )
13420 }
13421 }
13422 OpNode::RemovePropertyOp => {
13423 if let Some(x) = self.node_as_remove_property_op() {
13424 ds.field("node", &x)
13425 } else {
13426 ds.field(
13427 "node",
13428 &"InvalidFlatbuffer: Union discriminant does not match value.",
13429 )
13430 }
13431 }
13432 OpNode::VectorScanOp => {
13433 if let Some(x) = self.node_as_vector_scan_op() {
13434 ds.field("node", &x)
13435 } else {
13436 ds.field(
13437 "node",
13438 &"InvalidFlatbuffer: Union discriminant does not match value.",
13439 )
13440 }
13441 }
13442 OpNode::RerankOp => {
13443 if let Some(x) = self.node_as_rerank_op() {
13444 ds.field("node", &x)
13445 } else {
13446 ds.field(
13447 "node",
13448 &"InvalidFlatbuffer: Union discriminant does not match value.",
13449 )
13450 }
13451 }
13452 OpNode::ReturnOp => {
13453 if let Some(x) = self.node_as_return_op() {
13454 ds.field("node", &x)
13455 } else {
13456 ds.field(
13457 "node",
13458 &"InvalidFlatbuffer: Union discriminant does not match value.",
13459 )
13460 }
13461 }
13462 OpNode::ConstRowOp => {
13463 if let Some(x) = self.node_as_const_row_op() {
13464 ds.field("node", &x)
13465 } else {
13466 ds.field(
13467 "node",
13468 &"InvalidFlatbuffer: Union discriminant does not match value.",
13469 )
13470 }
13471 }
13472 _ => {
13473 let x: Option<()> = None;
13474 ds.field("node", &x)
13475 }
13476 };
13477 ds.finish()
13478 }
13479 }
13480 pub enum PlexusPlanOffset {}
13481 #[derive(Copy, Clone, PartialEq)]
13482
13483 pub struct PlexusPlan<'a> {
13485 pub _tab: ::flatbuffers::Table<'a>,
13486 }
13487
13488 impl<'a> ::flatbuffers::Follow<'a> for PlexusPlan<'a> {
13489 type Inner = PlexusPlan<'a>;
13490 #[inline]
13491 unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
13492 Self {
13493 _tab: unsafe { ::flatbuffers::Table::new(buf, loc) },
13494 }
13495 }
13496 }
13497
13498 impl<'a> PlexusPlan<'a> {
13499 pub const VT_VERSION: ::flatbuffers::VOffsetT = 4;
13500 pub const VT_OPS: ::flatbuffers::VOffsetT = 6;
13501 pub const VT_ROOT_OP: ::flatbuffers::VOffsetT = 8;
13502
13503 #[inline]
13504 pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
13505 PlexusPlan { _tab: table }
13506 }
13507 #[allow(unused_mut)]
13508 pub fn create<
13509 'bldr: 'args,
13510 'args: 'mut_bldr,
13511 'mut_bldr,
13512 A: ::flatbuffers::Allocator + 'bldr,
13513 >(
13514 _fbb: &'mut_bldr mut ::flatbuffers::FlatBufferBuilder<'bldr, A>,
13515 args: &'args PlexusPlanArgs<'args>,
13516 ) -> ::flatbuffers::WIPOffset<PlexusPlan<'bldr>> {
13517 let mut builder = PlexusPlanBuilder::new(_fbb);
13518 builder.add_root_op(args.root_op);
13519 if let Some(x) = args.ops {
13520 builder.add_ops(x);
13521 }
13522 if let Some(x) = args.version {
13523 builder.add_version(x);
13524 }
13525 builder.finish()
13526 }
13527
13528 #[inline]
13529 pub fn version(&self) -> Version<'a> {
13530 unsafe {
13534 self._tab
13535 .get::<::flatbuffers::ForwardsUOffset<Version>>(PlexusPlan::VT_VERSION, None)
13536 .unwrap()
13537 }
13538 }
13539 #[inline]
13540 pub fn ops(
13541 &self,
13542 ) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<PlanOp<'a>>>> {
13543 unsafe {
13547 self._tab.get::<::flatbuffers::ForwardsUOffset<
13548 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<PlanOp>>,
13549 >>(PlexusPlan::VT_OPS, None)
13550 }
13551 }
13552 #[inline]
13553 pub fn root_op(&self) -> u32 {
13554 unsafe {
13558 self._tab
13559 .get::<u32>(PlexusPlan::VT_ROOT_OP, Some(0))
13560 .unwrap()
13561 }
13562 }
13563 }
13564
13565 impl ::flatbuffers::Verifiable for PlexusPlan<'_> {
13566 #[inline]
13567 fn run_verifier(
13568 v: &mut ::flatbuffers::Verifier,
13569 pos: usize,
13570 ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
13571 v.visit_table(pos)?
13572 .visit_field::<::flatbuffers::ForwardsUOffset<Version>>(
13573 "version",
13574 Self::VT_VERSION,
13575 true,
13576 )?
13577 .visit_field::<::flatbuffers::ForwardsUOffset<
13578 ::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<PlanOp>>,
13579 >>("ops", Self::VT_OPS, false)?
13580 .visit_field::<u32>("root_op", Self::VT_ROOT_OP, false)?
13581 .finish();
13582 Ok(())
13583 }
13584 }
13585 pub struct PlexusPlanArgs<'a> {
13586 pub version: Option<::flatbuffers::WIPOffset<Version<'a>>>,
13587 pub ops: Option<
13588 ::flatbuffers::WIPOffset<
13589 ::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<PlanOp<'a>>>,
13590 >,
13591 >,
13592 pub root_op: u32,
13593 }
13594 impl<'a> Default for PlexusPlanArgs<'a> {
13595 #[inline]
13596 fn default() -> Self {
13597 PlexusPlanArgs {
13598 version: None, ops: None,
13600 root_op: 0,
13601 }
13602 }
13603 }
13604
13605 pub struct PlexusPlanBuilder<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> {
13606 fbb_: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13607 start_: ::flatbuffers::WIPOffset<::flatbuffers::TableUnfinishedWIPOffset>,
13608 }
13609 impl<'a: 'b, 'b, A: ::flatbuffers::Allocator + 'a> PlexusPlanBuilder<'a, 'b, A> {
13610 #[inline]
13611 pub fn add_version(&mut self, version: ::flatbuffers::WIPOffset<Version<'b>>) {
13612 self.fbb_
13613 .push_slot_always::<::flatbuffers::WIPOffset<Version>>(
13614 PlexusPlan::VT_VERSION,
13615 version,
13616 );
13617 }
13618 #[inline]
13619 pub fn add_ops(
13620 &mut self,
13621 ops: ::flatbuffers::WIPOffset<
13622 ::flatbuffers::Vector<'b, ::flatbuffers::ForwardsUOffset<PlanOp<'b>>>,
13623 >,
13624 ) {
13625 self.fbb_
13626 .push_slot_always::<::flatbuffers::WIPOffset<_>>(PlexusPlan::VT_OPS, ops);
13627 }
13628 #[inline]
13629 pub fn add_root_op(&mut self, root_op: u32) {
13630 self.fbb_
13631 .push_slot::<u32>(PlexusPlan::VT_ROOT_OP, root_op, 0);
13632 }
13633 #[inline]
13634 pub fn new(
13635 _fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13636 ) -> PlexusPlanBuilder<'a, 'b, A> {
13637 let start = _fbb.start_table();
13638 PlexusPlanBuilder {
13639 fbb_: _fbb,
13640 start_: start,
13641 }
13642 }
13643 #[inline]
13644 pub fn finish(self) -> ::flatbuffers::WIPOffset<PlexusPlan<'a>> {
13645 let o = self.fbb_.end_table(self.start_);
13646 self.fbb_.required(o, PlexusPlan::VT_VERSION, "version");
13647 ::flatbuffers::WIPOffset::new(o.value())
13648 }
13649 }
13650
13651 impl ::core::fmt::Debug for PlexusPlan<'_> {
13652 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13653 let mut ds = f.debug_struct("PlexusPlan");
13654 ds.field("version", &self.version());
13655 ds.field("ops", &self.ops());
13656 ds.field("root_op", &self.root_op());
13657 ds.finish()
13658 }
13659 }
13660 #[inline]
13661 pub fn root_as_plexus_plan(
13668 buf: &[u8],
13669 ) -> Result<PlexusPlan<'_>, ::flatbuffers::InvalidFlatbuffer> {
13670 ::flatbuffers::root::<PlexusPlan>(buf)
13671 }
13672 #[inline]
13673 pub fn size_prefixed_root_as_plexus_plan(
13680 buf: &[u8],
13681 ) -> Result<PlexusPlan<'_>, ::flatbuffers::InvalidFlatbuffer> {
13682 ::flatbuffers::size_prefixed_root::<PlexusPlan>(buf)
13683 }
13684 #[inline]
13685 pub fn root_as_plexus_plan_with_opts<'b, 'o>(
13692 opts: &'o ::flatbuffers::VerifierOptions,
13693 buf: &'b [u8],
13694 ) -> Result<PlexusPlan<'b>, ::flatbuffers::InvalidFlatbuffer> {
13695 ::flatbuffers::root_with_opts::<PlexusPlan<'b>>(opts, buf)
13696 }
13697 #[inline]
13698 pub fn size_prefixed_root_as_plexus_plan_with_opts<'b, 'o>(
13705 opts: &'o ::flatbuffers::VerifierOptions,
13706 buf: &'b [u8],
13707 ) -> Result<PlexusPlan<'b>, ::flatbuffers::InvalidFlatbuffer> {
13708 ::flatbuffers::size_prefixed_root_with_opts::<PlexusPlan<'b>>(opts, buf)
13709 }
13710 #[inline]
13711 pub unsafe fn root_as_plexus_plan_unchecked(buf: &[u8]) -> PlexusPlan<'_> {
13715 unsafe { ::flatbuffers::root_unchecked::<PlexusPlan>(buf) }
13716 }
13717 #[inline]
13718 pub unsafe fn size_prefixed_root_as_plexus_plan_unchecked(buf: &[u8]) -> PlexusPlan<'_> {
13722 unsafe { ::flatbuffers::size_prefixed_root_unchecked::<PlexusPlan>(buf) }
13723 }
13724 pub const PLEXUS_PLAN_IDENTIFIER: &str = "PLXS";
13725
13726 #[inline]
13727 pub fn plexus_plan_buffer_has_identifier(buf: &[u8]) -> bool {
13728 ::flatbuffers::buffer_has_identifier(buf, PLEXUS_PLAN_IDENTIFIER, false)
13729 }
13730
13731 #[inline]
13732 pub fn plexus_plan_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
13733 ::flatbuffers::buffer_has_identifier(buf, PLEXUS_PLAN_IDENTIFIER, true)
13734 }
13735
13736 pub const PLEXUS_PLAN_EXTENSION: &str = "plexus";
13737
13738 #[inline]
13739 pub fn finish_plexus_plan_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(
13740 fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13741 root: ::flatbuffers::WIPOffset<PlexusPlan<'a>>,
13742 ) {
13743 fbb.finish(root, Some(PLEXUS_PLAN_IDENTIFIER));
13744 }
13745
13746 #[inline]
13747 pub fn finish_size_prefixed_plexus_plan_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(
13748 fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
13749 root: ::flatbuffers::WIPOffset<PlexusPlan<'a>>,
13750 ) {
13751 fbb.finish_size_prefixed(root, Some(PLEXUS_PLAN_IDENTIFIER));
13752 }
13753}