// automatically generated by the FlatBuffers compiler, do not modify
// @generated
extern crate alloc;


#[allow(unused_imports, dead_code)]
pub mod germanic {

#[allow(unused_imports, dead_code)]
pub mod common {


pub enum HinweisOffset {}
#[derive(Copy, Clone, PartialEq)]

/// Versteckter Hinweis für KI-Discovery.
/// Nur maschinenlesbar, nicht im HTML sichtbar.
/// Beispiel: frage="Wer ist Porco?", antwort="Porco ist ein Gott!"
pub struct Hinweis<'a> {
  pub _tab: ::flatbuffers::Table<'a>,
}

impl<'a> ::flatbuffers::Follow<'a> for Hinweis<'a> {
  type Inner = Hinweis<'a>;
  #[inline]
  unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
    Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
  }
}

impl<'a> Hinweis<'a> {
  pub const VT_FRAGE: ::flatbuffers::VOffsetT = 4;
  pub const VT_ANTWORT: ::flatbuffers::VOffsetT = 6;

  #[inline]
  pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
    Hinweis { _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 HinweisArgs<'args>
  ) -> ::flatbuffers::WIPOffset<Hinweis<'bldr>> {
    let mut builder = HinweisBuilder::new(_fbb);
    if let Some(x) = args.antwort { builder.add_antwort(x); }
    if let Some(x) = args.frage { builder.add_frage(x); }
    builder.finish()
  }


  /// Die Frage, die eine KI stellen könnte
  #[inline]
  pub fn frage(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(Hinweis::VT_FRAGE, None)}
  }
  /// Die Antwort, die nur GERMANIC-fähige KIs finden
  #[inline]
  pub fn antwort(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(Hinweis::VT_ANTWORT, None)}
  }
}

impl ::flatbuffers::Verifiable for Hinweis<'_> {
  #[inline]
  fn run_verifier(
    v: &mut ::flatbuffers::Verifier, pos: usize
  ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
    v.visit_table(pos)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("frage", Self::VT_FRAGE, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("antwort", Self::VT_ANTWORT, false)?
     .finish();
    Ok(())
  }
}
pub struct HinweisArgs<'a> {
    pub frage: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub antwort: Option<::flatbuffers::WIPOffset<&'a str>>,
}
impl<'a> Default for HinweisArgs<'a> {
  #[inline]
  fn default() -> Self {
    HinweisArgs {
      frage: None,
      antwort: None,
    }
  }
}

pub struct HinweisBuilder<'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> HinweisBuilder<'a, 'b, A> {
  #[inline]
  pub fn add_frage(&mut self, frage: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Hinweis::VT_FRAGE, frage);
  }
  #[inline]
  pub fn add_antwort(&mut self, antwort: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Hinweis::VT_ANTWORT, antwort);
  }
  #[inline]
  pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> HinweisBuilder<'a, 'b, A> {
    let start = _fbb.start_table();
    HinweisBuilder {
      fbb_: _fbb,
      start_: start,
    }
  }
  #[inline]
  pub fn finish(self) -> ::flatbuffers::WIPOffset<Hinweis<'a>> {
    let o = self.fbb_.end_table(self.start_);
    ::flatbuffers::WIPOffset::new(o.value())
  }
}

impl ::core::fmt::Debug for Hinweis<'_> {
  fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
    let mut ds = f.debug_struct("Hinweis");
      ds.field("frage", &self.frage());
      ds.field("antwort", &self.antwort());
      ds.finish()
  }
}
pub enum SignaturOffset {}
#[derive(Copy, Clone, PartialEq)]

/// Kryptografische Signatur für Verifizierung offizieller Schemas.
/// Verwendet Ed25519 für kompakte, schnelle Signaturen.
pub struct Signatur<'a> {
  pub _tab: ::flatbuffers::Table<'a>,
}

impl<'a> ::flatbuffers::Follow<'a> for Signatur<'a> {
  type Inner = Signatur<'a>;
  #[inline]
  unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
    Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
  }
}

