mirror of
https://github.com/widberg/bff
synced 2026-08-23 14:26:03 -04:00
Pass Version by ref
This commit is contained in:
parent
8d74b911e5
commit
bb40bebf5d
9 changed files with 26 additions and 36 deletions
|
|
@ -122,7 +122,7 @@ pub fn create(
|
|||
let resource: Resource =
|
||||
bff_class
|
||||
.class
|
||||
.to_resource(version.clone(), platform, &name_context)?;
|
||||
.to_resource(version, platform, &name_context)?;
|
||||
|
||||
if resources.contains_key(&resource.name) {
|
||||
return Err(crate::error::BffCliError::DuplicateResource {
|
||||
|
|
|
|||
|
|
@ -89,10 +89,9 @@ pub fn create_resource(
|
|||
.as_ref()
|
||||
.unwrap_or(&bff_class.header.version);
|
||||
|
||||
let resource: Resource =
|
||||
bff_class
|
||||
.class
|
||||
.to_resource(version.clone(), platform, &name_context)?;
|
||||
let resource: Resource = bff_class
|
||||
.class
|
||||
.to_resource(version, platform, &name_context)?;
|
||||
|
||||
let mut resource_writer = BufWriter::new(File::create(resource_path)?);
|
||||
Resource::dump_bff_resource(
|
||||
|
|
|
|||
|
|
@ -155,13 +155,13 @@ fn export_bff_resource(
|
|||
rich_suffix: &String,
|
||||
) -> BffCliResult<()> {
|
||||
let platform = bigfile.manifest().platform;
|
||||
let version = bigfile.manifest().version.clone();
|
||||
let version = &bigfile.manifest().version;
|
||||
let header = BffResourceHeader {
|
||||
platform,
|
||||
version: version.clone(),
|
||||
};
|
||||
|
||||
let class: Class = Class::from_resource(resource, version.clone(), platform, name_context)?;
|
||||
let class: Class = Class::from_resource(resource, version, platform, name_context)?;
|
||||
let bff_class = BffClass { header, class };
|
||||
|
||||
let class_name = resource.class_name.with_context(name_context).to_string();
|
||||
|
|
|
|||
|
|
@ -57,12 +57,8 @@ pub fn extract_resource(
|
|||
version: version.clone(),
|
||||
};
|
||||
|
||||
let class: Class = Class::from_resource(
|
||||
&bff_resource.resource,
|
||||
version.clone(),
|
||||
platform,
|
||||
&name_context,
|
||||
)?;
|
||||
let class: Class =
|
||||
Class::from_resource(&bff_resource.resource, version, platform, &name_context)?;
|
||||
let bff_class = BffClass { header, class };
|
||||
|
||||
std::fs::create_dir(directory)?;
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ impl BigFile {
|
|||
for (&name, resource) in &self.resources {
|
||||
let references = Class::from_resource(
|
||||
resource,
|
||||
self.manifest.version.clone(),
|
||||
&self.manifest.version,
|
||||
self.manifest.platform,
|
||||
name_context,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ where
|
|||
{
|
||||
fn from_resource(
|
||||
resource: &Resource,
|
||||
_version: Version,
|
||||
_version: &Version,
|
||||
platform: Platform,
|
||||
name_context: &NameContext,
|
||||
) -> BffResult<Self> {
|
||||
|
|
@ -99,7 +99,7 @@ where
|
|||
{
|
||||
fn to_resource(
|
||||
&self,
|
||||
_version: Version,
|
||||
_version: &Version,
|
||||
platform: Platform,
|
||||
name_context: &NameContext,
|
||||
) -> BffResult<Resource> {
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ macro_rules! classes {
|
|||
impl crate::traits::FromResource for Class {
|
||||
fn from_resource(
|
||||
resource: &crate::bigfile::resource::Resource,
|
||||
version: crate::bigfile::versions::Version,
|
||||
version: &crate::bigfile::versions::Version,
|
||||
platform: crate::bigfile::platforms::Platform,
|
||||
name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<Class> {
|
||||
|
|
@ -114,7 +114,7 @@ macro_rules! classes {
|
|||
)*
|
||||
};
|
||||
}
|
||||
Err(crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version, platform).into())
|
||||
Err(crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version.clone(), platform).into())
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -123,7 +123,7 @@ macro_rules! classes {
|
|||
impl crate::traits::ToResource for Class {
|
||||
fn to_resource(
|
||||
&self,
|
||||
version: crate::bigfile::versions::Version,
|
||||
version: &crate::bigfile::versions::Version,
|
||||
platform: crate::bigfile::platforms::Platform,
|
||||
name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<crate::bigfile::resource::Resource> {
|
||||
|
|
@ -200,12 +200,12 @@ macro_rules! classes {
|
|||
impl crate::traits::FromResource for $class {
|
||||
fn from_resource(
|
||||
resource: &crate::bigfile::resource::Resource,
|
||||
version: crate::bigfile::versions::Version,
|
||||
version: &crate::bigfile::versions::Version,
|
||||
platform: crate::bigfile::platforms::Platform,
|
||||
_name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<$class> {
|
||||
Err(
|
||||
crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version, platform).into(),
|
||||
crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version.clone(), platform).into(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -213,7 +213,7 @@ macro_rules! classes {
|
|||
impl crate::traits::ToResource for $class {
|
||||
fn to_resource(
|
||||
&self,
|
||||
_version: crate::bigfile::versions::Version,
|
||||
_version: &crate::bigfile::versions::Version,
|
||||
_platform: crate::bigfile::platforms::Platform,
|
||||
_name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<crate::bigfile::resource::Resource> {
|
||||
|
|
@ -269,7 +269,7 @@ macro_rules! classes {
|
|||
impl crate::traits::FromResource for $class {
|
||||
fn from_resource(
|
||||
resource: &crate::bigfile::resource::Resource,
|
||||
version: crate::bigfile::versions::Version,
|
||||
version: &crate::bigfile::versions::Version,
|
||||
platform: crate::bigfile::platforms::Platform,
|
||||
name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<$class> {
|
||||
|
|
@ -281,7 +281,7 @@ macro_rules! classes {
|
|||
Ok(std::boxed::Box::new(shadow_class).into())
|
||||
})*
|
||||
_ => Err(
|
||||
crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version, platform).into(),
|
||||
crate::error::UnimplementedClassError::new(resource.name, resource.class_name, version.clone(), platform).into(),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
@ -291,7 +291,7 @@ macro_rules! classes {
|
|||
#[expect(unused_imports)]
|
||||
fn to_resource(
|
||||
&self,
|
||||
version: crate::bigfile::versions::Version,
|
||||
version: &crate::bigfile::versions::Version,
|
||||
platform: crate::bigfile::platforms::Platform,
|
||||
name_context: &crate::names::NameContext,
|
||||
) -> crate::BffResult<crate::bigfile::resource::Resource> {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ use crate::names::NameContext;
|
|||
pub trait FromResource: Sized {
|
||||
fn from_resource(
|
||||
resource: &Resource,
|
||||
version: Version,
|
||||
version: &Version,
|
||||
platform: Platform,
|
||||
name_context: &NameContext,
|
||||
) -> BffResult<Self>;
|
||||
|
|
@ -16,7 +16,7 @@ pub trait FromResource: Sized {
|
|||
pub trait ToResource {
|
||||
fn to_resource(
|
||||
&self,
|
||||
version: Version,
|
||||
version: &Version,
|
||||
platform: Platform,
|
||||
name_context: &NameContext,
|
||||
) -> BffResult<Resource>;
|
||||
|
|
|
|||
|
|
@ -61,16 +61,11 @@ fn roundtrip_resources(bigfile_path_str: String) {
|
|||
let mut reader = BufReader::new(f);
|
||||
let mut name_context = probe_name_context(&mut reader, platform);
|
||||
let bigfile = BigFile::read_platform(&mut reader, platform, &None, &name_context).unwrap();
|
||||
let version = bigfile.manifest().version.clone();
|
||||
let version = &bigfile.manifest().version;
|
||||
|
||||
for bff_resource in bigfile.bff_resources() {
|
||||
let class: Class = Class::from_resource(
|
||||
bff_resource.resource,
|
||||
version.clone(),
|
||||
platform,
|
||||
&name_context,
|
||||
)
|
||||
.unwrap();
|
||||
let class: Class =
|
||||
Class::from_resource(bff_resource.resource, version, platform, &name_context).unwrap();
|
||||
let bff_class = BffClass {
|
||||
header: BffResourceHeader {
|
||||
platform,
|
||||
|
|
@ -90,7 +85,7 @@ fn roundtrip_resources(bigfile_path_str: String) {
|
|||
|
||||
let new_resource: Resource = roundtripped_bff_class
|
||||
.class
|
||||
.to_resource(version.clone(), platform, &name_context)
|
||||
.to_resource(version, platform, &name_context)
|
||||
.unwrap();
|
||||
let resource_name = bff_resource
|
||||
.resource
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue