Use NameContext for Class

This commit is contained in:
widberg 2026-04-26 19:35:30 -04:00
parent 746c5ba46c
commit e54bf4086d
13 changed files with 134 additions and 141 deletions

View file

@ -8,7 +8,7 @@ use bff::bigfile::platforms::Platform;
use bff::bigfile::resource::{BffClass, Resource};
use bff::bigfile::versions::Version;
use bff::names::{NameContext, NameType};
use bff::traits::{Artifact, Import, TryIntoVersionPlatform};
use bff::traits::{Artifact, Import, IntoResource};
use indicatif::{ProgressBar, ProgressStyle};
use crate::error::BffCliResult;
@ -126,7 +126,9 @@ pub fn create(
.unwrap_or(&bff_class.header.version);
let resource: Resource =
(&bff_class.class).try_into_version_platform(version.clone(), platform)?;
bff_class
.class
.into_resource(version.clone(), platform, &name_context)?;
if resources.contains_key(&resource.name) {
return Err(crate::error::BffCliError::DuplicateResource {

View file

@ -8,7 +8,7 @@ use bff::bigfile::platforms::Platform;
use bff::bigfile::resource::{BffClass, Resource};
use bff::bigfile::versions::Version;
use bff::names::{NameContext, NameType};
use bff::traits::{Artifact, Import, TryIntoVersionPlatform};
use bff::traits::{Artifact, Import, IntoResource};
use crate::error::BffCliResult;
use crate::extract::write_names;
@ -90,7 +90,9 @@ pub fn create_resource(
.unwrap_or(&bff_class.header.version);
let resource: Resource =
(&bff_class.class).try_into_version_platform(version.clone(), platform)?;
bff_class
.class
.into_resource(version.clone(), platform, &name_context)?;
let mut resource_writer = BufWriter::new(File::create(resource_path)?);
Resource::dump_bff_resource(

View file

@ -9,7 +9,7 @@ use bff::bigfile::resource::{BffClass, BffResourceHeader, Resource};
use bff::bigfile::versions::Version;
use bff::class::Class;
use bff::names::{Name, NameContext};
use bff::traits::{Artifact, Export, TryIntoVersionPlatform};
use bff::traits::{Artifact, Export, FromResource};
use clap::ValueEnum;
use indicatif::{ProgressBar, ProgressStyle};
use rayon::iter::{ParallelBridge, ParallelIterator};
@ -161,7 +161,7 @@ fn export_bff_resource(
version: version.clone(),
};
let class: Class = resource.try_into_version_platform(version.clone(), platform)?;
let class: Class = Class::from_resource(resource, version.clone(), platform, name_context)?;
let bff_class = BffClass { header, class };
let class_name = resource.class_name.with_context(name_context).to_string();

View file

@ -8,7 +8,7 @@ use bff::bigfile::resource::{BffClass, BffResource, BffResourceHeader};
use bff::bigfile::versions::Version;
use bff::class::Class;
use bff::names::{NameContext, NameType};
use bff::traits::{Artifact, Export, TryIntoVersionPlatform};
use bff::traits::{Artifact, Export, FromResource};
use crate::error::BffCliResult;
use crate::extract::read_in_names;
@ -57,8 +57,12 @@ pub fn extract_resource(
version: version.clone(),
};
let class: Class =
(&bff_resource.resource).try_into_version_platform(version.clone(), platform)?;
let class: Class = Class::from_resource(
&bff_resource.resource,
version.clone(),
platform,
&name_context,
)?;
let bff_class = BffClass { header, class };
std::fs::create_dir(directory)?;

View file

@ -22,7 +22,7 @@ pub fn info(
if let Some(out_dependencies) = out_reference_graph {
let f = File::create(out_dependencies)?;
let mut writer = BufWriter::new(f);
let graph = bigfile.reference_graph();
let graph = bigfile.reference_graph(&name_context);
let dot = Dot::with_config(&graph, &[Config::EdgeNoLabel]);
name_context.scope(|| write!(&mut writer, "{:?}", dot))?;
}

View file

@ -56,7 +56,7 @@ pub fn names(
if *use_reference_graph {
let progress_bar = ProgressBar::new_spinner();
progress_bar.set_message("Generating reference graph");
let graph = bigfile.reference_graph();
let graph = bigfile.reference_graph(&name_context);
progress_bar.set_message("Finding roots");
let mut discovered = graph.visit_map();