gltf_kun 0.0.4

Extensible library for building glTF toolchains.
Documentation
use std::{fs::File, io::Read, path::PathBuf};

use anyhow::Result;
use tracing::debug;

use super::Resolver;

pub struct FileResolver {
    root: PathBuf,
}

impl FileResolver {
    pub fn new<P: Into<PathBuf>>(root: P) -> Self {
        Self { root: root.into() }
    }
}

impl Resolver for FileResolver {
    fn resolve(&self, uri: &str) -> Result<Vec<u8>> {
        let path = self.root.join(uri);
        debug!("Resolving: {}", path.display());

        let mut file = File::open(path)?;
        let mut buf = Vec::new();
        file.read_to_end(&mut buf)?;

        Ok(buf)
    }
}