MCPcopy Create free account
hub / github.com/Rust-GPU/rust-gpu / parse_metadata_file

Method parse_metadata_file

crates/spirv-builder/src/lib.rs:467–495  ·  view source on GitHub ↗
(
        &self,
        at: &Path,
    )

Source from the content-addressed store, hash-verified

465 }
466
467 pub(crate) fn parse_metadata_file(
468 &self,
469 at: &Path,
470 ) -> Result<CompileResult, SpirvBuilderError> {
471 let metadata_contents = File::open(at).map_err(SpirvBuilderError::MetadataFileMissing)?;
472 let metadata: CompileResult = serde_json::from_reader(BufReader::new(metadata_contents))
473 .map_err(SpirvBuilderError::MetadataFileMalformed)?;
474 match &metadata.module {
475 ModuleResult::SingleModule(spirv_module) => {
476 assert!(!self.multimodule);
477 let env_var = format!(
478 "{}.spv",
479 at.file_name()
480 .unwrap()
481 .to_str()
482 .unwrap()
483 .strip_suffix(".spv.json")
484 .unwrap()
485 );
486 if self.print_metadata == MetadataPrintout::Full {
487 println!("cargo:rustc-env={}={}", env_var, spirv_module.display());
488 }
489 }
490 ModuleResult::MultiModule(_) => {
491 assert!(self.multimodule);
492 }
493 }
494 Ok(metadata)
495 }
496}
497
498// https://github.com/rust-lang/cargo/blob/1857880b5124580c4aeb4e8bc5f1198f491d61b1/src/cargo/util/paths.rs#L29-L52

Callers 2

buildMethod · 0.80
watchMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected