Skip to content

Commit 082bd7e

Browse files
committed
Add flatbuffers schema and generated files for guest trace data
- The files have been generated using the `flatbuffers` v25.9.23 that correctly generate `unsafe` code as opposed to previous versions Signed-off-by: Doru Blânzeanu <[email protected]>
1 parent af26283 commit 082bd7e

File tree

11 files changed

+1541
-1
lines changed

11 files changed

+1541
-1
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
// automatically generated by the FlatBuffers compiler, do not modify
2+
// @generated
3+
extern crate alloc;
4+
extern crate flatbuffers;
5+
use alloc::boxed::Box;
6+
use alloc::string::{String, ToString};
7+
use alloc::vec::Vec;
8+
use core::cmp::Ordering;
9+
use core::mem;
10+
11+
use self::flatbuffers::{EndianScalar, Follow};
12+
use super::*;
13+
pub enum CloseSpanTypeOffset {}
14+
#[derive(Copy, Clone, PartialEq)]
15+
16+
pub struct CloseSpanType<'a> {
17+
pub _tab: flatbuffers::Table<'a>,
18+
}
19+
20+
impl<'a> flatbuffers::Follow<'a> for CloseSpanType<'a> {
21+
type Inner = CloseSpanType<'a>;
22+
#[inline]
23+
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
24+
Self {
25+
_tab: unsafe { flatbuffers::Table::new(buf, loc) },
26+
}
27+
}
28+
}
29+
30+
impl<'a> CloseSpanType<'a> {
31+
pub const VT_ID: flatbuffers::VOffsetT = 4;
32+
pub const VT_TSC: flatbuffers::VOffsetT = 6;
33+
34+
#[inline]
35+
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
36+
CloseSpanType { _tab: table }
37+
}
38+
#[allow(unused_mut)]
39+
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: flatbuffers::Allocator + 'bldr>(
40+
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
41+
args: &'args CloseSpanTypeArgs,
42+
) -> flatbuffers::WIPOffset<CloseSpanType<'bldr>> {
43+
let mut builder = CloseSpanTypeBuilder::new(_fbb);
44+
builder.add_tsc(args.tsc);
45+
builder.add_id(args.id);
46+
builder.finish()
47+
}
48+
49+
#[inline]
50+
pub fn id(&self) -> u64 {
51+
// Safety:
52+
// Created from valid Table for this object
53+
// which contains a valid value in this slot
54+
unsafe { self._tab.get::<u64>(CloseSpanType::VT_ID, Some(0)).unwrap() }
55+
}
56+
#[inline]
57+
pub fn tsc(&self) -> u64 {
58+
// Safety:
59+
// Created from valid Table for this object
60+
// which contains a valid value in this slot
61+
unsafe {
62+
self._tab
63+
.get::<u64>(CloseSpanType::VT_TSC, Some(0))
64+
.unwrap()
65+
}
66+
}
67+
}
68+
69+
impl flatbuffers::Verifiable for CloseSpanType<'_> {
70+
#[inline]
71+
fn run_verifier(
72+
v: &mut flatbuffers::Verifier,
73+
pos: usize,
74+
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
75+
use self::flatbuffers::Verifiable;
76+
v.visit_table(pos)?
77+
.visit_field::<u64>("id", Self::VT_ID, false)?
78+
.visit_field::<u64>("tsc", Self::VT_TSC, false)?
79+
.finish();
80+
Ok(())
81+
}
82+
}
83+
pub struct CloseSpanTypeArgs {
84+
pub id: u64,
85+
pub tsc: u64,
86+
}
87+
impl<'a> Default for CloseSpanTypeArgs {
88+
#[inline]
89+
fn default() -> Self {
90+
CloseSpanTypeArgs { id: 0, tsc: 0 }
91+
}
92+
}
93+
94+
pub struct CloseSpanTypeBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
95+
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
96+
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
97+
}
98+
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> CloseSpanTypeBuilder<'a, 'b, A> {
99+
#[inline]
100+
pub fn add_id(&mut self, id: u64) {
101+
self.fbb_.push_slot::<u64>(CloseSpanType::VT_ID, id, 0);
102+
}
103+
#[inline]
104+
pub fn add_tsc(&mut self, tsc: u64) {
105+
self.fbb_.push_slot::<u64>(CloseSpanType::VT_TSC, tsc, 0);
106+
}
107+
#[inline]
108+
pub fn new(
109+
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
110+
) -> CloseSpanTypeBuilder<'a, 'b, A> {
111+
let start = _fbb.start_table();
112+
CloseSpanTypeBuilder {
113+
fbb_: _fbb,
114+
start_: start,
115+
}
116+
}
117+
#[inline]
118+
pub fn finish(self) -> flatbuffers::WIPOffset<CloseSpanType<'a>> {
119+
let o = self.fbb_.end_table(self.start_);
120+
flatbuffers::WIPOffset::new(o.value())
121+
}
122+
}
123+
124+
impl core::fmt::Debug for CloseSpanType<'_> {
125+
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
126+
let mut ds = f.debug_struct("CloseSpanType");
127+
ds.field("id", &self.id());
128+
ds.field("tsc", &self.tsc());
129+
ds.finish()
130+
}
131+
}
Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
// automatically generated by the FlatBuffers compiler, do not modify
2+
// @generated
3+
extern crate alloc;
4+
extern crate flatbuffers;
5+
use alloc::boxed::Box;
6+
use alloc::string::{String, ToString};
7+
use alloc::vec::Vec;
8+
use core::cmp::Ordering;
9+
use core::mem;
10+
11+
use self::flatbuffers::{EndianScalar, Follow};
12+
use super::*;
13+
pub enum GuestEventEnvelopeTypeOffset {}
14+
#[derive(Copy, Clone, PartialEq)]
15+
16+
pub struct GuestEventEnvelopeType<'a> {
17+
pub _tab: flatbuffers::Table<'a>,
18+
}
19+
20+
impl<'a> flatbuffers::Follow<'a> for GuestEventEnvelopeType<'a> {
21+
type Inner = GuestEventEnvelopeType<'a>;
22+
#[inline]
23+
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
24+
Self {
25+
_tab: unsafe { flatbuffers::Table::new(buf, loc) },
26+
}
27+
}
28+
}
29+
30+
impl<'a> GuestEventEnvelopeType<'a> {
31+
pub const VT_EVENT_TYPE: flatbuffers::VOffsetT = 4;
32+
pub const VT_EVENT: flatbuffers::VOffsetT = 6;
33+
34+
#[inline]
35+
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
36+
GuestEventEnvelopeType { _tab: table }
37+
}
38+
#[allow(unused_mut)]
39+
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: flatbuffers::Allocator + 'bldr>(
40+
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
41+
args: &'args GuestEventEnvelopeTypeArgs,
42+
) -> flatbuffers::WIPOffset<GuestEventEnvelopeType<'bldr>> {
43+
let mut builder = GuestEventEnvelopeTypeBuilder::new(_fbb);
44+
if let Some(x) = args.event {
45+
builder.add_event(x);
46+
}
47+
builder.add_event_type(args.event_type);
48+
builder.finish()
49+
}
50+
51+
#[inline]
52+
pub fn event_type(&self) -> GuestEventType {
53+
// Safety:
54+
// Created from valid Table for this object
55+
// which contains a valid value in this slot
56+
unsafe {
57+
self._tab
58+
.get::<GuestEventType>(
59+
GuestEventEnvelopeType::VT_EVENT_TYPE,
60+
Some(GuestEventType::NONE),
61+
)
62+
.unwrap()
63+
}
64+
}
65+
#[inline]
66+
pub fn event(&self) -> Option<flatbuffers::Table<'a>> {
67+
// Safety:
68+
// Created from valid Table for this object
69+
// which contains a valid value in this slot
70+
unsafe {
71+
self._tab
72+
.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(
73+
GuestEventEnvelopeType::VT_EVENT,
74+
None,
75+
)
76+
}
77+
}
78+
#[inline]
79+
#[allow(non_snake_case)]
80+
pub fn event_as_open_span_type(&self) -> Option<OpenSpanType<'a>> {
81+
if self.event_type() == GuestEventType::OpenSpanType {
82+
self.event().map(|t| {
83+
// Safety:
84+
// Created from a valid Table for this object
85+
// Which contains a valid union in this slot
86+
unsafe { OpenSpanType::init_from_table(t) }
87+
})
88+
} else {
89+
None
90+
}
91+
}
92+
93+
#[inline]
94+
#[allow(non_snake_case)]
95+
pub fn event_as_close_span_type(&self) -> Option<CloseSpanType<'a>> {
96+
if self.event_type() == GuestEventType::CloseSpanType {
97+
self.event().map(|t| {
98+
// Safety:
99+
// Created from a valid Table for this object
100+
// Which contains a valid union in this slot
101+
unsafe { CloseSpanType::init_from_table(t) }
102+
})
103+
} else {
104+
None
105+
}
106+
}
107+
108+
#[inline]
109+
#[allow(non_snake_case)]
110+
pub fn event_as_log_event_type(&self) -> Option<LogEventType<'a>> {
111+
if self.event_type() == GuestEventType::LogEventType {
112+
self.event().map(|t| {
113+
// Safety:
114+
// Created from a valid Table for this object
115+
// Which contains a valid union in this slot
116+
unsafe { LogEventType::init_from_table(t) }
117+
})
118+
} else {
119+
None
120+
}
121+
}
122+
}
123+
124+
impl flatbuffers::Verifiable for GuestEventEnvelopeType<'_> {
125+
#[inline]
126+
fn run_verifier(
127+
v: &mut flatbuffers::Verifier,
128+
pos: usize,
129+
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
130+
use self::flatbuffers::Verifiable;
131+
v.visit_table(pos)?
132+
.visit_union::<GuestEventType, _>(
133+
"event_type",
134+
Self::VT_EVENT_TYPE,
135+
"event",
136+
Self::VT_EVENT,
137+
false,
138+
|key, v, pos| match key {
139+
GuestEventType::OpenSpanType => v
140+
.verify_union_variant::<flatbuffers::ForwardsUOffset<OpenSpanType>>(
141+
"GuestEventType::OpenSpanType",
142+
pos,
143+
),
144+
GuestEventType::CloseSpanType => v
145+
.verify_union_variant::<flatbuffers::ForwardsUOffset<CloseSpanType>>(
146+
"GuestEventType::CloseSpanType",
147+
pos,
148+
),
149+
GuestEventType::LogEventType => v
150+
.verify_union_variant::<flatbuffers::ForwardsUOffset<LogEventType>>(
151+
"GuestEventType::LogEventType",
152+
pos,
153+
),
154+
_ => Ok(()),
155+
},
156+
)?
157+
.finish();
158+
Ok(())
159+
}
160+
}
161+
pub struct GuestEventEnvelopeTypeArgs {
162+
pub event_type: GuestEventType,
163+
pub event: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
164+
}
165+
impl<'a> Default for GuestEventEnvelopeTypeArgs {
166+
#[inline]
167+
fn default() -> Self {
168+
GuestEventEnvelopeTypeArgs {
169+
event_type: GuestEventType::NONE,
170+
event: None,
171+
}
172+
}
173+
}
174+
175+
pub struct GuestEventEnvelopeTypeBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
176+
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
177+
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
178+
}
179+
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> GuestEventEnvelopeTypeBuilder<'a, 'b, A> {
180+
#[inline]
181+
pub fn add_event_type(&mut self, event_type: GuestEventType) {
182+
self.fbb_.push_slot::<GuestEventType>(
183+
GuestEventEnvelopeType::VT_EVENT_TYPE,
184+
event_type,
185+
GuestEventType::NONE,
186+
);
187+
}
188+
#[inline]
189+
pub fn add_event(&mut self, event: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
190+
self.fbb_
191+
.push_slot_always::<flatbuffers::WIPOffset<_>>(GuestEventEnvelopeType::VT_EVENT, event);
192+
}
193+
#[inline]
194+
pub fn new(
195+
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
196+
) -> GuestEventEnvelopeTypeBuilder<'a, 'b, A> {
197+
let start = _fbb.start_table();
198+
GuestEventEnvelopeTypeBuilder {
199+
fbb_: _fbb,
200+
start_: start,
201+
}
202+
}
203+
#[inline]
204+
pub fn finish(self) -> flatbuffers::WIPOffset<GuestEventEnvelopeType<'a>> {
205+
let o = self.fbb_.end_table(self.start_);
206+
flatbuffers::WIPOffset::new(o.value())
207+
}
208+
}
209+
210+
impl core::fmt::Debug for GuestEventEnvelopeType<'_> {
211+
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
212+
let mut ds = f.debug_struct("GuestEventEnvelopeType");
213+
ds.field("event_type", &self.event_type());
214+
match self.event_type() {
215+
GuestEventType::OpenSpanType => {
216+
if let Some(x) = self.event_as_open_span_type() {
217+
ds.field("event", &x)
218+
} else {
219+
ds.field(
220+
"event",
221+
&"InvalidFlatbuffer: Union discriminant does not match value.",
222+
)
223+
}
224+
}
225+
GuestEventType::CloseSpanType => {
226+
if let Some(x) = self.event_as_close_span_type() {
227+
ds.field("event", &x)
228+
} else {
229+
ds.field(
230+
"event",
231+
&"InvalidFlatbuffer: Union discriminant does not match value.",
232+
)
233+
}
234+
}
235+
GuestEventType::LogEventType => {
236+
if let Some(x) = self.event_as_log_event_type() {
237+
ds.field("event", &x)
238+
} else {
239+
ds.field(
240+
"event",
241+
&"InvalidFlatbuffer: Union discriminant does not match value.",
242+
)
243+
}
244+
}
245+
_ => {
246+
let x: Option<()> = None;
247+
ds.field("event", &x)
248+
}
249+
};
250+
ds.finish()
251+
}
252+
}

0 commit comments

Comments
 (0)