impl<'a> Signatur<'a> {
  pub const VT_PUBLIC_KEY: ::flatbuffers::VOffsetT = 4;
  pub const VT_SIGNATUR_BYTES: ::flatbuffers::VOffsetT = 6;
  pub const VT_ALGORITHMUS: ::flatbuffers::VOffsetT = 8;

  #[inline]
  pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
    Signatur { _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 SignaturArgs<'args>
  ) -> ::flatbuffers::WIPOffset<Signatur<'bldr>> {
    let mut builder = SignaturBuilder::new(_fbb);
    if let Some(x) = args.algorithmus { builder.add_algorithmus(x); }
    if let Some(x) = args.signatur_bytes { builder.add_signatur_bytes(x); }
    if let Some(x) = args.public_key { builder.add_public_key(x); }
    builder.finish()
  }


  /// Ed25519 Public Key (32 Bytes, Base64-encoded)
  /// Bekannte offizielle Keys werden auf germanic.dev veröffentlicht
  #[inline]
  pub fn public_key(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(Signatur::VT_PUBLIC_KEY, None)}
  }
  /// Ed25519 Signatur (64 Bytes, Base64-encoded)
  /// Signiert wird: SHA256(schema_id + erstellt_am + erstellt_von)
  #[inline]
  pub fn signatur_bytes(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(Signatur::VT_SIGNATUR_BYTES, None)}
  }
  /// Signatur-Algorithmus (für Zukunftssicherheit)
  #[inline]
  pub fn algorithmus(&self) -> &'a str {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(Signatur::VT_ALGORITHMUS, Some(&"Ed25519-SHA256")).unwrap()}
  }
}

impl ::flatbuffers::Verifiable for Signatur<'_> {
  #[inline]
  fn run_verifier(
    v: &mut ::flatbuffers::Verifier, pos: usize
  ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
    v.visit_table(pos)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("public_key", Self::VT_PUBLIC_KEY, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("signatur_bytes", Self::VT_SIGNATUR_BYTES, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("algorithmus", Self::VT_ALGORITHMUS, false)?
     .finish();
    Ok(())
  }
}
pub struct SignaturArgs<'a> {
    pub public_key: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub signatur_bytes: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub algorithmus: Option<::flatbuffers::WIPOffset<&'a str>>,
}
impl<'a> Default for SignaturArgs<'a> {
  #[inline]
  fn default() -> Self {
    SignaturArgs {
      public_key: None,
      signatur_bytes: None,
      algorithmus: None,
    }
  }
}

pub struct SignaturBuilder<'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> SignaturBuilder<'a, 'b, A> {
  #[inline]
  pub fn add_public_key(&mut self, public_key: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Signatur::VT_PUBLIC_KEY, public_key);
  }
  #[inline]
  pub fn add_signatur_bytes(&mut self, signatur_bytes: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Signatur::VT_SIGNATUR_BYTES, signatur_bytes);
  }
  #[inline]
  pub fn add_algorithmus(&mut self, algorithmus: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(Signatur::VT_ALGORITHMUS, algorithmus);
  }
  #[inline]
  pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> SignaturBuilder<'a, 'b, A> {
    let start = _fbb.start_table();
    SignaturBuilder {
      fbb_: _fbb,
      start_: start,
    }
  }
  #[inline]
  pub fn finish(self) -> ::flatbuffers::WIPOffset<Signatur<'a>> {
    let o = self.fbb_.end_table(self.start_);
    ::flatbuffers::WIPOffset::new(o.value())
  }
}

impl ::core::fmt::Debug for Signatur<'_> {
  fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
    let mut ds = f.debug_struct("Signatur");
      ds.field("public_key", &self.public_key());
      ds.field("signatur_bytes", &self.signatur_bytes());
      ds.field("algorithmus", &self.algorithmus());
      ds.finish()
  }
}
pub enum GermanicMetaOffset {}
#[derive(Copy, Clone, PartialEq)]

/// Meta-Informationen für alle GERMANIC-Daten.
/// Dieses Table kann in jedes Schema eingebunden werden.
pub struct GermanicMeta<'a> {
  pub _tab: ::flatbuffers::Table<'a>,
}

