mirror of
https://github.com/widberg/bff
synced 2026-08-23 14:26:03 -04:00
Fix schemars
This commit is contained in:
parent
ed02fb6120
commit
e65f750d0b
18 changed files with 69 additions and 80 deletions
60
Cargo.lock
generated
60
Cargo.lock
generated
|
|
@ -284,10 +284,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "arbitrary-int"
|
||||
version = "1.3.0"
|
||||
version = "2.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "825297538d77367557b912770ca3083f778a196054b3ee63b22673c4a3cae0a5"
|
||||
checksum = "993a810118f8f37e9c4411c86f1c4c940a09a7ab34b7bf2d88d06f50c553fab7"
|
||||
dependencies = [
|
||||
"schemars",
|
||||
"serde",
|
||||
]
|
||||
|
||||
|
|
@ -739,8 +740,8 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "bilge"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/widberg/bilge.git#8913a408b573305526865a588dc3576efa0d6ce0"
|
||||
version = "0.3.0"
|
||||
source = "git+https://github.com/widberg/bilge.git?branch=schemars#f0c43f988f902600d2bc1db4bb9ee240b5610c5c"
|
||||
dependencies = [
|
||||
"arbitrary-int",
|
||||
"bilge-impl",
|
||||
|
|
@ -748,11 +749,11 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "bilge-impl"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/widberg/bilge.git#8913a408b573305526865a588dc3576efa0d6ce0"
|
||||
version = "0.3.0"
|
||||
source = "git+https://github.com/widberg/bilge.git?branch=schemars#f0c43f988f902600d2bc1db4bb9ee240b5610c5c"
|
||||
dependencies = [
|
||||
"itertools 0.11.0",
|
||||
"proc-macro-error",
|
||||
"proc-macro-error2",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.98",
|
||||
|
|
@ -3488,26 +3489,24 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error"
|
||||
version = "1.0.4"
|
||||
name = "proc-macro-error-attr2"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
|
||||
dependencies = [
|
||||
"proc-macro-error-attr",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro-error-attr"
|
||||
version = "1.0.4"
|
||||
name = "proc-macro-error2"
|
||||
version = "2.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
|
||||
dependencies = [
|
||||
"proc-macro-error-attr2",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -3657,26 +3656,6 @@ dependencies = [
|
|||
"bitflags 2.8.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ref-cast"
|
||||
version = "1.0.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf"
|
||||
dependencies = [
|
||||
"ref-cast-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ref-cast-impl"
|
||||
version = "1.0.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.98",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.11.1"
|
||||
|
|
@ -3823,13 +3802,12 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "schemars"
|
||||
version = "1.0.4"
|
||||
version = "0.8.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
|
||||
checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615"
|
||||
dependencies = [
|
||||
"dyn-clone",
|
||||
"indexmap",
|
||||
"ref-cast",
|
||||
"schemars_derive",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
|
@ -3837,9 +3815,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "schemars_derive"
|
||||
version = "1.0.4"
|
||||
version = "0.8.22"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80"
|
||||
checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ derive_more = { version = "2.0.1", features = ["full"] }
|
|||
indicatif = "0.18.0"
|
||||
pathdiff = "0.2.1"
|
||||
rayon = "1.10.0"
|
||||
schemars = "1.0.4"
|
||||
schemars = "0.8.21"
|
||||
serde_json = "1.0.96"
|
||||
shadow-rs = { version = "1.1.1", default-features = false, features = ["build"] }
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ rust-version.workspace = true
|
|||
absperf-minilzo-sys = "2.10.0"
|
||||
arcode = "0.2.4"
|
||||
bff-derive = { path = "../bff-derive" }
|
||||
bilge = { git = "https://github.com/widberg/bilge.git", features = ["serde"] }
|
||||
bilge = { git = "https://github.com/widberg/bilge.git", features = ["serde", "schemars"], branch = "schemars" }
|
||||
binrw = "0.15.0"
|
||||
const_power_of_two = "1.0.0"
|
||||
ddsfile = "0.5.2"
|
||||
|
|
@ -26,7 +26,7 @@ num-traits = "0.2.15"
|
|||
pastey = "0.1.0"
|
||||
petgraph = "0.8.1"
|
||||
scanf = "2.0.0"
|
||||
schemars = { version = "1.0.4", features = ["indexmap2"] }
|
||||
schemars = { version = "0.8.21", features = ["indexmap2"] }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
string-interner = "0.19.0"
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,8 @@ use std::borrow::Cow;
|
|||
use binrw::{BinRead, BinWrite};
|
||||
use derive_more::{Display, From};
|
||||
use scanf::sscanf;
|
||||
use schemars::{JsonSchema, Schema, SchemaGenerator, json_schema};
|
||||
use schemars::schema::Schema;
|
||||
use schemars::{JsonSchema, SchemaGenerator};
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
|
||||
use crate::helpers::PascalString;
|
||||
|
|
@ -149,11 +150,11 @@ impl<'de> Deserialize<'de> for Version {
|
|||
}
|
||||
|
||||
impl JsonSchema for Version {
|
||||
fn inline_schema() -> bool {
|
||||
fn is_referenceable() -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn schema_name() -> Cow<'static, str> {
|
||||
fn schema_name() -> std::string::String {
|
||||
"Version".into()
|
||||
}
|
||||
|
||||
|
|
@ -161,10 +162,8 @@ impl JsonSchema for Version {
|
|||
concat!(module_path!(), "::Version").into()
|
||||
}
|
||||
|
||||
fn json_schema(_schema_generator: &mut SchemaGenerator) -> Schema {
|
||||
json_schema!({
|
||||
"type": "string"
|
||||
})
|
||||
fn json_schema(schema_generator: &mut SchemaGenerator) -> Schema {
|
||||
String::json_schema(schema_generator)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ use crate::traits::{Export, Import};
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct LookupDescription {
|
||||
horizon: u12,
|
||||
|
|
@ -19,7 +19,7 @@ struct LookupDescription {
|
|||
|
||||
#[bitsize(8)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct AltitudePack {
|
||||
odd: u4,
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ enum SubType {
|
|||
|
||||
#[bitsize(8)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct RoadType {
|
||||
sub_type: SubType,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ use crate::traits::{Export, Import};
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct MaterialEnabledBitmaps {
|
||||
diffuse: u1,
|
||||
|
|
@ -28,7 +28,7 @@ struct MaterialEnabledBitmaps {
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct MaterialRdrFlags {
|
||||
padding0: u5,
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ use crate::traits::{Export, Import};
|
|||
|
||||
#[bitsize(8)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct MaterialAnimFlags {
|
||||
fl_mat_play: u1,
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ impl Vertices {
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
pub struct VertexGroupFlags {
|
||||
padding: u2,
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ struct Unused8 {
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct D3DFlags {
|
||||
d3d_pool_default: u1,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ use crate::traits::{Export, Import};
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct ParticlesEmitterFlags {
|
||||
fl_particles_loop: u1,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,19 @@
|
|||
use bff_derive::ReferencedNames;
|
||||
use bilge::prelude::*;
|
||||
use binrw::{BinRead, BinWrite};
|
||||
use schemars::JsonSchema;
|
||||
|
||||
use crate::class::trivial_class::TrivialClass;
|
||||
|
||||
#[bitsize(16)]
|
||||
#[derive(
|
||||
DebugBits, Clone, BinRead, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
DebugBits,
|
||||
Clone,
|
||||
BinRead,
|
||||
SerializeBits,
|
||||
BinWrite,
|
||||
DeserializeBits,
|
||||
ReferencedNames,
|
||||
JsonSchemaBits,
|
||||
)]
|
||||
pub struct SoundFlags {
|
||||
pub paused: u1,
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ struct SeadIndex {
|
|||
|
||||
#[bitsize(16)]
|
||||
#[derive(
|
||||
BinRead, BinWrite, DebugBits, SerializeBits, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, BinWrite, DebugBits, SerializeBits, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct ShouldDrawRelated {
|
||||
index_in_draw_info_array: u3,
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ struct Edge {
|
|||
|
||||
#[bitsize(16)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct ShouldDrawRelated {
|
||||
index_in_draw_info_array: u3,
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ struct Edge {
|
|||
|
||||
#[bitsize(16)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
struct ShouldDrawBitfield {
|
||||
index_in_draw_info_array: u3,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ impl TryFromGenericSubstitute<Self, Self> for ResourceObjectLinkHeaderV1_381_67_
|
|||
|
||||
#[bitsize(32)]
|
||||
#[derive(
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchema,
|
||||
BinRead, DebugBits, SerializeBits, BinWrite, DeserializeBits, ReferencedNames, JsonSchemaBits,
|
||||
)]
|
||||
pub struct ObjectDatasFlagsV1_381_67_09PC {
|
||||
hide: u1,
|
||||
|
|
@ -53,7 +53,7 @@ pub struct ObjectDatasFlagsV1_381_67_09PC {
|
|||
BinWrite,
|
||||
DeserializeBits,
|
||||
ReferencedNames,
|
||||
JsonSchema,
|
||||
JsonSchemaBits,
|
||||
)]
|
||||
pub struct ObjectFlagsV1_381_67_09PC {
|
||||
init: u1,
|
||||
|
|
|
|||
|
|
@ -74,22 +74,23 @@ macro_rules! bff_class {
|
|||
}
|
||||
}
|
||||
|
||||
impl schemars::JsonSchema for $class {
|
||||
fn inline_schema() -> bool {
|
||||
impl ::schemars::JsonSchema for $class {
|
||||
fn is_referenceable() -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn schema_name() -> std::borrow::Cow<'static, str> {
|
||||
fn schema_name() -> ::std::string::String {
|
||||
stringify!($class).into()
|
||||
}
|
||||
|
||||
fn schema_id() -> std::borrow::Cow<'static, str> {
|
||||
format!("{}::{}", module_path!(), stringify!($class)).into()
|
||||
fn schema_id() -> ::std::borrow::Cow<'static, str> {
|
||||
concat!(module_path!(), "::", stringify!($class)).into()
|
||||
}
|
||||
|
||||
fn json_schema(_schema_generator: &mut schemars::SchemaGenerator) -> schemars::Schema {
|
||||
schemars::json_schema!({
|
||||
"type": "object"
|
||||
fn json_schema(_schema_generator: &mut ::schemars::SchemaGenerator) -> ::schemars::schema::Schema {
|
||||
::schemars::schema::Schema::Object(::schemars::schema::SchemaObject {
|
||||
instance_type: ::core::option::Option::Some(::schemars::schema::InstanceType::Object.into()),
|
||||
..::core::default::Default::default()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ use const_power_of_two::PowerOfTwoUsize;
|
|||
use derive_more::{Display, From};
|
||||
use encoding_rs::WINDOWS_1252;
|
||||
use num_traits::AsPrimitive;
|
||||
use schemars::{JsonSchema, Schema, SchemaGenerator, json_schema};
|
||||
use schemars::schema::{InstanceType, Schema, SchemaObject, SingleOrVec};
|
||||
use schemars::{JsonSchema, SchemaGenerator};
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
use string_interner::backend::BucketBackend;
|
||||
use string_interner::{DefaultSymbol, StringInterner};
|
||||
|
|
@ -399,11 +400,11 @@ impl<'de> Deserialize<'de> for Name {
|
|||
}
|
||||
|
||||
impl JsonSchema for Name {
|
||||
fn inline_schema() -> bool {
|
||||
fn is_referenceable() -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn schema_name() -> Cow<'static, str> {
|
||||
fn schema_name() -> std::string::String {
|
||||
"Name".into()
|
||||
}
|
||||
|
||||
|
|
@ -412,8 +413,12 @@ impl JsonSchema for Name {
|
|||
}
|
||||
|
||||
fn json_schema(_schema_generator: &mut SchemaGenerator) -> Schema {
|
||||
json_schema!({
|
||||
"type": ["string", "integer"]
|
||||
Schema::Object(SchemaObject {
|
||||
instance_type: Some(SingleOrVec::Vec(vec![
|
||||
InstanceType::String,
|
||||
InstanceType::Integer,
|
||||
])),
|
||||
..Default::default()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue