1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
pub mod writer; pub mod parser; pub mod tegra_swizzle; use std::io::{prelude::*, self}; use std::path::Path; pub use ddsfile; pub trait DdsExt { fn from_nutexb(data: &[u8]) -> ddsfile::Dds; fn write_nutexb<W: Write>(&self, writer: &mut W, name: &str) -> io::Result<()> ; fn read_nutexb<R: Read>(reader: &mut R) -> ddsfile::Dds { let mut buffer = vec![]; reader.read_to_end(&mut buffer).unwrap(); Self::from_nutexb(&buffer) } fn write_nutexb_to_file<P: AsRef<Path>>(&self, path: P, name: Option<&str>) -> io::Result<()> { let path = path.as_ref(); let name = name.unwrap_or_else(||{ path.file_stem().unwrap().to_str().unwrap() }); self.write_nutexb( &mut std::fs::File::create(path)?, name ) } } impl DdsExt for ddsfile::Dds { fn from_nutexb(data: &[u8]) -> ddsfile::Dds { todo!() } fn write_nutexb<W: Write>(&self, writer: &mut W, name: &str) -> io::Result<()> { writer::write_nutexb(name, self, writer) } }