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