Skip to main content

glib/auto/
markup_parse_context.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 crate::{Error, ffi, translate::*};
6
7crate::wrapper! {
8    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
9    pub struct MarkupParseContext(Shared<ffi::GMarkupParseContext>);
10
11    match fn {
12        ref => |ptr| ffi::g_markup_parse_context_ref(ptr),
13        unref => |ptr| ffi::g_markup_parse_context_unref(ptr),
14        type_ => || ffi::g_markup_parse_context_get_type(),
15    }
16}
17
18impl MarkupParseContext {
19    //#[doc(alias = "g_markup_parse_context_new")]
20    //pub fn new(parser: /*Ignored*/&MarkupParser, flags: /*Ignored*/MarkupParseFlags, user_data: /*Unimplemented*/Option<Basic: Pointer>) -> MarkupParseContext {
21    //    unsafe { TODO: call ffi:g_markup_parse_context_new() }
22    //}
23
24    #[doc(alias = "g_markup_parse_context_end_parse")]
25    pub fn end_parse(&self) -> Result<(), crate::Error> {
26        unsafe {
27            let mut error = std::ptr::null_mut();
28            let is_ok = ffi::g_markup_parse_context_end_parse(self.to_glib_none().0, &mut error);
29            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
30            if error.is_null() {
31                Ok(())
32            } else {
33                Err(from_glib_full(error))
34            }
35        }
36    }
37
38    #[cfg(feature = "v2_90")]
39    #[cfg_attr(docsrs, doc(cfg(feature = "v2_90")))]
40    #[doc(alias = "g_markup_parse_context_get_attribute_position")]
41    #[doc(alias = "get_attribute_position")]
42    pub fn attribute_position(&self, attr: u32) -> (usize, usize, usize, usize, usize, usize) {
43        unsafe {
44            let mut start_lines = std::mem::MaybeUninit::uninit();
45            let mut start_chars = std::mem::MaybeUninit::uninit();
46            let mut start_offset = std::mem::MaybeUninit::uninit();
47            let mut end_lines = std::mem::MaybeUninit::uninit();
48            let mut end_chars = std::mem::MaybeUninit::uninit();
49            let mut end_offset = std::mem::MaybeUninit::uninit();
50            ffi::g_markup_parse_context_get_attribute_position(
51                self.to_glib_none().0,
52                attr,
53                start_lines.as_mut_ptr(),
54                start_chars.as_mut_ptr(),
55                start_offset.as_mut_ptr(),
56                end_lines.as_mut_ptr(),
57                end_chars.as_mut_ptr(),
58                end_offset.as_mut_ptr(),
59            );
60            (
61                start_lines.assume_init(),
62                start_chars.assume_init(),
63                start_offset.assume_init(),
64                end_lines.assume_init(),
65                end_chars.assume_init(),
66                end_offset.assume_init(),
67            )
68        }
69    }
70
71    #[doc(alias = "g_markup_parse_context_get_element")]
72    #[doc(alias = "get_element")]
73    pub fn element(&self) -> crate::GString {
74        unsafe {
75            from_glib_none(ffi::g_markup_parse_context_get_element(
76                self.to_glib_none().0,
77            ))
78        }
79    }
80
81    #[doc(alias = "g_markup_parse_context_get_element_stack")]
82    #[doc(alias = "get_element_stack")]
83    pub fn element_stack(&self) -> Vec<crate::GString> {
84        unsafe {
85            FromGlibPtrContainer::from_glib_none(ffi::g_markup_parse_context_get_element_stack(
86                self.to_glib_none().0,
87            ))
88        }
89    }
90
91    #[cfg(feature = "v2_88")]
92    #[cfg_attr(docsrs, doc(cfg(feature = "v2_88")))]
93    #[doc(alias = "g_markup_parse_context_get_offset")]
94    #[doc(alias = "get_offset")]
95    pub fn offset(&self) -> usize {
96        unsafe { ffi::g_markup_parse_context_get_offset(self.to_glib_none().0) }
97    }
98
99    #[doc(alias = "g_markup_parse_context_get_position")]
100    #[doc(alias = "get_position")]
101    pub fn position(&self) -> (i32, i32) {
102        unsafe {
103            let mut line_number = std::mem::MaybeUninit::uninit();
104            let mut char_number = std::mem::MaybeUninit::uninit();
105            ffi::g_markup_parse_context_get_position(
106                self.to_glib_none().0,
107                line_number.as_mut_ptr(),
108                char_number.as_mut_ptr(),
109            );
110            (line_number.assume_init(), char_number.assume_init())
111        }
112    }
113
114    #[cfg(feature = "v2_88")]
115    #[cfg_attr(docsrs, doc(cfg(feature = "v2_88")))]
116    #[doc(alias = "g_markup_parse_context_get_tag_start")]
117    #[doc(alias = "get_tag_start")]
118    pub fn tag_start(&self) -> (usize, usize, usize) {
119        unsafe {
120            let mut line_number = std::mem::MaybeUninit::uninit();
121            let mut char_number = std::mem::MaybeUninit::uninit();
122            let mut offset = std::mem::MaybeUninit::uninit();
123            ffi::g_markup_parse_context_get_tag_start(
124                self.to_glib_none().0,
125                line_number.as_mut_ptr(),
126                char_number.as_mut_ptr(),
127                offset.as_mut_ptr(),
128            );
129            (
130                line_number.assume_init(),
131                char_number.assume_init(),
132                offset.assume_init(),
133            )
134        }
135    }
136
137    #[doc(alias = "g_markup_parse_context_parse")]
138    pub fn parse(&self, text: &str) -> Result<(), crate::Error> {
139        let text_len = text.len() as _;
140        unsafe {
141            let mut error = std::ptr::null_mut();
142            let is_ok = ffi::g_markup_parse_context_parse(
143                self.to_glib_none().0,
144                text.to_glib_none().0,
145                text_len,
146                &mut error,
147            );
148            debug_assert_eq!(is_ok == crate::ffi::GFALSE, !error.is_null());
149            if error.is_null() {
150                Ok(())
151            } else {
152                Err(from_glib_full(error))
153            }
154        }
155    }
156
157    //#[doc(alias = "g_markup_parse_context_pop")]
158    //pub fn pop(&self) -> /*Unimplemented*/Option<Basic: Pointer> {
159    //    unsafe { TODO: call ffi:g_markup_parse_context_pop() }
160    //}
161
162    //#[doc(alias = "g_markup_parse_context_push")]
163    //pub fn push(&self, parser: /*Ignored*/&MarkupParser, user_data: /*Unimplemented*/Option<Basic: Pointer>) {
164    //    unsafe { TODO: call ffi:g_markup_parse_context_push() }
165    //}
166}