Skip to main content

gtk/
page_range.rs

1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use crate::ffi;
4use glib::translate::*;
5use std::fmt;
6
7glib::wrapper! {
8    /// See also [`PrintSettings::set_page_ranges()`][crate::PrintSettings::set_page_ranges()].
9    #[doc(alias = "GtkPageRange")]
10    pub struct PageRange(BoxedInline<ffi::GtkPageRange>);
11}
12
13impl PageRange {
14    pub fn new(start: i32, end: i32) -> PageRange {
15        skip_assert_initialized!();
16        unsafe { PageRange::unsafe_from(ffi::GtkPageRange { start, end }) }
17    }
18
19    #[doc(alias = "get_start")]
20    pub fn start(&self) -> i32 {
21        self.inner.start
22    }
23
24    #[doc(alias = "get_end")]
25    pub fn end(&self) -> i32 {
26        self.inner.end
27    }
28}
29
30impl fmt::Debug for PageRange {
31    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
32        f.debug_struct("PageRange")
33            .field("start", &self.start())
34            .field("end", &self.end())
35            .finish()
36    }
37}