gtk4/
page_range.rs

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