pango/auto/
attr_iterator.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use glib::translate::*;
6use pango_sys;
7use std::mem;
8use AttrType;
9use Attribute;
10
11glib_wrapper! {
12    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
13    pub struct AttrIterator(Boxed<pango_sys::PangoAttrIterator>);
14
15    match fn {
16        copy => |ptr| pango_sys::pango_attr_iterator_copy(mut_override(ptr)),
17        free => |ptr| pango_sys::pango_attr_iterator_destroy(ptr),
18    }
19}
20
21impl AttrIterator {
22    pub fn get(&mut self, type_: AttrType) -> Option<Attribute> {
23        unsafe {
24            from_glib_none(pango_sys::pango_attr_iterator_get(
25                self.to_glib_none_mut().0,
26                type_.to_glib(),
27            ))
28        }
29    }
30
31    pub fn get_attrs(&mut self) -> Vec<Attribute> {
32        unsafe {
33            FromGlibPtrContainer::from_glib_full(pango_sys::pango_attr_iterator_get_attrs(
34                self.to_glib_none_mut().0,
35            ))
36        }
37    }
38
39    pub fn next(&mut self) -> bool {
40        unsafe {
41            from_glib(pango_sys::pango_attr_iterator_next(
42                self.to_glib_none_mut().0,
43            ))
44        }
45    }
46
47    pub fn range(&mut self) -> (i32, i32) {
48        unsafe {
49            let mut start = mem::uninitialized();
50            let mut end = mem::uninitialized();
51            pango_sys::pango_attr_iterator_range(self.to_glib_none_mut().0, &mut start, &mut end);
52            (start, end)
53        }
54    }
55}