deferred_loader: remove PhantomData using GATs

This commit is contained in:
2025-04-13 20:06:47 -07:00
parent 65e17da386
commit ca51256a16
4 changed files with 37 additions and 47 deletions
lib
bsp_loader
deferred_loader
rbx_loader

@ -36,17 +36,17 @@ impl From<RobloxAssetIdParseErr> for TextureError{
}
}
pub struct TextureLoader<'a>(std::marker::PhantomData<&'a ()>);
impl TextureLoader<'_>{
pub struct TextureLoader;
impl TextureLoader{
pub fn new()->Self{
Self(std::marker::PhantomData)
Self
}
}
impl<'a> Loader for TextureLoader<'a>{
impl Loader for TextureLoader{
type Error=TextureError;
type Index=&'a str;
type Index<'a>=&'a str;
type Resource=Texture;
fn load(&mut self,index:Self::Index)->Result<Self::Resource,Self::Error>{
fn load<'a>(&mut self,index:Self::Index<'a>)->Result<Self::Resource,Self::Error>{
let RobloxAssetId(asset_id)=index.parse()?;
let file_name=format!("textures/{}.dds",asset_id);
let data=read_entire_file(file_name)?;
@ -138,17 +138,17 @@ impl MeshIndex<'_>{
}
}
pub struct MeshLoader<'a>(std::marker::PhantomData<&'a ()>);
impl MeshLoader<'_>{
pub struct MeshLoader;
impl MeshLoader{
pub fn new()->Self{
Self(std::marker::PhantomData)
Self
}
}
impl<'a> Loader for MeshLoader<'a>{
impl Loader for MeshLoader{
type Error=MeshError;
type Index=MeshIndex<'a>;
type Index<'a>=MeshIndex<'a>;
type Resource=Mesh;
fn load(&mut self,index:Self::Index)->Result<Self::Resource,Self::Error>{
fn load<'a>(&mut self,index:Self::Index<'a>)->Result<Self::Resource,Self::Error>{
let mesh=match index.mesh_type{
MeshType::FileMesh=>{
let RobloxAssetId(asset_id)=index.content.parse()?;