1use crate::ffi;
6use glib::translate::*;
7
8glib::wrapper! {
9 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
10 pub struct Bitset(Shared<ffi::GtkBitset>);
11
12 match fn {
13 ref => |ptr| ffi::gtk_bitset_ref(ptr),
14 unref => |ptr| ffi::gtk_bitset_unref(ptr),
15 type_ => || ffi::gtk_bitset_get_type(),
16 }
17}
18
19impl Bitset {
20 #[doc(alias = "gtk_bitset_new_empty")]
21 pub fn new_empty() -> Bitset {
22 assert_initialized_main_thread!();
23 unsafe { from_glib_full(ffi::gtk_bitset_new_empty()) }
24 }
25
26 #[doc(alias = "gtk_bitset_new_range")]
27 pub fn new_range(start: u32, n_items: u32) -> Bitset {
28 assert_initialized_main_thread!();
29 unsafe { from_glib_full(ffi::gtk_bitset_new_range(start, n_items)) }
30 }
31
32 #[doc(alias = "gtk_bitset_add")]
33 pub fn add(&self, value: u32) -> bool {
34 unsafe { from_glib(ffi::gtk_bitset_add(self.to_glib_none().0, value)) }
35 }
36
37 #[doc(alias = "gtk_bitset_add_range")]
38 pub fn add_range(&self, start: u32, n_items: u32) {
39 unsafe {
40 ffi::gtk_bitset_add_range(self.to_glib_none().0, start, n_items);
41 }
42 }
43
44 #[doc(alias = "gtk_bitset_add_range_closed")]
45 pub fn add_range_closed(&self, first: u32, last: u32) {
46 unsafe {
47 ffi::gtk_bitset_add_range_closed(self.to_glib_none().0, first, last);
48 }
49 }
50
51 #[doc(alias = "gtk_bitset_add_rectangle")]
52 pub fn add_rectangle(&self, start: u32, width: u32, height: u32, stride: u32) {
53 unsafe {
54 ffi::gtk_bitset_add_rectangle(self.to_glib_none().0, start, width, height, stride);
55 }
56 }
57
58 #[doc(alias = "gtk_bitset_contains")]
59 pub fn contains(&self, value: u32) -> bool {
60 unsafe { from_glib(ffi::gtk_bitset_contains(self.to_glib_none().0, value)) }
61 }
62
63 #[doc(alias = "gtk_bitset_copy")]
64 #[must_use]
65 pub fn copy(&self) -> Bitset {
66 unsafe { from_glib_full(ffi::gtk_bitset_copy(self.to_glib_none().0)) }
67 }
68
69 #[doc(alias = "gtk_bitset_difference")]
70 pub fn difference(&self, other: &Bitset) {
71 unsafe {
72 ffi::gtk_bitset_difference(self.to_glib_none().0, other.to_glib_none().0);
73 }
74 }
75
76 #[doc(alias = "gtk_bitset_equals")]
77 pub fn equals(&self, other: &Bitset) -> bool {
78 unsafe {
79 from_glib(ffi::gtk_bitset_equals(
80 self.to_glib_none().0,
81 other.to_glib_none().0,
82 ))
83 }
84 }
85
86 #[doc(alias = "gtk_bitset_get_maximum")]
87 #[doc(alias = "get_maximum")]
88 pub fn maximum(&self) -> u32 {
89 unsafe { ffi::gtk_bitset_get_maximum(self.to_glib_none().0) }
90 }
91
92 #[doc(alias = "gtk_bitset_get_minimum")]
93 #[doc(alias = "get_minimum")]
94 pub fn minimum(&self) -> u32 {
95 unsafe { ffi::gtk_bitset_get_minimum(self.to_glib_none().0) }
96 }
97
98 #[doc(alias = "gtk_bitset_get_nth")]
99 #[doc(alias = "get_nth")]
100 pub fn nth(&self, nth: u32) -> u32 {
101 unsafe { ffi::gtk_bitset_get_nth(self.to_glib_none().0, nth) }
102 }
103
104 #[doc(alias = "gtk_bitset_get_size")]
105 #[doc(alias = "get_size")]
106 pub fn size(&self) -> u64 {
107 unsafe { ffi::gtk_bitset_get_size(self.to_glib_none().0) }
108 }
109
110 #[doc(alias = "gtk_bitset_get_size_in_range")]
111 #[doc(alias = "get_size_in_range")]
112 pub fn size_in_range(&self, first: u32, last: u32) -> u64 {
113 unsafe { ffi::gtk_bitset_get_size_in_range(self.to_glib_none().0, first, last) }
114 }
115
116 #[doc(alias = "gtk_bitset_intersect")]
117 pub fn intersect(&self, other: &Bitset) {
118 unsafe {
119 ffi::gtk_bitset_intersect(self.to_glib_none().0, other.to_glib_none().0);
120 }
121 }
122
123 #[doc(alias = "gtk_bitset_is_empty")]
124 pub fn is_empty(&self) -> bool {
125 unsafe { from_glib(ffi::gtk_bitset_is_empty(self.to_glib_none().0)) }
126 }
127
128 #[doc(alias = "gtk_bitset_remove")]
129 pub fn remove(&self, value: u32) -> bool {
130 unsafe { from_glib(ffi::gtk_bitset_remove(self.to_glib_none().0, value)) }
131 }
132
133 #[doc(alias = "gtk_bitset_remove_all")]
134 pub fn remove_all(&self) {
135 unsafe {
136 ffi::gtk_bitset_remove_all(self.to_glib_none().0);
137 }
138 }
139
140 #[doc(alias = "gtk_bitset_remove_range")]
141 pub fn remove_range(&self, start: u32, n_items: u32) {
142 unsafe {
143 ffi::gtk_bitset_remove_range(self.to_glib_none().0, start, n_items);
144 }
145 }
146
147 #[doc(alias = "gtk_bitset_remove_range_closed")]
148 pub fn remove_range_closed(&self, first: u32, last: u32) {
149 unsafe {
150 ffi::gtk_bitset_remove_range_closed(self.to_glib_none().0, first, last);
151 }
152 }
153
154 #[doc(alias = "gtk_bitset_remove_rectangle")]
155 pub fn remove_rectangle(&self, start: u32, width: u32, height: u32, stride: u32) {
156 unsafe {
157 ffi::gtk_bitset_remove_rectangle(self.to_glib_none().0, start, width, height, stride);
158 }
159 }
160
161 #[doc(alias = "gtk_bitset_shift_left")]
162 pub fn shift_left(&self, amount: u32) {
163 unsafe {
164 ffi::gtk_bitset_shift_left(self.to_glib_none().0, amount);
165 }
166 }
167
168 #[doc(alias = "gtk_bitset_shift_right")]
169 pub fn shift_right(&self, amount: u32) {
170 unsafe {
171 ffi::gtk_bitset_shift_right(self.to_glib_none().0, amount);
172 }
173 }
174
175 #[doc(alias = "gtk_bitset_splice")]
176 pub fn splice(&self, position: u32, removed: u32, added: u32) {
177 unsafe {
178 ffi::gtk_bitset_splice(self.to_glib_none().0, position, removed, added);
179 }
180 }
181
182 #[doc(alias = "gtk_bitset_subtract")]
183 pub fn subtract(&self, other: &Bitset) {
184 unsafe {
185 ffi::gtk_bitset_subtract(self.to_glib_none().0, other.to_glib_none().0);
186 }
187 }
188
189 #[doc(alias = "gtk_bitset_union")]
190 pub fn union(&self, other: &Bitset) {
191 unsafe {
192 ffi::gtk_bitset_union(self.to_glib_none().0, other.to_glib_none().0);
193 }
194 }
195}