1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::GlyphId;
use alloc::boxed::Box;
use core::{fmt, iter};

pub struct CodepointIdIter<'a> {
    pub(crate) inner: Box<dyn Iterator<Item = (GlyphId, char)> + 'a>,
}

impl<'a> Iterator for CodepointIdIter<'a> {
    type Item = (GlyphId, char);

    #[inline]
    fn next(&mut self) -> Option<Self::Item> {
        self.inner.next()
    }
}

impl iter::FusedIterator for CodepointIdIter<'_> {}

impl fmt::Debug for CodepointIdIter<'_> {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "CodepointIdIter")
    }
}