impl<'a> ::flatbuffers::Follow<'a> for GermanicMeta<'a> {
  type Inner = GermanicMeta<'a>;
  #[inline]
  unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
    Self { _tab: unsafe { ::flatbuffers::Table::new(buf, loc) } }
  }
}

impl<'a> GermanicMeta<'a> {
  pub const VT_ERSTELLT_VON: ::flatbuffers::VOffsetT = 4;
  pub const VT_ERSTELLT_AM: ::flatbuffers::VOffsetT = 6;
  pub const VT_OFFIZIELL: ::flatbuffers::VOffsetT = 8;
  pub const VT_SIGNATUR: ::flatbuffers::VOffsetT = 10;
  pub const VT_HINWEISE: ::flatbuffers::VOffsetT = 12;
  pub const VT_SCHEMA_VERSION: ::flatbuffers::VOffsetT = 14;
  pub const VT_LIZENZ: ::flatbuffers::VOffsetT = 16;

  #[inline]
  pub unsafe fn init_from_table(table: ::flatbuffers::Table<'a>) -> Self {
    GermanicMeta { _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 GermanicMetaArgs<'args>
  ) -> ::flatbuffers::WIPOffset<GermanicMeta<'bldr>> {
    let mut builder = GermanicMetaBuilder::new(_fbb);
    if let Some(x) = args.lizenz { builder.add_lizenz(x); }
    if let Some(x) = args.schema_version { builder.add_schema_version(x); }
    if let Some(x) = args.hinweise { builder.add_hinweise(x); }
    if let Some(x) = args.signatur { builder.add_signatur(x); }
    if let Some(x) = args.erstellt_am { builder.add_erstellt_am(x); }
    if let Some(x) = args.erstellt_von { builder.add_erstellt_von(x); }
    builder.add_offiziell(args.offiziell);
    builder.finish()
  }


  /// Wer hat diese Daten erstellt? (Username, Firmenname, etc.)
  #[inline]
  pub fn erstellt_von(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(GermanicMeta::VT_ERSTELLT_VON, None)}
  }
  /// Wann wurden die Daten erstellt? (ISO 8601)
  #[inline]
  pub fn erstellt_am(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(GermanicMeta::VT_ERSTELLT_AM, None)}
  }
  /// Ist dies ein offizielles germanic.dev Schema/Datensatz?
  /// Wenn true, MUSS eine gültige Signatur vorhanden sein.
  #[inline]
  pub fn offiziell(&self) -> bool {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<bool>(GermanicMeta::VT_OFFIZIELL, Some(false)).unwrap()}
  }
  /// Kryptografische Signatur (nur relevant wenn offiziell=true)
  #[inline]
  pub fn signatur(&self) -> Option<Signatur<'a>> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<Signatur>>(GermanicMeta::VT_SIGNATUR, None)}
  }
  /// Versteckte Hinweise für KI-Discovery (Easter Eggs, etc.)
  #[inline]
  pub fn hinweise(&self) -> Option<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Hinweis<'a>>>> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Hinweis>>>>(GermanicMeta::VT_HINWEISE, None)}
  }
  /// Schema-Version für Kompatibilitätsprüfung
  #[inline]
  pub fn schema_version(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(GermanicMeta::VT_SCHEMA_VERSION, None)}
  }
  /// Optionale Lizenz-Info für die Daten (nicht das Schema)
  #[inline]
  pub fn lizenz(&self) -> Option<&'a str> {
    // Safety:
    // Created from valid Table for this object
    // which contains a valid value in this slot
    unsafe { self._tab.get::<::flatbuffers::ForwardsUOffset<&str>>(GermanicMeta::VT_LIZENZ, None)}
  }
}

