Finish up ThemeRegistry and remove AnyAssetSource

This commit is contained in:
Marshall Bowers 2023-10-24 17:47:41 +02:00
parent 51c66f508b
commit 4ca7ddfc42
9 changed files with 39 additions and 51 deletions

View file

@ -15,15 +15,15 @@ use rust_embed::RustEmbed;
pub struct Assets;
impl AssetSource for Assets {
fn load(&self, path: SharedString) -> Result<Cow<[u8]>> {
Self::get(path.as_ref())
fn load(&self, path: &str) -> Result<Cow<[u8]>> {
Self::get(path)
.map(|f| f.data)
.ok_or_else(|| anyhow!("could not find asset at path \"{}\"", path))
}
fn list(&self, path: SharedString) -> Result<Vec<SharedString>> {
fn list(&self, path: &str) -> Result<Vec<SharedString>> {
Ok(Self::iter()
.filter(|p| p.starts_with(path.as_ref()))
.filter(|p| p.starts_with(path))
.map(SharedString::from)
.collect())
}

View file

@ -108,7 +108,7 @@ fn load_embedded_fonts(cx: &AppContext) -> gpui2::Result<()> {
let mut embedded_fonts = Vec::new();
for font_path in font_paths {
if font_path.ends_with(".ttf") {
let font_bytes = cx.asset_source().load(font_path)?.to_vec();
let font_bytes = cx.asset_source().load(&font_path)?.to_vec();
embedded_fonts.push(Arc::from(font_bytes));
}
}