#[diplomat::bridge]
pub mod ffi {
use crate::properties_sets::ffi::ICU4XCodePointSetData;
use alloc::boxed::Box;
use core::mem;
use icu_collections::codepointinvlist::CodePointInversionListBuilder;
use icu_properties::sets::CodePointSetData;
#[diplomat::opaque]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder,
Struct
)]
pub struct ICU4XCodePointSetBuilder(pub CodePointInversionListBuilder);
impl ICU4XCodePointSetBuilder {
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::new,
FnInStruct
)]
#[diplomat::attr(supports = constructors, constructor)]
pub fn create() -> Box<Self> {
Box::new(Self(CodePointInversionListBuilder::new()))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::build,
FnInStruct
)]
#[diplomat::rust_link(
icu::properties::sets::CodePointSetData::from_code_point_inversion_list,
FnInStruct,
hidden
)]
pub fn build(&mut self) -> Box<ICU4XCodePointSetData> {
let inner = mem::take(&mut self.0);
let built = inner.build();
let set = CodePointSetData::from_code_point_inversion_list(built);
Box::new(ICU4XCodePointSetData(set))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement,
FnInStruct
)]
pub fn complement(&mut self) {
self.0.complement()
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::is_empty,
FnInStruct
)]
#[diplomat::attr(supports = accessors, getter)]
pub fn is_empty(&self) -> bool {
self.0.is_empty()
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_char,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add32,
FnInStruct,
hidden
)]
pub fn add_char(&mut self, ch: DiplomatChar) {
self.0.add32(ch)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_u32,
FnInStruct
)]
#[diplomat::attr(*, disable)]
pub fn add_u32(&mut self, ch: u32) {
self.add_char(ch)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_range,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_range32,
FnInStruct,
hidden
)]
pub fn add_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
self.0.add_range32(&(start..=end))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_range_u32,
FnInStruct
)]
#[diplomat::attr(*, disable)]
pub fn add_inclusive_range_u32(&mut self, start: u32, end: u32) {
self.add_inclusive_range(start, end)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::add_set,
FnInStruct
)]
#[diplomat::rust_link(
icu::properties::sets::CodePointSetData::as_code_point_inversion_list,
FnInStruct,
hidden
)]
#[diplomat::rust_link(
icu::properties::sets::CodePointSetData::to_code_point_inversion_list,
FnInStruct,
hidden
)]
pub fn add_set(&mut self, data: &ICU4XCodePointSetData) {
let list = data.0.to_code_point_inversion_list();
self.0.add_set(&list);
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_char,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::remove32,
FnInStruct,
hidden
)]
pub fn remove_char(&mut self, ch: DiplomatChar) {
self.0.remove32(ch)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_range,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_range32,
FnInStruct,
hidden
)]
pub fn remove_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
self.0.remove_range32(&(start..=end))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::remove_set,
FnInStruct
)]
pub fn remove_set(&mut self, data: &ICU4XCodePointSetData) {
let list = data.0.to_code_point_inversion_list();
self.0.remove_set(&list);
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_char,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::retain32,
FnInStruct,
hidden
)]
pub fn retain_char(&mut self, ch: DiplomatChar) {
self.0.retain32(ch)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_range,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_range32,
FnInStruct,
hidden
)]
pub fn retain_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
self.0.retain_range32(&(start..=end))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::retain_set,
FnInStruct
)]
pub fn retain_set(&mut self, data: &ICU4XCodePointSetData) {
let list = data.0.to_code_point_inversion_list();
self.0.retain_set(&list);
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_char,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement32,
FnInStruct,
hidden
)]
pub fn complement_char(&mut self, ch: DiplomatChar) {
self.0.complement32(ch)
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_range,
FnInStruct
)]
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_range32,
FnInStruct,
hidden
)]
pub fn complement_inclusive_range(&mut self, start: DiplomatChar, end: DiplomatChar) {
self.0.complement_range32(&(start..=end))
}
#[diplomat::rust_link(
icu::collections::codepointinvlist::CodePointInversionListBuilder::complement_set,
FnInStruct
)]
pub fn complement_set(&mut self, data: &ICU4XCodePointSetData) {
let list = data.0.to_code_point_inversion_list();
self.0.complement_set(&list);
}
}
}