File: iterators.rs

package info (click to toggle)
rust-pangocairo 0.20.7-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 144 kB
  • sloc: makefile: 63
file content (33 lines) | stat: -rw-r--r-- 1,100 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Take a look at the license at the top of the repository in the LICENSE file.

use glib::GStr;
use pango::prelude::*;

const TEXT: &GStr = glib::gstr!("AAAA BBBB CCCC DDDD EEEE FFFF gggg hhhh iiii jjjj kkkk llll");

#[test]
fn glyph_item_iter() {
    let item = {
        let map = pangocairo::FontMap::default();
        let pc = map.create_context();
        let layout = pango::Layout::new(&pc);
        layout.set_width(256 * pango::SCALE);
        layout.set_height(256 * pango::SCALE);
        layout.set_text(TEXT);
        let mut layout_iter = layout.iter();
        layout_iter.run().unwrap()
    };
    let iter = pango::GlyphItemIter::new_start(&item, TEXT).unwrap();
    assert_eq!(iter.glyph_item(), &item);
    assert_eq!(iter.text(), TEXT);
    for (i, (sg, si, sc, eg, ei, ec)) in iter.into_iter().enumerate() {
        let i = i as i32;
        // ensure these are all single-byte ASCII characters
        assert_eq!(sg, i);
        assert_eq!(si, i);
        assert_eq!(sc, i);
        assert_eq!(eg, i + 1);
        assert_eq!(ei, i + 1);
        assert_eq!(ec, i + 1);
    }
}