// GENERATED — DO NOT EDIT
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/struct.Regex.html).
pub type Regex
///|
pub(open) trait IRegex {
fn as_regex(Self) -> Regex
fn jit(Self, UInt) -> Bool raise @glib.Error_ = _
fn ref_(Self) -> Regex = _
fn substitute(Self, String, String, UInt) -> String raise @glib.Error_ = _
}
///|
pub impl IRegex for Regex with fn as_regex(self) {
self
}
///|
#borrow(pattern, error)
extern "c" fn moonbit_vte_regex_new_for_match(
pattern : Bytes,
pattern_length : Int64,
flags : UInt,
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Regex = "moonbit_vte_regex_new_for_match"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/ctor.Regex.new_for_match.html).
pub fn Regex::new_for_match(
pattern : String,
pattern_length : Int64,
flags : UInt,
) -> Regex raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result = moonbit_vte_regex_new_for_match(
@encoding/utf8.encode(pattern),
pattern_length,
flags,
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => result
}
}
///|
#borrow(pattern, error_offset, error)
extern "c" fn moonbit_vte_regex_new_for_match_full(
pattern : Bytes,
pattern_length : Int64,
flags : UInt,
extra_flags : UInt,
error_offset : Ref[UInt64],
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Regex = "moonbit_vte_regex_new_for_match_full"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/ctor.Regex.new_for_match_full.html).
pub fn Regex::new_for_match_full(
pattern : String,
pattern_length : Int64,
flags : UInt,
extra_flags : UInt,
) -> (Regex, UInt64) raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let error_offset = Ref(0UL)
let result = moonbit_vte_regex_new_for_match_full(
@encoding/utf8.encode(pattern),
pattern_length,
flags,
extra_flags,
error_offset,
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
(result, error_offset.val)
}
///|
#borrow(pattern, error)
extern "c" fn moonbit_vte_regex_new_for_search(
pattern : Bytes,
pattern_length : Int64,
flags : UInt,
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Regex = "moonbit_vte_regex_new_for_search"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/ctor.Regex.new_for_search.html).
pub fn Regex::new_for_search(
pattern : String,
pattern_length : Int64,
flags : UInt,
) -> Regex raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result = moonbit_vte_regex_new_for_search(
@encoding/utf8.encode(pattern),
pattern_length,
flags,
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => result
}
}
///|
#borrow(pattern, error_offset, error)
extern "c" fn moonbit_vte_regex_new_for_search_full(
pattern : Bytes,
pattern_length : Int64,
flags : UInt,
extra_flags : UInt,
error_offset : Ref[UInt64],
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Regex = "moonbit_vte_regex_new_for_search_full"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/ctor.Regex.new_for_search_full.html).
pub fn Regex::new_for_search_full(
pattern : String,
pattern_length : Int64,
flags : UInt,
extra_flags : UInt,
) -> (Regex, UInt64) raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let error_offset = Ref(0UL)
let result = moonbit_vte_regex_new_for_search_full(
@encoding/utf8.encode(pattern),
pattern_length,
flags,
extra_flags,
error_offset,
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
(result, error_offset.val)
}
///|
#borrow(self_, error)
extern "c" fn moonbit_vte_regex_jit(
self_ : Regex,
flags : UInt,
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Bool = "moonbit_vte_regex_jit"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/method.Regex.jit.html).
pub fn Regex::jit(self : Regex, flags : UInt) -> Bool raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result = moonbit_vte_regex_jit(self, flags, error_)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
result
}
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/method.Regex.ref.html).
#borrow(self)
pub extern "c" fn Regex::ref_(self : Regex) -> Regex = "moonbit_vte_regex_ref"
///|
#borrow(self_, subject, replacement, error)
extern "c" fn moonbit_vte_regex_substitute(
self_ : Regex,
subject : Bytes,
replacement : Bytes,
flags : UInt,
error : Ref[@glib.Nullable[@glib.Error_]],
) -> Bytes = "moonbit_vte_regex_substitute"
///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/method.Regex.substitute.html).
pub fn Regex::substitute(
self : Regex,
subject : String,
replacement : String,
flags : UInt,
) -> String raise @glib.Error_ {
let error_ : Ref[@glib.Nullable[@glib.Error_]] = Ref(@glib.Nullable::null())
let result_ = moonbit_vte_regex_substitute(
self,
@encoding/utf8.encode(subject),
@encoding/utf8.encode(replacement),
flags,
error_,
)
match error_.val.to_option() {
Some(e) => raise e
None => ()
}
let result = @encoding/utf8.decode_lossy(result_)
result
}
///|
impl IRegex with fn jit(self, flags) -> Bool raise @glib.Error_ {
self.as_regex().jit(flags)
}
///|
impl IRegex with fn ref_(self) -> Regex {
self.as_regex().ref_()
}
///|
impl IRegex with fn substitute(self, subject, replacement, flags) -> String raise @glib.Error_ {
self.as_regex().substitute(subject, replacement, flags)
}