read_fonts/model/font/
source.rs1use super::{Blob, TableFunction};
4use alloc::sync::Arc;
5use types::Tag;
6
7#[derive(Clone)]
9pub enum Source {
10 Blob(Blob),
12 TableFunction(TableFunction),
14}
15
16impl<T: Into<Blob>> From<T> for Source {
17 fn from(value: T) -> Self {
18 Self::Blob(value.into())
19 }
20}
21
22impl From<Arc<dyn Fn(Tag) -> Option<Blob> + Send + Sync>> for Source {
23 fn from(value: Arc<dyn Fn(Tag) -> Option<Blob> + Send + Sync>) -> Self {
24 Self::TableFunction(TableFunction::new(value))
25 }
26}
27
28impl From<TableFunction> for Source {
29 fn from(value: TableFunction) -> Self {
30 Self::TableFunction(value)
31 }
32}