impl ::flatbuffers::Verifiable for GermanicMeta<'_> {
  #[inline]
  fn run_verifier(
    v: &mut ::flatbuffers::Verifier, pos: usize
  ) -> Result<(), ::flatbuffers::InvalidFlatbuffer> {
    v.visit_table(pos)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("erstellt_von", Self::VT_ERSTELLT_VON, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("erstellt_am", Self::VT_ERSTELLT_AM, false)?
     .visit_field::<bool>("offiziell", Self::VT_OFFIZIELL, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<Signatur>>("signatur", Self::VT_SIGNATUR, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<::flatbuffers::Vector<'_, ::flatbuffers::ForwardsUOffset<Hinweis>>>>("hinweise", Self::VT_HINWEISE, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("schema_version", Self::VT_SCHEMA_VERSION, false)?
     .visit_field::<::flatbuffers::ForwardsUOffset<&str>>("lizenz", Self::VT_LIZENZ, false)?
     .finish();
    Ok(())
  }
}
pub struct GermanicMetaArgs<'a> {
    pub erstellt_von: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub erstellt_am: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub offiziell: bool,
    pub signatur: Option<::flatbuffers::WIPOffset<Signatur<'a>>>,
    pub hinweise: Option<::flatbuffers::WIPOffset<::flatbuffers::Vector<'a, ::flatbuffers::ForwardsUOffset<Hinweis<'a>>>>>,
    pub schema_version: Option<::flatbuffers::WIPOffset<&'a str>>,
    pub lizenz: Option<::flatbuffers::WIPOffset<&'a str>>,
}
impl<'a> Default for GermanicMetaArgs<'a> {
  #[inline]
  fn default() -> Self {
    GermanicMetaArgs {
      erstellt_von: None,
      erstellt_am: None,
      offiziell: false,
      signatur: None,
      hinweise: None,
      schema_version: None,
      lizenz: None,
    }
  }
}

pub struct GermanicMetaBuilder<'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> GermanicMetaBuilder<'a, 'b, A> {
  #[inline]
  pub fn add_erstellt_von(&mut self, erstellt_von: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(GermanicMeta::VT_ERSTELLT_VON, erstellt_von);
  }
  #[inline]
  pub fn add_erstellt_am(&mut self, erstellt_am: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(GermanicMeta::VT_ERSTELLT_AM, erstellt_am);
  }
  #[inline]
  pub fn add_offiziell(&mut self, offiziell: bool) {
    self.fbb_.push_slot::<bool>(GermanicMeta::VT_OFFIZIELL, offiziell, false);
  }
  #[inline]
  pub fn add_signatur(&mut self, signatur: ::flatbuffers::WIPOffset<Signatur<'b >>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<Signatur>>(GermanicMeta::VT_SIGNATUR, signatur);
  }
  #[inline]
  pub fn add_hinweise(&mut self, hinweise: ::flatbuffers::WIPOffset<::flatbuffers::Vector<'b , ::flatbuffers::ForwardsUOffset<Hinweis<'b >>>>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(GermanicMeta::VT_HINWEISE, hinweise);
  }
  #[inline]
  pub fn add_schema_version(&mut self, schema_version: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(GermanicMeta::VT_SCHEMA_VERSION, schema_version);
  }
  #[inline]
  pub fn add_lizenz(&mut self, lizenz: ::flatbuffers::WIPOffset<&'b  str>) {
    self.fbb_.push_slot_always::<::flatbuffers::WIPOffset<_>>(GermanicMeta::VT_LIZENZ, lizenz);
  }
  #[inline]
  pub fn new(_fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>) -> GermanicMetaBuilder<'a, 'b, A> {
    let start = _fbb.start_table();
    GermanicMetaBuilder {
      fbb_: _fbb,
      start_: start,
    }
  }
  #[inline]
  pub fn finish(self) -> ::flatbuffers::WIPOffset<GermanicMeta<'a>> {
    let o = self.fbb_.end_table(self.start_);
    ::flatbuffers::WIPOffset::new(o.value())
  }
}

