pub struct FontManager { /* private fields */ }Expand description
Manages the lifecycle of temporarily loaded system fonts.
Fonts are keyed by their canonical (absolute) path, ensuring each physical font file is loaded at most once. When the manager is dropped, all loaded fonts are automatically unloaded.
§Examples
use flash_font_injector::FontManager;
use camino::Utf8Path;
let mut manager = FontManager::default();
manager.load(Utf8Path::new("path/to/font.ttf")).unwrap();
assert!(manager.len() > 0);
manager.unload(Utf8Path::new("path/to/font.ttf")).unwrap();Implementations§
Source§impl FontManager
impl FontManager
Sourcepub fn new(config: FontManagerConfig) -> Self
pub fn new(config: FontManagerConfig) -> Self
Creates an empty FontManager.
Sourcepub fn load(&mut self, path: &Utf8Path) -> FontResult<()>
pub fn load(&mut self, path: &Utf8Path) -> FontResult<()>
Loads a font from the given file path into the system.
The provided path is used directly without canonicalization.
If the same font file is already loaded, this is a no-op that returns
Ok(()).
Expect full path
Sourcepub fn load_all(&mut self, paths: Vec<Utf8PathBuf>) -> FontResult<()>
pub fn load_all(&mut self, paths: Vec<Utf8PathBuf>) -> FontResult<()>
Loads multiple fonts in parallel.
Returns an error if any of the fonts failed to load, though some fonts might still have been loaded successfully.
Sourcepub fn unload(&mut self, path: &Utf8Path) -> FontResult<()>
pub fn unload(&mut self, path: &Utf8Path) -> FontResult<()>
Unloads a previously loaded font and removes it from the manager.
The provided path is used directly without canonicalization. If the font
is not currently loaded, this is a no-op that returns Ok(()).
Sourcepub fn unload_all(&mut self) -> FontResult<()>
pub fn unload_all(&mut self) -> FontResult<()>
Unloads all currently loaded fonts in parallel.
The manager’s internal tracking is cleared even if some unloads fail. Returns the first encountered error if unloading any font fails.
Sourcepub fn loaded_fonts(&self) -> impl Iterator<Item = &Utf8Path>
pub fn loaded_fonts(&self) -> impl Iterator<Item = &Utf8Path>
Returns an iterator over the canonical paths of all loaded fonts.
Trait Implementations§
Source§impl Debug for FontManager
impl Debug for FontManager
Source§impl Default for FontManager
impl Default for FontManager
Source§fn default() -> FontManager
fn default() -> FontManager
Auto Trait Implementations§
impl Freeze for FontManager
impl RefUnwindSafe for FontManager
impl Send for FontManager
impl Sync for FontManager
impl Unpin for FontManager
impl UnsafeUnpin for FontManager
impl UnwindSafe for FontManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more