...

Text file src/github.com/google/flatbuffers/tests/private_annotation_test/object_generated.rs

Documentation: github.com/google/flatbuffers/tests/private_annotation_test

     1// automatically generated by the FlatBuffers compiler, do not modify
     2// @generated
     3extern crate alloc;
     4extern crate flatbuffers;
     5use alloc::boxed::Box;
     6use alloc::string::{String, ToString};
     7use alloc::vec::Vec;
     8use core::mem;
     9use core::cmp::Ordering;
    10use self::flatbuffers::{EndianScalar, Follow};
    11use super::*;
    12// struct Object, aligned to 4
    13#[repr(transparent)]
    14#[derive(Clone, Copy, PartialEq)]
    15pub(crate) struct Object(pub [u8; 4]);
    16impl Default for Object { 
    17  fn default() -> Self { 
    18    Self([0; 4])
    19  }
    20}
    21impl core::fmt::Debug for Object {
    22  fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
    23    f.debug_struct("Object")
    24      .field("value", &self.value())
    25      .finish()
    26  }
    27}
    28
    29impl flatbuffers::SimpleToVerifyInSlice for Object {}
    30impl<'a> flatbuffers::Follow<'a> for Object {
    31  type Inner = &'a Object;
    32  #[inline]
    33  unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
    34    <&'a Object>::follow(buf, loc)
    35  }
    36}
    37impl<'a> flatbuffers::Follow<'a> for &'a Object {
    38  type Inner = &'a Object;
    39  #[inline]
    40  unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
    41    flatbuffers::follow_cast_ref::<Object>(buf, loc)
    42  }
    43}
    44impl<'b> flatbuffers::Push for Object {
    45    type Output = Object;
    46    #[inline]
    47    unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
    48        let src = ::core::slice::from_raw_parts(self as *const Object as *const u8, Self::size());
    49        dst.copy_from_slice(src);
    50    }
    51}
    52
    53impl<'a> flatbuffers::Verifiable for Object {
    54  #[inline]
    55  fn run_verifier(
    56    v: &mut flatbuffers::Verifier, pos: usize
    57  ) -> Result<(), flatbuffers::InvalidFlatbuffer> {
    58    use self::flatbuffers::Verifiable;
    59    v.in_buffer::<Self>(pos)
    60  }
    61}
    62
    63impl<'a> Object {
    64  #[allow(clippy::too_many_arguments)]
    65  pub fn new(
    66    value: i32,
    67  ) -> Self {
    68    let mut s = Self([0; 4]);
    69    s.set_value(value);
    70    s
    71  }
    72
    73  pub const fn get_fully_qualified_name() -> &'static str {
    74    "Object"
    75  }
    76
    77  pub fn value(&self) -> i32 {
    78    let mut mem = core::mem::MaybeUninit::<<i32 as EndianScalar>::Scalar>::uninit();
    79    // Safety:
    80    // Created from a valid Table for this object
    81    // Which contains a valid value in this slot
    82    EndianScalar::from_little_endian(unsafe {
    83      core::ptr::copy_nonoverlapping(
    84        self.0[0..].as_ptr(),
    85        mem.as_mut_ptr() as *mut u8,
    86        core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
    87      );
    88      mem.assume_init()
    89    })
    90  }
    91
    92  pub fn set_value(&mut self, x: i32) {
    93    let x_le = x.to_little_endian();
    94    // Safety:
    95    // Created from a valid Table for this object
    96    // Which contains a valid value in this slot
    97    unsafe {
    98      core::ptr::copy_nonoverlapping(
    99        &x_le as *const _ as *const u8,
   100        self.0[0..].as_mut_ptr(),
   101        core::mem::size_of::<<i32 as EndianScalar>::Scalar>(),
   102      );
   103    }
   104  }
   105
   106  pub fn unpack(&self) -> ObjectT {
   107    ObjectT {
   108      value: self.value(),
   109    }
   110  }
   111}
   112
   113#[derive(Debug, Clone, PartialEq, Default)]
   114pub(crate) struct ObjectT {
   115  pub value: i32,
   116}
   117impl ObjectT {
   118  pub fn pack(&self) -> Object {
   119    Object::new(
   120      self.value,
   121    )
   122  }
   123}
   124

View as plain text