impl ::core::fmt::Debug for GermanicMeta<'_> {
  fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
    let mut ds = f.debug_struct("GermanicMeta");
      ds.field("erstellt_von", &self.erstellt_von());
      ds.field("erstellt_am", &self.erstellt_am());
      ds.field("offiziell", &self.offiziell());
      ds.field("signatur", &self.signatur());
      ds.field("hinweise", &self.hinweise());
      ds.field("schema_version", &self.schema_version());
      ds.field("lizenz", &self.lizenz());
      ds.finish()
  }
}
#[inline]
/// Verifies that a buffer of bytes contains a `GermanicMeta`
/// and returns it.
/// Note that verification is still experimental and may not
/// catch every error, or be maximally performant. For the
/// previous, unchecked, behavior use
/// `root_as_germanic_meta_unchecked`.
pub fn root_as_germanic_meta(buf: &[u8]) -> Result<GermanicMeta<'_>, ::flatbuffers::InvalidFlatbuffer> {
  ::flatbuffers::root::<GermanicMeta>(buf)
}
#[inline]
/// Verifies that a buffer of bytes contains a size prefixed
/// `GermanicMeta` and returns it.
/// Note that verification is still experimental and may not
/// catch every error, or be maximally performant. For the
/// previous, unchecked, behavior use
/// `size_prefixed_root_as_germanic_meta_unchecked`.
pub fn size_prefixed_root_as_germanic_meta(buf: &[u8]) -> Result<GermanicMeta<'_>, ::flatbuffers::InvalidFlatbuffer> {
  ::flatbuffers::size_prefixed_root::<GermanicMeta>(buf)
}
#[inline]
/// Verifies, with the given options, that a buffer of bytes
/// contains a `GermanicMeta` and returns it.
/// Note that verification is still experimental and may not
/// catch every error, or be maximally performant. For the
/// previous, unchecked, behavior use
/// `root_as_germanic_meta_unchecked`.
pub fn root_as_germanic_meta_with_opts<'b, 'o>(
  opts: &'o ::flatbuffers::VerifierOptions,
  buf: &'b [u8],
) -> Result<GermanicMeta<'b>, ::flatbuffers::InvalidFlatbuffer> {
  ::flatbuffers::root_with_opts::<GermanicMeta<'b>>(opts, buf)
}
#[inline]
/// Verifies, with the given verifier options, that a buffer of
/// bytes contains a size prefixed `GermanicMeta` and returns
/// it. Note that verification is still experimental and may not
/// catch every error, or be maximally performant. For the
/// previous, unchecked, behavior use
/// `root_as_germanic_meta_unchecked`.
pub fn size_prefixed_root_as_germanic_meta_with_opts<'b, 'o>(
  opts: &'o ::flatbuffers::VerifierOptions,
  buf: &'b [u8],
) -> Result<GermanicMeta<'b>, ::flatbuffers::InvalidFlatbuffer> {
  ::flatbuffers::size_prefixed_root_with_opts::<GermanicMeta<'b>>(opts, buf)
}
#[inline]
/// Assumes, without verification, that a buffer of bytes contains a GermanicMeta and returns it.
/// # Safety
/// Callers must trust the given bytes do indeed contain a valid `GermanicMeta`.
pub unsafe fn root_as_germanic_meta_unchecked(buf: &[u8]) -> GermanicMeta<'_> {
  unsafe { ::flatbuffers::root_unchecked::<GermanicMeta>(buf) }
}
#[inline]
/// Assumes, without verification, that a buffer of bytes contains a size prefixed GermanicMeta and returns it.
/// # Safety
/// Callers must trust the given bytes do indeed contain a valid size prefixed `GermanicMeta`.
pub unsafe fn size_prefixed_root_as_germanic_meta_unchecked(buf: &[u8]) -> GermanicMeta<'_> {
  unsafe { ::flatbuffers::size_prefixed_root_unchecked::<GermanicMeta>(buf) }
}
#[inline]
pub fn finish_germanic_meta_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(
    fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>,
    root: ::flatbuffers::WIPOffset<GermanicMeta<'a>>) {
  fbb.finish(root, None);
}

#[inline]
pub fn finish_size_prefixed_germanic_meta_buffer<'a, 'b, A: ::flatbuffers::Allocator + 'a>(fbb: &'b mut ::flatbuffers::FlatBufferBuilder<'a, A>, root: ::flatbuffers::WIPOffset<GermanicMeta<'a>>) {
  fbb.finish_size_prefixed(root, None);
}
}  // pub mod common
}  // pub mod germanic

