27 lines · 709 B · Rust
RawDownload
use std::borrow::Cow; use anyhow::{Context as _, Result};use gpui::{AssetSource, SharedString};use rust_embed::RustEmbed; #[derive(RustEmbed)]#[folder = "../../assets"]#[include = "fonts/**/*"]#[exclude = "*.DS_Store"]pub struct Assets; impl AssetSource for Assets {    fn load(&self, path: &str) -> Result<Option<Cow<'static, [u8]>>> {        Self::get(path)            .map(|f| f.data)            .with_context(|| format!("could not find asset at path {path:?}"))            .map(Some)    }     fn list(&self, path: &str) -> Result<Vec<SharedString>> {        Ok(Self::iter()            .filter(|p| p.starts_with(path))            .map(SharedString::from)            .collect())    }}