Skip to main content

vte4/auto/
regex.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::translate::*;
8
9glib::wrapper! {
10    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
11    pub struct Regex(Shared<ffi::VteRegex>);
12
13    match fn {
14        ref => |ptr| ffi::vte_regex_ref(ptr),
15        unref => |ptr| ffi::vte_regex_unref(ptr),
16        type_ => || ffi::vte_regex_get_type(),
17    }
18}
19
20impl Regex {
21    #[doc(alias = "vte_regex_new_for_match")]
22    #[doc(alias = "new_for_match")]
23    pub fn for_match(pattern: &str, flags: u32) -> Result<Regex, glib::Error> {
24        assert_initialized_main_thread!();
25        let pattern_length = pattern.len() as _;
26        unsafe {
27            let mut error = std::ptr::null_mut();
28            let ret = ffi::vte_regex_new_for_match(
29                pattern.to_glib_none().0,
30                pattern_length,
31                flags,
32                &mut error,
33            );
34            if error.is_null() {
35                Ok(from_glib_full(ret))
36            } else {
37                Err(from_glib_full(error))
38            }
39        }
40    }
41
42    #[cfg(feature = "v0_76")]
43    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
44    #[doc(alias = "vte_regex_new_for_match_full")]
45    #[doc(alias = "new_for_match_full")]
46    pub fn for_match_full(
47        pattern: &str,
48        flags: u32,
49        extra_flags: u32,
50    ) -> Result<(Regex, usize), glib::Error> {
51        assert_initialized_main_thread!();
52        let pattern_length = pattern.len() as _;
53        unsafe {
54            let mut error_offset = std::mem::MaybeUninit::uninit();
55            let mut error = std::ptr::null_mut();
56            let ret = ffi::vte_regex_new_for_match_full(
57                pattern.to_glib_none().0,
58                pattern_length,
59                flags,
60                extra_flags,
61                error_offset.as_mut_ptr(),
62                &mut error,
63            );
64            if error.is_null() {
65                Ok((from_glib_full(ret), error_offset.assume_init()))
66            } else {
67                Err(from_glib_full(error))
68            }
69        }
70    }
71
72    #[doc(alias = "vte_regex_new_for_search")]
73    #[doc(alias = "new_for_search")]
74    pub fn for_search(pattern: &str, flags: u32) -> Result<Regex, glib::Error> {
75        assert_initialized_main_thread!();
76        let pattern_length = pattern.len() as _;
77        unsafe {
78            let mut error = std::ptr::null_mut();
79            let ret = ffi::vte_regex_new_for_search(
80                pattern.to_glib_none().0,
81                pattern_length,
82                flags,
83                &mut error,
84            );
85            if error.is_null() {
86                Ok(from_glib_full(ret))
87            } else {
88                Err(from_glib_full(error))
89            }
90        }
91    }
92
93    #[cfg(feature = "v0_76")]
94    #[cfg_attr(docsrs, doc(cfg(feature = "v0_76")))]
95    #[doc(alias = "vte_regex_new_for_search_full")]
96    #[doc(alias = "new_for_search_full")]
97    pub fn for_search_full(
98        pattern: &str,
99        flags: u32,
100        extra_flags: u32,
101    ) -> Result<(Regex, usize), glib::Error> {
102        assert_initialized_main_thread!();
103        let pattern_length = pattern.len() as _;
104        unsafe {
105            let mut error_offset = std::mem::MaybeUninit::uninit();
106            let mut error = std::ptr::null_mut();
107            let ret = ffi::vte_regex_new_for_search_full(
108                pattern.to_glib_none().0,
109                pattern_length,
110                flags,
111                extra_flags,
112                error_offset.as_mut_ptr(),
113                &mut error,
114            );
115            if error.is_null() {
116                Ok((from_glib_full(ret), error_offset.assume_init()))
117            } else {
118                Err(from_glib_full(error))
119            }
120        }
121    }
122
123    #[doc(alias = "vte_regex_jit")]
124    pub fn jit(&self, flags: u32) -> Result<(), glib::Error> {
125        unsafe {
126            let mut error = std::ptr::null_mut();
127            let is_ok = ffi::vte_regex_jit(self.to_glib_none().0, flags, &mut error);
128            debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
129            if error.is_null() {
130                Ok(())
131            } else {
132                Err(from_glib_full(error))
133            }
134        }
135    }
136
137    #[doc(alias = "vte_regex_substitute")]
138    pub fn substitute(
139        &self,
140        subject: &str,
141        replacement: &str,
142        flags: u32,
143    ) -> Result<glib::GString, glib::Error> {
144        unsafe {
145            let mut error = std::ptr::null_mut();
146            let ret = ffi::vte_regex_substitute(
147                self.to_glib_none().0,
148                subject.to_glib_none().0,
149                replacement.to_glib_none().0,
150                flags,
151                &mut error,
152            );
153            if error.is_null() {
154                Ok(from_glib_full(ret))
155            } else {
156                Err(from_glib_full(error))
157            }
158        }
159    }
160}