mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-08 06:05:17 +00:00
* flatbuffers Rust reflection: replace num with num-traits num crate is a wrapper over num-traits and a few other crates, that reexports the APIs from all of them. We only need num-traits. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust reflection: drop dependency on stdint crate We only use it to get intmax_t for deriving alignment, which is an alias for `core::ffi::c_long` [1]. We can use that directly instead. [1] https://docs.rs/stdint/1.0.0/stdint/type.intmax_t.html Signed-off-by: Marcin Radomski <dextero@google.com> * Rust reflection: drop dependency on escape_string crate It's used to format a string used for debugging only, so we might as well use the builtin Debug representation of a string. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust codegen: add derives on generated bitflags Otherwise it limits the use of structs generated for reflection.fbs in Rust reflection API. Signed-off-by: Marcin Radomski <dextero@google.com> * Rust flatbuffers: update bitflags dependency to 2.8 Signed-off-by: Marcin Radomski <dextero@google.com> * Rust codegen: use bitflags v2 API for converting from bits from_bits_unchecked was replaced with safe from_bits_retain. Signed-off-by: Marcin Radomski <dextero@google.com> * Regenerate Rust code after idl change Signed-off-by: Marcin Radomski <dextero@google.com> * Regenerate reflection_generated.rs With flatc --rust ../../../reflection/reflection.fbs Signed-off-by: Marcin Radomski <dextero@google.com> * ts/BUILD.bazel: add missing import Found by Buildifire presubmit: Function "sh_binary" is not global anymore and needs to be loaded from "@rules_shell//shell:sh_binary.bzl". Signed-off-by: Marcin Radomski <dextero@google.com> * Update expected value in generated_code_debug_prints_correctly test In bitflags v2, the debug string representation of enum values is different than it was in v1: Blue -> Color(Blue) (empty) -> LongEnum(0x0) This change adjusts the expected test value. Signed-off-by: Marcin Radomski <dextero@google.com> * Fix tests build on Swift 5.8 grpc-swift 1.4.1 depends on swift-nio-ssl 2.14.0+ [1]. swift-nio-ssl 2.29.1 published on 2025-01-30, introduced some code [2] that uses a "switch expression syntax" supported since Swift 5.9 [3]. Attempts to compile it with Swift 5.8 cause build errors. swift-nio-ssl project doesn't seem to support Swift 5.8. A commit from 2024-10-29 removes a "deprecated reference to a Swift 5.8 pipeline" [4]. swift-nio-ssl 2.29.0 is the last version that can be compiled with Swift 5.8. This commit pins it to that exact version. [1]66e27d7e84/Package.swift (L33)[2]3cb4d5ad12 (diff-bc1db1321ff689c2819245dcce1a3080554f0fc13f81b8d326c97e7d42717c8fR54)[3] https://github.com/swiftlang/swift-evolution/blob/main/proposals/0380-if-switch-expressions.md [4]8a6b89d9a4--------- Signed-off-by: Marcin Radomski <dextero@google.com> Co-authored-by: Marcin Radomski <dextero@google.com>
67 lines
1.7 KiB
Rust
67 lines
1.7 KiB
Rust
// automatically generated by the FlatBuffers compiler, do not modify
|
|
// @generated
|
|
extern crate alloc;
|
|
extern crate flatbuffers;
|
|
use alloc::boxed::Box;
|
|
use alloc::string::{String, ToString};
|
|
use alloc::vec::Vec;
|
|
use core::mem;
|
|
use core::cmp::Ordering;
|
|
use self::flatbuffers::{EndianScalar, Follow};
|
|
use super::*;
|
|
#[allow(non_upper_case_globals)]
|
|
mod bitflags_long_enum {
|
|
flatbuffers::bitflags::bitflags! {
|
|
#[derive(Default, Debug, Clone, Copy, PartialEq)]
|
|
pub struct LongEnum: u64 {
|
|
const LongOne = 2;
|
|
const LongTwo = 4;
|
|
const LongBig = 1099511627776;
|
|
}
|
|
}
|
|
}
|
|
pub use self::bitflags_long_enum::LongEnum;
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for LongEnum {
|
|
type Inner = Self;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u64>(buf, loc);
|
|
Self::from_bits_retain(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for LongEnum {
|
|
type Output = LongEnum;
|
|
#[inline]
|
|
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
|
|
flatbuffers::emplace_scalar::<u64>(dst, self.bits());
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for LongEnum {
|
|
type Scalar = u64;
|
|
#[inline]
|
|
fn to_little_endian(self) -> u64 {
|
|
self.bits().to_le()
|
|
}
|
|
#[inline]
|
|
#[allow(clippy::wrong_self_convention)]
|
|
fn from_little_endian(v: u64) -> Self {
|
|
let b = u64::from_le(v);
|
|
Self::from_bits_retain(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for LongEnum {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
u64::run_verifier(v, pos)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::SimpleToVerifyInSlice for LongEnum {}
|