use core::mem;
use core::cmp::Ordering;
extern crate flatbuffers;
use self::flatbuffers::{EndianScalar, Follow};
pub enum REVOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct REV<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for REV<'a> {
type Inner = REV<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> REV<'a> {
pub const VT_REVIEW_ID: flatbuffers::VOffsetT = 4;
pub const VT_LISTING_ID: flatbuffers::VOffsetT = 6;
pub const VT_REVIEWER_PEER_ID: flatbuffers::VOffsetT = 8;
pub const VT_RATING: flatbuffers::VOffsetT = 10;
pub const VT_TITLE: flatbuffers::VOffsetT = 12;
pub const VT_CONTENT: flatbuffers::VOffsetT = 14;
pub const VT_ACL_GRANT_ID: flatbuffers::VOffsetT = 16;
pub const VT_TIMESTAMP: flatbuffers::VOffsetT = 18;
pub const VT_REVIEWER_SIGNATURE: flatbuffers::VOffsetT = 20;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
REV { _tab: table }
}
#[allow(unused_mut)]
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr, A: flatbuffers::Allocator + 'bldr>(
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
args: &'args REVArgs<'args>
) -> flatbuffers::WIPOffset<REV<'bldr>> {
let mut builder = REVBuilder::new(_fbb);
builder.add_TIMESTAMP(args.TIMESTAMP);
if let Some(x) = args.REVIEWER_SIGNATURE { builder.add_REVIEWER_SIGNATURE(x); }
if let Some(x) = args.ACL_GRANT_ID { builder.add_ACL_GRANT_ID(x); }
if let Some(x) = args.CONTENT { builder.add_CONTENT(x); }
if let Some(x) = args.TITLE { builder.add_TITLE(x); }
if let Some(x) = args.REVIEWER_PEER_ID { builder.add_REVIEWER_PEER_ID(x); }
if let Some(x) = args.LISTING_ID { builder.add_LISTING_ID(x); }
if let Some(x) = args.REVIEW_ID { builder.add_REVIEW_ID(x); }
builder.add_RATING(args.RATING);
builder.finish()
}
pub fn unpack(&self) -> REVT {
let REVIEW_ID = {
let x = self.REVIEW_ID();
x.to_string()
};
let LISTING_ID = {
let x = self.LISTING_ID();
x.to_string()
};
let REVIEWER_PEER_ID = {
let x = self.REVIEWER_PEER_ID();
x.to_string()
};
let RATING = self.RATING();
let TITLE = self.TITLE().map(|x| {
x.to_string()
});
let CONTENT = self.CONTENT().map(|x| {
x.to_string()
});
let ACL_GRANT_ID = self.ACL_GRANT_ID().map(|x| {
x.to_string()
});
let TIMESTAMP = self.TIMESTAMP();
let REVIEWER_SIGNATURE = self.REVIEWER_SIGNATURE().map(|x| {
x.into_iter().collect()
});
REVT {
REVIEW_ID,
LISTING_ID,
REVIEWER_PEER_ID,
RATING,
TITLE,
CONTENT,
ACL_GRANT_ID,
TIMESTAMP,
REVIEWER_SIGNATURE,
}
}
#[inline]
pub fn REVIEW_ID(&self) -> &'a str {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_REVIEW_ID, None).unwrap()}
}
#[inline]
pub fn LISTING_ID(&self) -> &'a str {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_LISTING_ID, None).unwrap()}
}
#[inline]
pub fn REVIEWER_PEER_ID(&self) -> &'a str {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_REVIEWER_PEER_ID, None).unwrap()}
}
#[inline]
pub fn RATING(&self) -> u8 {
unsafe { self._tab.get::<u8>(REV::VT_RATING, Some(0)).unwrap()}
}
#[inline]
pub fn TITLE(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_TITLE, None)}
}
#[inline]
pub fn CONTENT(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_CONTENT, None)}
}
#[inline]
pub fn ACL_GRANT_ID(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(REV::VT_ACL_GRANT_ID, None)}
}
#[inline]
pub fn TIMESTAMP(&self) -> u64 {
unsafe { self._tab.get::<u64>(REV::VT_TIMESTAMP, Some(0)).unwrap()}
}
#[inline]
pub fn REVIEWER_SIGNATURE(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(REV::VT_REVIEWER_SIGNATURE, None)}
}
}
impl flatbuffers::Verifiable for REV<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("REVIEW_ID", Self::VT_REVIEW_ID, true)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("LISTING_ID", Self::VT_LISTING_ID, true)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("REVIEWER_PEER_ID", Self::VT_REVIEWER_PEER_ID, true)?
.visit_field::<u8>("RATING", Self::VT_RATING, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("TITLE", Self::VT_TITLE, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("CONTENT", Self::VT_CONTENT, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("ACL_GRANT_ID", Self::VT_ACL_GRANT_ID, false)?
.visit_field::<u64>("TIMESTAMP", Self::VT_TIMESTAMP, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("REVIEWER_SIGNATURE", Self::VT_REVIEWER_SIGNATURE, false)?
.finish();
Ok(())
}
}
pub struct REVArgs<'a> {
pub REVIEW_ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub LISTING_ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub REVIEWER_PEER_ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub RATING: u8,
pub TITLE: Option<flatbuffers::WIPOffset<&'a str>>,
pub CONTENT: Option<flatbuffers::WIPOffset<&'a str>>,
pub ACL_GRANT_ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub TIMESTAMP: u64,
pub REVIEWER_SIGNATURE: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
}
impl<'a> Default for REVArgs<'a> {
#[inline]
fn default() -> Self {
REVArgs {
REVIEW_ID: None, LISTING_ID: None, REVIEWER_PEER_ID: None, RATING: 0,
TITLE: None,
CONTENT: None,
ACL_GRANT_ID: None,
TIMESTAMP: 0,
REVIEWER_SIGNATURE: None,
}
}
}
pub struct REVBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
}
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> REVBuilder<'a, 'b, A> {
#[inline]
pub fn add_REVIEW_ID(&mut self, REVIEW_ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_REVIEW_ID, REVIEW_ID);
}
#[inline]
pub fn add_LISTING_ID(&mut self, LISTING_ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_LISTING_ID, LISTING_ID);
}
#[inline]
pub fn add_REVIEWER_PEER_ID(&mut self, REVIEWER_PEER_ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_REVIEWER_PEER_ID, REVIEWER_PEER_ID);
}
#[inline]
pub fn add_RATING(&mut self, RATING: u8) {
self.fbb_.push_slot::<u8>(REV::VT_RATING, RATING, 0);
}
#[inline]
pub fn add_TITLE(&mut self, TITLE: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_TITLE, TITLE);
}
#[inline]
pub fn add_CONTENT(&mut self, CONTENT: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_CONTENT, CONTENT);
}
#[inline]
pub fn add_ACL_GRANT_ID(&mut self, ACL_GRANT_ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_ACL_GRANT_ID, ACL_GRANT_ID);
}
#[inline]
pub fn add_TIMESTAMP(&mut self, TIMESTAMP: u64) {
self.fbb_.push_slot::<u64>(REV::VT_TIMESTAMP, TIMESTAMP, 0);
}
#[inline]
pub fn add_REVIEWER_SIGNATURE(&mut self, REVIEWER_SIGNATURE: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(REV::VT_REVIEWER_SIGNATURE, REVIEWER_SIGNATURE);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> REVBuilder<'a, 'b, A> {
let start = _fbb.start_table();
REVBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<REV<'a>> {
let o = self.fbb_.end_table(self.start_);
self.fbb_.required(o, REV::VT_REVIEW_ID,"REVIEW_ID");
self.fbb_.required(o, REV::VT_LISTING_ID,"LISTING_ID");
self.fbb_.required(o, REV::VT_REVIEWER_PEER_ID,"REVIEWER_PEER_ID");
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for REV<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("REV");
ds.field("REVIEW_ID", &self.REVIEW_ID());
ds.field("LISTING_ID", &self.LISTING_ID());
ds.field("REVIEWER_PEER_ID", &self.REVIEWER_PEER_ID());
ds.field("RATING", &self.RATING());
ds.field("TITLE", &self.TITLE());
ds.field("CONTENT", &self.CONTENT());
ds.field("ACL_GRANT_ID", &self.ACL_GRANT_ID());
ds.field("TIMESTAMP", &self.TIMESTAMP());
ds.field("REVIEWER_SIGNATURE", &self.REVIEWER_SIGNATURE());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct REVT {
pub REVIEW_ID: String,
pub LISTING_ID: String,
pub REVIEWER_PEER_ID: String,
pub RATING: u8,
pub TITLE: Option<String>,
pub CONTENT: Option<String>,
pub ACL_GRANT_ID: Option<String>,
pub TIMESTAMP: u64,
pub REVIEWER_SIGNATURE: Option<Vec<u8>>,
}
impl Default for REVT {
fn default() -> Self {
Self {
REVIEW_ID: "".to_string(),
LISTING_ID: "".to_string(),
REVIEWER_PEER_ID: "".to_string(),
RATING: 0,
TITLE: None,
CONTENT: None,
ACL_GRANT_ID: None,
TIMESTAMP: 0,
REVIEWER_SIGNATURE: None,
}
}
}
impl REVT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<REV<'b>> {
let REVIEW_ID = Some({
let x = &self.REVIEW_ID;
_fbb.create_string(x)
});
let LISTING_ID = Some({
let x = &self.LISTING_ID;
_fbb.create_string(x)
});
let REVIEWER_PEER_ID = Some({
let x = &self.REVIEWER_PEER_ID;
_fbb.create_string(x)
});
let RATING = self.RATING;
let TITLE = self.TITLE.as_ref().map(|x|{
_fbb.create_string(x)
});
let CONTENT = self.CONTENT.as_ref().map(|x|{
_fbb.create_string(x)
});
let ACL_GRANT_ID = self.ACL_GRANT_ID.as_ref().map(|x|{
_fbb.create_string(x)
});
let TIMESTAMP = self.TIMESTAMP;
let REVIEWER_SIGNATURE = self.REVIEWER_SIGNATURE.as_ref().map(|x|{
_fbb.create_vector(x)
});
REV::create(_fbb, &REVArgs{
REVIEW_ID,
LISTING_ID,
REVIEWER_PEER_ID,
RATING,
TITLE,
CONTENT,
ACL_GRANT_ID,
TIMESTAMP,
REVIEWER_SIGNATURE,
})
}
}
#[inline]
pub fn root_as_REV(buf: &[u8]) -> Result<REV, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<REV>(buf)
}
#[inline]
pub fn size_prefixed_root_as_REV(buf: &[u8]) -> Result<REV, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<REV>(buf)
}
#[inline]
pub fn root_as_REV_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<REV<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<REV<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_REV_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<REV<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<REV<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_REV_unchecked(buf: &[u8]) -> REV {
flatbuffers::root_unchecked::<REV>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_REV_unchecked(buf: &[u8]) -> REV {
flatbuffers::size_prefixed_root_unchecked::<REV>(buf)
}
pub const REV_IDENTIFIER: &str = "$REV";
#[inline]
pub fn REV_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, REV_IDENTIFIER, false)
}
#[inline]
pub fn REV_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, REV_IDENTIFIER, true)
}
#[inline]
pub fn finish_REV_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<REV<'a>>) {
fbb.finish(root, Some(REV_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_REV_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<REV<'a>>) {
fbb.finish_size_prefixed(root, Some(REV_IDENTIFIER));
}