diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-06-22 15:32:19 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-06-22 15:32:19 +0200 |
| commit | 099ce71aba54a40455b7ce35768c8fe003f7b16a (patch) | |
| tree | d0a475e91967882d4608dea59ceb41c9a6232e07 /src/layout/text.rs | |
| parent | c7ee2b393a369325b3578557e045f2ff94ceab8f (diff) | |
Unify font classes + By-value-contexts ⚖
Diffstat (limited to 'src/layout/text.rs')
| -rw-r--r-- | src/layout/text.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/layout/text.rs b/src/layout/text.rs index 0a0241a0..75a59254 100644 --- a/src/layout/text.rs +++ b/src/layout/text.rs @@ -7,16 +7,16 @@ use super::*; /// The context for text layouting. -#[derive(Debug, Clone)] +#[derive(Debug, Copy, Clone)] pub struct TextContext<'a, 'p> { /// Loads fonts matching queries. pub loader: &'a FontLoader<'p>, /// Base style to set text with. - pub style: TextStyle, + pub style: &'a TextStyle, } /// Layout one piece of text without any breaks as one continous box. -pub fn layout(text: &str, ctx: &TextContext) -> LayoutResult<BoxLayout> { +pub fn layout(text: &str, ctx: TextContext) -> LayoutResult<BoxLayout> { let mut actions = Vec::new(); let mut active_font = std::usize::MAX; let mut buffer = String::new(); @@ -26,9 +26,8 @@ pub fn layout(text: &str, ctx: &TextContext) -> LayoutResult<BoxLayout> { for character in text.chars() { // Retrieve the best font for this character. let (index, font) = ctx.loader.get(FontQuery { - families: ctx.style.font_families.clone(), - italic: ctx.style.italic, - bold: ctx.style.bold, + classes: ctx.style.classes.clone(), + fallback: ctx.style.fallback.clone(), character, }).ok_or_else(|| LayoutError::NoSuitableFont(character))?; |
