1use crate::{ffi, prelude::*, translate::*};
6
7#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
8#[non_exhaustive]
9#[doc(alias = "GChecksumType")]
10pub enum ChecksumType {
11 #[doc(alias = "G_CHECKSUM_MD5")]
12 Md5,
13 #[doc(alias = "G_CHECKSUM_SHA1")]
14 Sha1,
15 #[doc(alias = "G_CHECKSUM_SHA256")]
16 Sha256,
17 #[doc(alias = "G_CHECKSUM_SHA512")]
18 Sha512,
19 #[doc(alias = "G_CHECKSUM_SHA384")]
20 Sha384,
21 #[doc(hidden)]
22 __Unknown(i32),
23}
24
25#[doc(hidden)]
26impl IntoGlib for ChecksumType {
27 type GlibType = ffi::GChecksumType;
28
29 #[inline]
30 fn into_glib(self) -> ffi::GChecksumType {
31 match self {
32 Self::Md5 => ffi::G_CHECKSUM_MD5,
33 Self::Sha1 => ffi::G_CHECKSUM_SHA1,
34 Self::Sha256 => ffi::G_CHECKSUM_SHA256,
35 Self::Sha512 => ffi::G_CHECKSUM_SHA512,
36 Self::Sha384 => ffi::G_CHECKSUM_SHA384,
37 Self::__Unknown(value) => value,
38 }
39 }
40}
41
42#[doc(hidden)]
43impl FromGlib<ffi::GChecksumType> for ChecksumType {
44 #[inline]
45 unsafe fn from_glib(value: ffi::GChecksumType) -> Self {
46 match value {
47 ffi::G_CHECKSUM_MD5 => Self::Md5,
48 ffi::G_CHECKSUM_SHA1 => Self::Sha1,
49 ffi::G_CHECKSUM_SHA256 => Self::Sha256,
50 ffi::G_CHECKSUM_SHA512 => Self::Sha512,
51 ffi::G_CHECKSUM_SHA384 => Self::Sha384,
52 value => Self::__Unknown(value),
53 }
54 }
55}
56
57#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
58#[non_exhaustive]
59#[doc(alias = "GConvertError")]
60pub enum ConvertError {
61 #[doc(alias = "G_CONVERT_ERROR_NO_CONVERSION")]
62 NoConversion,
63 #[doc(alias = "G_CONVERT_ERROR_ILLEGAL_SEQUENCE")]
64 IllegalSequence,
65 #[doc(alias = "G_CONVERT_ERROR_FAILED")]
66 Failed,
67 #[doc(alias = "G_CONVERT_ERROR_PARTIAL_INPUT")]
68 PartialInput,
69 #[doc(alias = "G_CONVERT_ERROR_BAD_URI")]
70 BadUri,
71 #[doc(alias = "G_CONVERT_ERROR_NOT_ABSOLUTE_PATH")]
72 NotAbsolutePath,
73 #[doc(alias = "G_CONVERT_ERROR_NO_MEMORY")]
74 NoMemory,
75 #[doc(alias = "G_CONVERT_ERROR_EMBEDDED_NUL")]
76 EmbeddedNul,
77 #[doc(hidden)]
78 __Unknown(i32),
79}
80
81#[doc(hidden)]
82impl IntoGlib for ConvertError {
83 type GlibType = ffi::GConvertError;
84
85 #[inline]
86 fn into_glib(self) -> ffi::GConvertError {
87 match self {
88 Self::NoConversion => ffi::G_CONVERT_ERROR_NO_CONVERSION,
89 Self::IllegalSequence => ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
90 Self::Failed => ffi::G_CONVERT_ERROR_FAILED,
91 Self::PartialInput => ffi::G_CONVERT_ERROR_PARTIAL_INPUT,
92 Self::BadUri => ffi::G_CONVERT_ERROR_BAD_URI,
93 Self::NotAbsolutePath => ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
94 Self::NoMemory => ffi::G_CONVERT_ERROR_NO_MEMORY,
95 Self::EmbeddedNul => ffi::G_CONVERT_ERROR_EMBEDDED_NUL,
96 Self::__Unknown(value) => value,
97 }
98 }
99}
100
101#[doc(hidden)]
102impl FromGlib<ffi::GConvertError> for ConvertError {
103 #[inline]
104 unsafe fn from_glib(value: ffi::GConvertError) -> Self {
105 match value {
106 ffi::G_CONVERT_ERROR_NO_CONVERSION => Self::NoConversion,
107 ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE => Self::IllegalSequence,
108 ffi::G_CONVERT_ERROR_FAILED => Self::Failed,
109 ffi::G_CONVERT_ERROR_PARTIAL_INPUT => Self::PartialInput,
110 ffi::G_CONVERT_ERROR_BAD_URI => Self::BadUri,
111 ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH => Self::NotAbsolutePath,
112 ffi::G_CONVERT_ERROR_NO_MEMORY => Self::NoMemory,
113 ffi::G_CONVERT_ERROR_EMBEDDED_NUL => Self::EmbeddedNul,
114 value => Self::__Unknown(value),
115 }
116 }
117}
118
119impl crate::error::ErrorDomain for ConvertError {
120 #[inline]
121 fn domain() -> crate::Quark {
122 unsafe { from_glib(ffi::g_convert_error_quark()) }
123 }
124
125 #[inline]
126 fn code(self) -> i32 {
127 self.into_glib()
128 }
129
130 #[inline]
131 #[allow(clippy::match_single_binding)]
132 fn from(code: i32) -> Option<Self> {
133 match unsafe { from_glib(code) } {
134 Self::__Unknown(_) => Some(Self::Failed),
135 value => Some(value),
136 }
137 }
138}
139
140#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
141#[non_exhaustive]
142#[doc(alias = "GDateMonth")]
143pub enum DateMonth {
144 #[doc(alias = "G_DATE_BAD_MONTH")]
145 BadMonth,
146 #[doc(alias = "G_DATE_JANUARY")]
147 January,
148 #[doc(alias = "G_DATE_FEBRUARY")]
149 February,
150 #[doc(alias = "G_DATE_MARCH")]
151 March,
152 #[doc(alias = "G_DATE_APRIL")]
153 April,
154 #[doc(alias = "G_DATE_MAY")]
155 May,
156 #[doc(alias = "G_DATE_JUNE")]
157 June,
158 #[doc(alias = "G_DATE_JULY")]
159 July,
160 #[doc(alias = "G_DATE_AUGUST")]
161 August,
162 #[doc(alias = "G_DATE_SEPTEMBER")]
163 September,
164 #[doc(alias = "G_DATE_OCTOBER")]
165 October,
166 #[doc(alias = "G_DATE_NOVEMBER")]
167 November,
168 #[doc(alias = "G_DATE_DECEMBER")]
169 December,
170 #[doc(hidden)]
171 __Unknown(i32),
172}
173
174#[doc(hidden)]
175impl IntoGlib for DateMonth {
176 type GlibType = ffi::GDateMonth;
177
178 fn into_glib(self) -> ffi::GDateMonth {
179 match self {
180 Self::BadMonth => ffi::G_DATE_BAD_MONTH,
181 Self::January => ffi::G_DATE_JANUARY,
182 Self::February => ffi::G_DATE_FEBRUARY,
183 Self::March => ffi::G_DATE_MARCH,
184 Self::April => ffi::G_DATE_APRIL,
185 Self::May => ffi::G_DATE_MAY,
186 Self::June => ffi::G_DATE_JUNE,
187 Self::July => ffi::G_DATE_JULY,
188 Self::August => ffi::G_DATE_AUGUST,
189 Self::September => ffi::G_DATE_SEPTEMBER,
190 Self::October => ffi::G_DATE_OCTOBER,
191 Self::November => ffi::G_DATE_NOVEMBER,
192 Self::December => ffi::G_DATE_DECEMBER,
193 Self::__Unknown(value) => value,
194 }
195 }
196}
197
198#[doc(hidden)]
199impl FromGlib<ffi::GDateMonth> for DateMonth {
200 unsafe fn from_glib(value: ffi::GDateMonth) -> Self {
201 match value {
202 ffi::G_DATE_BAD_MONTH => Self::BadMonth,
203 ffi::G_DATE_JANUARY => Self::January,
204 ffi::G_DATE_FEBRUARY => Self::February,
205 ffi::G_DATE_MARCH => Self::March,
206 ffi::G_DATE_APRIL => Self::April,
207 ffi::G_DATE_MAY => Self::May,
208 ffi::G_DATE_JUNE => Self::June,
209 ffi::G_DATE_JULY => Self::July,
210 ffi::G_DATE_AUGUST => Self::August,
211 ffi::G_DATE_SEPTEMBER => Self::September,
212 ffi::G_DATE_OCTOBER => Self::October,
213 ffi::G_DATE_NOVEMBER => Self::November,
214 ffi::G_DATE_DECEMBER => Self::December,
215 value => Self::__Unknown(value),
216 }
217 }
218}
219
220#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
221#[non_exhaustive]
222#[doc(alias = "GDateWeekday")]
223pub enum DateWeekday {
224 #[doc(alias = "G_DATE_BAD_WEEKDAY")]
225 BadWeekday,
226 #[doc(alias = "G_DATE_MONDAY")]
227 Monday,
228 #[doc(alias = "G_DATE_TUESDAY")]
229 Tuesday,
230 #[doc(alias = "G_DATE_WEDNESDAY")]
231 Wednesday,
232 #[doc(alias = "G_DATE_THURSDAY")]
233 Thursday,
234 #[doc(alias = "G_DATE_FRIDAY")]
235 Friday,
236 #[doc(alias = "G_DATE_SATURDAY")]
237 Saturday,
238 #[doc(alias = "G_DATE_SUNDAY")]
239 Sunday,
240 #[doc(hidden)]
241 __Unknown(i32),
242}
243
244#[doc(hidden)]
245impl IntoGlib for DateWeekday {
246 type GlibType = ffi::GDateWeekday;
247
248 #[inline]
249 fn into_glib(self) -> ffi::GDateWeekday {
250 match self {
251 Self::BadWeekday => ffi::G_DATE_BAD_WEEKDAY,
252 Self::Monday => ffi::G_DATE_MONDAY,
253 Self::Tuesday => ffi::G_DATE_TUESDAY,
254 Self::Wednesday => ffi::G_DATE_WEDNESDAY,
255 Self::Thursday => ffi::G_DATE_THURSDAY,
256 Self::Friday => ffi::G_DATE_FRIDAY,
257 Self::Saturday => ffi::G_DATE_SATURDAY,
258 Self::Sunday => ffi::G_DATE_SUNDAY,
259 Self::__Unknown(value) => value,
260 }
261 }
262}
263
264#[doc(hidden)]
265impl FromGlib<ffi::GDateWeekday> for DateWeekday {
266 #[inline]
267 unsafe fn from_glib(value: ffi::GDateWeekday) -> Self {
268 match value {
269 ffi::G_DATE_BAD_WEEKDAY => Self::BadWeekday,
270 ffi::G_DATE_MONDAY => Self::Monday,
271 ffi::G_DATE_TUESDAY => Self::Tuesday,
272 ffi::G_DATE_WEDNESDAY => Self::Wednesday,
273 ffi::G_DATE_THURSDAY => Self::Thursday,
274 ffi::G_DATE_FRIDAY => Self::Friday,
275 ffi::G_DATE_SATURDAY => Self::Saturday,
276 ffi::G_DATE_SUNDAY => Self::Sunday,
277 value => Self::__Unknown(value),
278 }
279 }
280}
281
282#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
283#[non_exhaustive]
284#[doc(alias = "GFileError")]
285pub enum FileError {
286 #[doc(alias = "G_FILE_ERROR_EXIST")]
287 Exist,
288 #[doc(alias = "G_FILE_ERROR_ISDIR")]
289 Isdir,
290 #[doc(alias = "G_FILE_ERROR_ACCES")]
291 Acces,
292 #[doc(alias = "G_FILE_ERROR_NAMETOOLONG")]
293 Nametoolong,
294 #[doc(alias = "G_FILE_ERROR_NOENT")]
295 Noent,
296 #[doc(alias = "G_FILE_ERROR_NOTDIR")]
297 Notdir,
298 #[doc(alias = "G_FILE_ERROR_NXIO")]
299 Nxio,
300 #[doc(alias = "G_FILE_ERROR_NODEV")]
301 Nodev,
302 #[doc(alias = "G_FILE_ERROR_ROFS")]
303 Rofs,
304 #[doc(alias = "G_FILE_ERROR_TXTBSY")]
305 Txtbsy,
306 #[doc(alias = "G_FILE_ERROR_FAULT")]
307 Fault,
308 #[doc(alias = "G_FILE_ERROR_LOOP")]
309 Loop,
310 #[doc(alias = "G_FILE_ERROR_NOSPC")]
311 Nospc,
312 #[doc(alias = "G_FILE_ERROR_NOMEM")]
313 Nomem,
314 #[doc(alias = "G_FILE_ERROR_MFILE")]
315 Mfile,
316 #[doc(alias = "G_FILE_ERROR_NFILE")]
317 Nfile,
318 #[doc(alias = "G_FILE_ERROR_BADF")]
319 Badf,
320 #[doc(alias = "G_FILE_ERROR_INVAL")]
321 Inval,
322 #[doc(alias = "G_FILE_ERROR_PIPE")]
323 Pipe,
324 #[doc(alias = "G_FILE_ERROR_AGAIN")]
325 Again,
326 #[doc(alias = "G_FILE_ERROR_INTR")]
327 Intr,
328 #[doc(alias = "G_FILE_ERROR_IO")]
329 Io,
330 #[doc(alias = "G_FILE_ERROR_PERM")]
331 Perm,
332 #[doc(alias = "G_FILE_ERROR_NOSYS")]
333 Nosys,
334 #[doc(alias = "G_FILE_ERROR_FAILED")]
335 Failed,
336 #[doc(hidden)]
337 __Unknown(i32),
338}
339
340#[doc(hidden)]
341impl IntoGlib for FileError {
342 type GlibType = ffi::GFileError;
343
344 fn into_glib(self) -> ffi::GFileError {
345 match self {
346 Self::Exist => ffi::G_FILE_ERROR_EXIST,
347 Self::Isdir => ffi::G_FILE_ERROR_ISDIR,
348 Self::Acces => ffi::G_FILE_ERROR_ACCES,
349 Self::Nametoolong => ffi::G_FILE_ERROR_NAMETOOLONG,
350 Self::Noent => ffi::G_FILE_ERROR_NOENT,
351 Self::Notdir => ffi::G_FILE_ERROR_NOTDIR,
352 Self::Nxio => ffi::G_FILE_ERROR_NXIO,
353 Self::Nodev => ffi::G_FILE_ERROR_NODEV,
354 Self::Rofs => ffi::G_FILE_ERROR_ROFS,
355 Self::Txtbsy => ffi::G_FILE_ERROR_TXTBSY,
356 Self::Fault => ffi::G_FILE_ERROR_FAULT,
357 Self::Loop => ffi::G_FILE_ERROR_LOOP,
358 Self::Nospc => ffi::G_FILE_ERROR_NOSPC,
359 Self::Nomem => ffi::G_FILE_ERROR_NOMEM,
360 Self::Mfile => ffi::G_FILE_ERROR_MFILE,
361 Self::Nfile => ffi::G_FILE_ERROR_NFILE,
362 Self::Badf => ffi::G_FILE_ERROR_BADF,
363 Self::Inval => ffi::G_FILE_ERROR_INVAL,
364 Self::Pipe => ffi::G_FILE_ERROR_PIPE,
365 Self::Again => ffi::G_FILE_ERROR_AGAIN,
366 Self::Intr => ffi::G_FILE_ERROR_INTR,
367 Self::Io => ffi::G_FILE_ERROR_IO,
368 Self::Perm => ffi::G_FILE_ERROR_PERM,
369 Self::Nosys => ffi::G_FILE_ERROR_NOSYS,
370 Self::Failed => ffi::G_FILE_ERROR_FAILED,
371 Self::__Unknown(value) => value,
372 }
373 }
374}
375
376#[doc(hidden)]
377impl FromGlib<ffi::GFileError> for FileError {
378 unsafe fn from_glib(value: ffi::GFileError) -> Self {
379 match value {
380 ffi::G_FILE_ERROR_EXIST => Self::Exist,
381 ffi::G_FILE_ERROR_ISDIR => Self::Isdir,
382 ffi::G_FILE_ERROR_ACCES => Self::Acces,
383 ffi::G_FILE_ERROR_NAMETOOLONG => Self::Nametoolong,
384 ffi::G_FILE_ERROR_NOENT => Self::Noent,
385 ffi::G_FILE_ERROR_NOTDIR => Self::Notdir,
386 ffi::G_FILE_ERROR_NXIO => Self::Nxio,
387 ffi::G_FILE_ERROR_NODEV => Self::Nodev,
388 ffi::G_FILE_ERROR_ROFS => Self::Rofs,
389 ffi::G_FILE_ERROR_TXTBSY => Self::Txtbsy,
390 ffi::G_FILE_ERROR_FAULT => Self::Fault,
391 ffi::G_FILE_ERROR_LOOP => Self::Loop,
392 ffi::G_FILE_ERROR_NOSPC => Self::Nospc,
393 ffi::G_FILE_ERROR_NOMEM => Self::Nomem,
394 ffi::G_FILE_ERROR_MFILE => Self::Mfile,
395 ffi::G_FILE_ERROR_NFILE => Self::Nfile,
396 ffi::G_FILE_ERROR_BADF => Self::Badf,
397 ffi::G_FILE_ERROR_INVAL => Self::Inval,
398 ffi::G_FILE_ERROR_PIPE => Self::Pipe,
399 ffi::G_FILE_ERROR_AGAIN => Self::Again,
400 ffi::G_FILE_ERROR_INTR => Self::Intr,
401 ffi::G_FILE_ERROR_IO => Self::Io,
402 ffi::G_FILE_ERROR_PERM => Self::Perm,
403 ffi::G_FILE_ERROR_NOSYS => Self::Nosys,
404 ffi::G_FILE_ERROR_FAILED => Self::Failed,
405 value => Self::__Unknown(value),
406 }
407 }
408}
409
410impl crate::error::ErrorDomain for FileError {
411 #[inline]
412 fn domain() -> crate::Quark {
413 unsafe { from_glib(ffi::g_file_error_quark()) }
414 }
415
416 #[inline]
417 fn code(self) -> i32 {
418 self.into_glib()
419 }
420
421 #[inline]
422 #[allow(clippy::match_single_binding)]
423 fn from(code: i32) -> Option<Self> {
424 match unsafe { from_glib(code) } {
425 Self::__Unknown(_) => Some(Self::Failed),
426 value => Some(value),
427 }
428 }
429}
430
431#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
432#[non_exhaustive]
433#[doc(alias = "GKeyFileError")]
434pub enum KeyFileError {
435 #[doc(alias = "G_KEY_FILE_ERROR_UNKNOWN_ENCODING")]
436 UnknownEncoding,
437 #[doc(alias = "G_KEY_FILE_ERROR_PARSE")]
438 Parse,
439 #[doc(alias = "G_KEY_FILE_ERROR_NOT_FOUND")]
440 NotFound,
441 #[doc(alias = "G_KEY_FILE_ERROR_KEY_NOT_FOUND")]
442 KeyNotFound,
443 #[doc(alias = "G_KEY_FILE_ERROR_GROUP_NOT_FOUND")]
444 GroupNotFound,
445 #[doc(alias = "G_KEY_FILE_ERROR_INVALID_VALUE")]
446 InvalidValue,
447 #[doc(hidden)]
448 __Unknown(i32),
449}
450
451#[doc(hidden)]
452impl IntoGlib for KeyFileError {
453 type GlibType = ffi::GKeyFileError;
454
455 #[inline]
456 fn into_glib(self) -> ffi::GKeyFileError {
457 match self {
458 Self::UnknownEncoding => ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
459 Self::Parse => ffi::G_KEY_FILE_ERROR_PARSE,
460 Self::NotFound => ffi::G_KEY_FILE_ERROR_NOT_FOUND,
461 Self::KeyNotFound => ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND,
462 Self::GroupNotFound => ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
463 Self::InvalidValue => ffi::G_KEY_FILE_ERROR_INVALID_VALUE,
464 Self::__Unknown(value) => value,
465 }
466 }
467}
468
469#[doc(hidden)]
470impl FromGlib<ffi::GKeyFileError> for KeyFileError {
471 #[inline]
472 unsafe fn from_glib(value: ffi::GKeyFileError) -> Self {
473 match value {
474 ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING => Self::UnknownEncoding,
475 ffi::G_KEY_FILE_ERROR_PARSE => Self::Parse,
476 ffi::G_KEY_FILE_ERROR_NOT_FOUND => Self::NotFound,
477 ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND => Self::KeyNotFound,
478 ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND => Self::GroupNotFound,
479 ffi::G_KEY_FILE_ERROR_INVALID_VALUE => Self::InvalidValue,
480 value => Self::__Unknown(value),
481 }
482 }
483}
484
485impl crate::error::ErrorDomain for KeyFileError {
486 #[inline]
487 fn domain() -> crate::Quark {
488 unsafe { from_glib(ffi::g_key_file_error_quark()) }
489 }
490
491 #[inline]
492 fn code(self) -> i32 {
493 self.into_glib()
494 }
495
496 #[inline]
497 #[allow(clippy::match_single_binding)]
498 fn from(code: i32) -> Option<Self> {
499 match unsafe { from_glib(code) } {
500 value => Some(value),
501 }
502 }
503}
504
505#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
506#[non_exhaustive]
507#[doc(alias = "GLogWriterOutput")]
508pub enum LogWriterOutput {
509 #[doc(alias = "G_LOG_WRITER_HANDLED")]
510 Handled,
511 #[doc(alias = "G_LOG_WRITER_UNHANDLED")]
512 Unhandled,
513 #[doc(hidden)]
514 __Unknown(i32),
515}
516
517#[doc(hidden)]
518impl IntoGlib for LogWriterOutput {
519 type GlibType = ffi::GLogWriterOutput;
520
521 #[inline]
522 fn into_glib(self) -> ffi::GLogWriterOutput {
523 match self {
524 Self::Handled => ffi::G_LOG_WRITER_HANDLED,
525 Self::Unhandled => ffi::G_LOG_WRITER_UNHANDLED,
526 Self::__Unknown(value) => value,
527 }
528 }
529}
530
531#[doc(hidden)]
532impl FromGlib<ffi::GLogWriterOutput> for LogWriterOutput {
533 #[inline]
534 unsafe fn from_glib(value: ffi::GLogWriterOutput) -> Self {
535 match value {
536 ffi::G_LOG_WRITER_HANDLED => Self::Handled,
537 ffi::G_LOG_WRITER_UNHANDLED => Self::Unhandled,
538 value => Self::__Unknown(value),
539 }
540 }
541}
542
543#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
544#[non_exhaustive]
545#[doc(alias = "GMarkupError")]
546pub enum MarkupError {
547 #[doc(alias = "G_MARKUP_ERROR_BAD_UTF8")]
548 BadUtf8,
549 #[doc(alias = "G_MARKUP_ERROR_EMPTY")]
550 Empty,
551 #[doc(alias = "G_MARKUP_ERROR_PARSE")]
552 Parse,
553 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ELEMENT")]
554 UnknownElement,
555 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE")]
556 UnknownAttribute,
557 #[doc(alias = "G_MARKUP_ERROR_INVALID_CONTENT")]
558 InvalidContent,
559 #[doc(alias = "G_MARKUP_ERROR_MISSING_ATTRIBUTE")]
560 MissingAttribute,
561 #[doc(hidden)]
562 __Unknown(i32),
563}
564
565#[doc(hidden)]
566impl IntoGlib for MarkupError {
567 type GlibType = ffi::GMarkupError;
568
569 #[inline]
570 fn into_glib(self) -> ffi::GMarkupError {
571 match self {
572 Self::BadUtf8 => ffi::G_MARKUP_ERROR_BAD_UTF8,
573 Self::Empty => ffi::G_MARKUP_ERROR_EMPTY,
574 Self::Parse => ffi::G_MARKUP_ERROR_PARSE,
575 Self::UnknownElement => ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT,
576 Self::UnknownAttribute => ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
577 Self::InvalidContent => ffi::G_MARKUP_ERROR_INVALID_CONTENT,
578 Self::MissingAttribute => ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE,
579 Self::__Unknown(value) => value,
580 }
581 }
582}
583
584#[doc(hidden)]
585impl FromGlib<ffi::GMarkupError> for MarkupError {
586 #[inline]
587 unsafe fn from_glib(value: ffi::GMarkupError) -> Self {
588 match value {
589 ffi::G_MARKUP_ERROR_BAD_UTF8 => Self::BadUtf8,
590 ffi::G_MARKUP_ERROR_EMPTY => Self::Empty,
591 ffi::G_MARKUP_ERROR_PARSE => Self::Parse,
592 ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT => Self::UnknownElement,
593 ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE => Self::UnknownAttribute,
594 ffi::G_MARKUP_ERROR_INVALID_CONTENT => Self::InvalidContent,
595 ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE => Self::MissingAttribute,
596 value => Self::__Unknown(value),
597 }
598 }
599}
600
601impl crate::error::ErrorDomain for MarkupError {
602 #[inline]
603 fn domain() -> crate::Quark {
604 unsafe { from_glib(ffi::g_markup_error_quark()) }
605 }
606
607 #[inline]
608 fn code(self) -> i32 {
609 self.into_glib()
610 }
611
612 #[inline]
613 #[allow(clippy::match_single_binding)]
614 fn from(code: i32) -> Option<Self> {
615 match unsafe { from_glib(code) } {
616 value => Some(value),
617 }
618 }
619}
620
621#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
622#[non_exhaustive]
623#[doc(alias = "GNormalizeMode")]
624pub enum NormalizeMode {
625 #[doc(alias = "G_NORMALIZE_DEFAULT")]
626 Default,
627 #[doc(alias = "G_NORMALIZE_DEFAULT_COMPOSE")]
628 DefaultCompose,
629 #[doc(alias = "G_NORMALIZE_ALL")]
630 All,
631 #[doc(alias = "G_NORMALIZE_ALL_COMPOSE")]
632 AllCompose,
633 #[doc(hidden)]
634 __Unknown(i32),
635}
636
637#[doc(hidden)]
638impl IntoGlib for NormalizeMode {
639 type GlibType = ffi::GNormalizeMode;
640
641 #[inline]
642 fn into_glib(self) -> ffi::GNormalizeMode {
643 match self {
644 Self::Default => ffi::G_NORMALIZE_DEFAULT,
645 Self::DefaultCompose => ffi::G_NORMALIZE_DEFAULT_COMPOSE,
646 Self::All => ffi::G_NORMALIZE_ALL,
647 Self::AllCompose => ffi::G_NORMALIZE_ALL_COMPOSE,
648 Self::__Unknown(value) => value,
649 }
650 }
651}
652
653#[doc(hidden)]
654impl FromGlib<ffi::GNormalizeMode> for NormalizeMode {
655 #[inline]
656 unsafe fn from_glib(value: ffi::GNormalizeMode) -> Self {
657 match value {
658 ffi::G_NORMALIZE_DEFAULT => Self::Default,
659 ffi::G_NORMALIZE_DEFAULT_COMPOSE => Self::DefaultCompose,
660 ffi::G_NORMALIZE_ALL => Self::All,
661 ffi::G_NORMALIZE_ALL_COMPOSE => Self::AllCompose,
662 value => Self::__Unknown(value),
663 }
664 }
665}
666
667impl StaticType for NormalizeMode {
668 #[inline]
669 #[doc(alias = "g_normalize_mode_get_type")]
670 fn static_type() -> crate::Type {
671 unsafe { from_glib(ffi::g_normalize_mode_get_type()) }
672 }
673}
674
675impl crate::HasParamSpec for NormalizeMode {
676 type ParamSpec = crate::ParamSpecEnum;
677 type SetValue = Self;
678 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
679
680 fn param_spec_builder() -> Self::BuilderFn {
681 Self::ParamSpec::builder_with_default
682 }
683}
684
685impl crate::value::ValueType for NormalizeMode {
686 type Type = Self;
687}
688
689unsafe impl<'a> crate::value::FromValue<'a> for NormalizeMode {
690 type Checker = crate::value::GenericValueTypeChecker<Self>;
691
692 #[inline]
693 unsafe fn from_value(value: &'a crate::Value) -> Self {
694 unsafe { from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
695 }
696}
697
698impl ToValue for NormalizeMode {
699 #[inline]
700 fn to_value(&self) -> crate::Value {
701 let mut value = crate::Value::for_value_type::<Self>();
702 unsafe {
703 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
704 }
705 value
706 }
707
708 #[inline]
709 fn value_type(&self) -> crate::Type {
710 Self::static_type()
711 }
712}
713
714impl From<NormalizeMode> for crate::Value {
715 #[inline]
716 fn from(v: NormalizeMode) -> Self {
717 ToValue::to_value(&v)
718 }
719}
720
721#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
722#[non_exhaustive]
723#[doc(alias = "GOptionArg")]
724pub enum OptionArg {
725 #[doc(alias = "G_OPTION_ARG_NONE")]
726 None,
727 #[doc(alias = "G_OPTION_ARG_STRING")]
728 String,
729 #[doc(alias = "G_OPTION_ARG_INT")]
730 Int,
731 #[doc(alias = "G_OPTION_ARG_CALLBACK")]
732 Callback,
733 #[doc(alias = "G_OPTION_ARG_FILENAME")]
734 Filename,
735 #[doc(alias = "G_OPTION_ARG_STRING_ARRAY")]
736 StringArray,
737 #[doc(alias = "G_OPTION_ARG_FILENAME_ARRAY")]
738 FilenameArray,
739 #[doc(alias = "G_OPTION_ARG_DOUBLE")]
740 Double,
741 #[doc(alias = "G_OPTION_ARG_INT64")]
742 Int64,
743 #[doc(hidden)]
744 __Unknown(i32),
745}
746
747#[doc(hidden)]
748impl IntoGlib for OptionArg {
749 type GlibType = ffi::GOptionArg;
750
751 #[inline]
752 fn into_glib(self) -> ffi::GOptionArg {
753 match self {
754 Self::None => ffi::G_OPTION_ARG_NONE,
755 Self::String => ffi::G_OPTION_ARG_STRING,
756 Self::Int => ffi::G_OPTION_ARG_INT,
757 Self::Callback => ffi::G_OPTION_ARG_CALLBACK,
758 Self::Filename => ffi::G_OPTION_ARG_FILENAME,
759 Self::StringArray => ffi::G_OPTION_ARG_STRING_ARRAY,
760 Self::FilenameArray => ffi::G_OPTION_ARG_FILENAME_ARRAY,
761 Self::Double => ffi::G_OPTION_ARG_DOUBLE,
762 Self::Int64 => ffi::G_OPTION_ARG_INT64,
763 Self::__Unknown(value) => value,
764 }
765 }
766}
767
768#[doc(hidden)]
769impl FromGlib<ffi::GOptionArg> for OptionArg {
770 #[inline]
771 unsafe fn from_glib(value: ffi::GOptionArg) -> Self {
772 match value {
773 ffi::G_OPTION_ARG_NONE => Self::None,
774 ffi::G_OPTION_ARG_STRING => Self::String,
775 ffi::G_OPTION_ARG_INT => Self::Int,
776 ffi::G_OPTION_ARG_CALLBACK => Self::Callback,
777 ffi::G_OPTION_ARG_FILENAME => Self::Filename,
778 ffi::G_OPTION_ARG_STRING_ARRAY => Self::StringArray,
779 ffi::G_OPTION_ARG_FILENAME_ARRAY => Self::FilenameArray,
780 ffi::G_OPTION_ARG_DOUBLE => Self::Double,
781 ffi::G_OPTION_ARG_INT64 => Self::Int64,
782 value => Self::__Unknown(value),
783 }
784 }
785}
786
787#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
788#[non_exhaustive]
789#[doc(alias = "GSeekType")]
790pub enum SeekType {
791 #[doc(alias = "G_SEEK_CUR")]
792 Cur,
793 #[doc(alias = "G_SEEK_SET")]
794 Set,
795 #[doc(alias = "G_SEEK_END")]
796 End,
797 #[doc(hidden)]
798 __Unknown(i32),
799}
800
801#[doc(hidden)]
802impl IntoGlib for SeekType {
803 type GlibType = ffi::GSeekType;
804
805 #[inline]
806 fn into_glib(self) -> ffi::GSeekType {
807 match self {
808 Self::Cur => ffi::G_SEEK_CUR,
809 Self::Set => ffi::G_SEEK_SET,
810 Self::End => ffi::G_SEEK_END,
811 Self::__Unknown(value) => value,
812 }
813 }
814}
815
816#[doc(hidden)]
817impl FromGlib<ffi::GSeekType> for SeekType {
818 #[inline]
819 unsafe fn from_glib(value: ffi::GSeekType) -> Self {
820 match value {
821 ffi::G_SEEK_CUR => Self::Cur,
822 ffi::G_SEEK_SET => Self::Set,
823 ffi::G_SEEK_END => Self::End,
824 value => Self::__Unknown(value),
825 }
826 }
827}
828
829#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
838#[non_exhaustive]
839#[doc(alias = "GTimeType")]
840pub enum TimeType {
841 #[doc(alias = "G_TIME_TYPE_STANDARD")]
843 Standard,
844 #[doc(alias = "G_TIME_TYPE_DAYLIGHT")]
846 Daylight,
847 #[doc(alias = "G_TIME_TYPE_UNIVERSAL")]
849 Universal,
850 #[doc(hidden)]
851 __Unknown(i32),
852}
853
854#[doc(hidden)]
855impl IntoGlib for TimeType {
856 type GlibType = ffi::GTimeType;
857
858 #[inline]
859 fn into_glib(self) -> ffi::GTimeType {
860 match self {
861 Self::Standard => ffi::G_TIME_TYPE_STANDARD,
862 Self::Daylight => ffi::G_TIME_TYPE_DAYLIGHT,
863 Self::Universal => ffi::G_TIME_TYPE_UNIVERSAL,
864 Self::__Unknown(value) => value,
865 }
866 }
867}
868
869#[doc(hidden)]
870impl FromGlib<ffi::GTimeType> for TimeType {
871 #[inline]
872 unsafe fn from_glib(value: ffi::GTimeType) -> Self {
873 match value {
874 ffi::G_TIME_TYPE_STANDARD => Self::Standard,
875 ffi::G_TIME_TYPE_DAYLIGHT => Self::Daylight,
876 ffi::G_TIME_TYPE_UNIVERSAL => Self::Universal,
877 value => Self::__Unknown(value),
878 }
879 }
880}
881
882#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
889#[non_exhaustive]
890#[doc(alias = "GUnicodeBreakType")]
891pub enum UnicodeBreakType {
892 #[doc(alias = "G_UNICODE_BREAK_MANDATORY")]
894 Mandatory,
895 #[doc(alias = "G_UNICODE_BREAK_CARRIAGE_RETURN")]
897 CarriageReturn,
898 #[doc(alias = "G_UNICODE_BREAK_LINE_FEED")]
900 LineFeed,
901 #[doc(alias = "G_UNICODE_BREAK_COMBINING_MARK")]
903 CombiningMark,
904 #[doc(alias = "G_UNICODE_BREAK_SURROGATE")]
906 Surrogate,
907 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_SPACE")]
909 ZeroWidthSpace,
910 #[doc(alias = "G_UNICODE_BREAK_INSEPARABLE")]
912 Inseparable,
913 #[doc(alias = "G_UNICODE_BREAK_NON_BREAKING_GLUE")]
915 NonBreakingGlue,
916 #[doc(alias = "G_UNICODE_BREAK_CONTINGENT")]
918 Contingent,
919 #[doc(alias = "G_UNICODE_BREAK_SPACE")]
921 Space,
922 #[doc(alias = "G_UNICODE_BREAK_AFTER")]
924 After,
925 #[doc(alias = "G_UNICODE_BREAK_BEFORE")]
927 Before,
928 #[doc(alias = "G_UNICODE_BREAK_BEFORE_AND_AFTER")]
930 BeforeAndAfter,
931 #[doc(alias = "G_UNICODE_BREAK_HYPHEN")]
933 Hyphen,
934 #[doc(alias = "G_UNICODE_BREAK_NON_STARTER")]
936 NonStarter,
937 #[doc(alias = "G_UNICODE_BREAK_OPEN_PUNCTUATION")]
939 OpenPunctuation,
940 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PUNCTUATION")]
942 ClosePunctuation,
943 #[doc(alias = "G_UNICODE_BREAK_QUOTATION")]
945 Quotation,
946 #[doc(alias = "G_UNICODE_BREAK_EXCLAMATION")]
948 Exclamation,
949 #[doc(alias = "G_UNICODE_BREAK_IDEOGRAPHIC")]
951 Ideographic,
952 #[doc(alias = "G_UNICODE_BREAK_NUMERIC")]
954 Numeric,
955 #[doc(alias = "G_UNICODE_BREAK_INFIX_SEPARATOR")]
957 InfixSeparator,
958 #[doc(alias = "G_UNICODE_BREAK_SYMBOL")]
960 Symbol,
961 #[doc(alias = "G_UNICODE_BREAK_ALPHABETIC")]
963 Alphabetic,
964 #[doc(alias = "G_UNICODE_BREAK_PREFIX")]
966 Prefix,
967 #[doc(alias = "G_UNICODE_BREAK_POSTFIX")]
969 Postfix,
970 #[doc(alias = "G_UNICODE_BREAK_COMPLEX_CONTEXT")]
972 ComplexContext,
973 #[doc(alias = "G_UNICODE_BREAK_AMBIGUOUS")]
975 Ambiguous,
976 #[doc(alias = "G_UNICODE_BREAK_UNKNOWN")]
978 Unknown,
979 #[doc(alias = "G_UNICODE_BREAK_NEXT_LINE")]
981 NextLine,
982 #[doc(alias = "G_UNICODE_BREAK_WORD_JOINER")]
984 WordJoiner,
985 #[doc(alias = "G_UNICODE_BREAK_HANGUL_L_JAMO")]
987 HangulLJamo,
988 #[doc(alias = "G_UNICODE_BREAK_HANGUL_V_JAMO")]
990 HangulVJamo,
991 #[doc(alias = "G_UNICODE_BREAK_HANGUL_T_JAMO")]
993 HangulTJamo,
994 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LV_SYLLABLE")]
996 HangulLvSyllable,
997 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE")]
999 HangulLvtSyllable,
1000 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PARENTHESIS")]
1002 CloseParenthesis,
1003 #[doc(alias = "G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER")]
1005 ConditionalJapaneseStarter,
1006 #[doc(alias = "G_UNICODE_BREAK_HEBREW_LETTER")]
1008 HebrewLetter,
1009 #[doc(alias = "G_UNICODE_BREAK_REGIONAL_INDICATOR")]
1011 RegionalIndicator,
1012 #[doc(alias = "G_UNICODE_BREAK_EMOJI_BASE")]
1014 EmojiBase,
1015 #[doc(alias = "G_UNICODE_BREAK_EMOJI_MODIFIER")]
1017 EmojiModifier,
1018 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_JOINER")]
1020 ZeroWidthJoiner,
1021 #[cfg(feature = "v2_80")]
1023 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1024 #[doc(alias = "G_UNICODE_BREAK_AKSARA")]
1025 Aksara,
1026 #[cfg(feature = "v2_80")]
1028 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1029 #[doc(alias = "G_UNICODE_BREAK_AKSARA_PRE_BASE")]
1030 AksaraPreBase,
1031 #[cfg(feature = "v2_80")]
1033 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1034 #[doc(alias = "G_UNICODE_BREAK_AKSARA_START")]
1035 AksaraStart,
1036 #[cfg(feature = "v2_80")]
1038 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1039 #[doc(alias = "G_UNICODE_BREAK_VIRAMA_FINAL")]
1040 ViramaFinal,
1041 #[cfg(feature = "v2_80")]
1043 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1044 #[doc(alias = "G_UNICODE_BREAK_VIRAMA")]
1045 Virama,
1046 #[doc(alias = "G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN")]
1048 UnambiguousHyphen,
1049 #[doc(hidden)]
1050 __Unknown(i32),
1051}
1052
1053#[doc(hidden)]
1054impl IntoGlib for UnicodeBreakType {
1055 type GlibType = ffi::GUnicodeBreakType;
1056
1057 fn into_glib(self) -> ffi::GUnicodeBreakType {
1058 match self {
1059 Self::Mandatory => ffi::G_UNICODE_BREAK_MANDATORY,
1060 Self::CarriageReturn => ffi::G_UNICODE_BREAK_CARRIAGE_RETURN,
1061 Self::LineFeed => ffi::G_UNICODE_BREAK_LINE_FEED,
1062 Self::CombiningMark => ffi::G_UNICODE_BREAK_COMBINING_MARK,
1063 Self::Surrogate => ffi::G_UNICODE_BREAK_SURROGATE,
1064 Self::ZeroWidthSpace => ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
1065 Self::Inseparable => ffi::G_UNICODE_BREAK_INSEPARABLE,
1066 Self::NonBreakingGlue => ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE,
1067 Self::Contingent => ffi::G_UNICODE_BREAK_CONTINGENT,
1068 Self::Space => ffi::G_UNICODE_BREAK_SPACE,
1069 Self::After => ffi::G_UNICODE_BREAK_AFTER,
1070 Self::Before => ffi::G_UNICODE_BREAK_BEFORE,
1071 Self::BeforeAndAfter => ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER,
1072 Self::Hyphen => ffi::G_UNICODE_BREAK_HYPHEN,
1073 Self::NonStarter => ffi::G_UNICODE_BREAK_NON_STARTER,
1074 Self::OpenPunctuation => ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION,
1075 Self::ClosePunctuation => ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION,
1076 Self::Quotation => ffi::G_UNICODE_BREAK_QUOTATION,
1077 Self::Exclamation => ffi::G_UNICODE_BREAK_EXCLAMATION,
1078 Self::Ideographic => ffi::G_UNICODE_BREAK_IDEOGRAPHIC,
1079 Self::Numeric => ffi::G_UNICODE_BREAK_NUMERIC,
1080 Self::InfixSeparator => ffi::G_UNICODE_BREAK_INFIX_SEPARATOR,
1081 Self::Symbol => ffi::G_UNICODE_BREAK_SYMBOL,
1082 Self::Alphabetic => ffi::G_UNICODE_BREAK_ALPHABETIC,
1083 Self::Prefix => ffi::G_UNICODE_BREAK_PREFIX,
1084 Self::Postfix => ffi::G_UNICODE_BREAK_POSTFIX,
1085 Self::ComplexContext => ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT,
1086 Self::Ambiguous => ffi::G_UNICODE_BREAK_AMBIGUOUS,
1087 Self::Unknown => ffi::G_UNICODE_BREAK_UNKNOWN,
1088 Self::NextLine => ffi::G_UNICODE_BREAK_NEXT_LINE,
1089 Self::WordJoiner => ffi::G_UNICODE_BREAK_WORD_JOINER,
1090 Self::HangulLJamo => ffi::G_UNICODE_BREAK_HANGUL_L_JAMO,
1091 Self::HangulVJamo => ffi::G_UNICODE_BREAK_HANGUL_V_JAMO,
1092 Self::HangulTJamo => ffi::G_UNICODE_BREAK_HANGUL_T_JAMO,
1093 Self::HangulLvSyllable => ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
1094 Self::HangulLvtSyllable => ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE,
1095 Self::CloseParenthesis => ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS,
1096 Self::ConditionalJapaneseStarter => ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER,
1097 Self::HebrewLetter => ffi::G_UNICODE_BREAK_HEBREW_LETTER,
1098 Self::RegionalIndicator => ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR,
1099 Self::EmojiBase => ffi::G_UNICODE_BREAK_EMOJI_BASE,
1100 Self::EmojiModifier => ffi::G_UNICODE_BREAK_EMOJI_MODIFIER,
1101 Self::ZeroWidthJoiner => ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER,
1102 #[cfg(feature = "v2_80")]
1103 Self::Aksara => ffi::G_UNICODE_BREAK_AKSARA,
1104 #[cfg(feature = "v2_80")]
1105 Self::AksaraPreBase => ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE,
1106 #[cfg(feature = "v2_80")]
1107 Self::AksaraStart => ffi::G_UNICODE_BREAK_AKSARA_START,
1108 #[cfg(feature = "v2_80")]
1109 Self::ViramaFinal => ffi::G_UNICODE_BREAK_VIRAMA_FINAL,
1110 #[cfg(feature = "v2_80")]
1111 Self::Virama => ffi::G_UNICODE_BREAK_VIRAMA,
1112 Self::UnambiguousHyphen => ffi::G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN,
1113 Self::__Unknown(value) => value,
1114 }
1115 }
1116}
1117
1118#[doc(hidden)]
1119impl FromGlib<ffi::GUnicodeBreakType> for UnicodeBreakType {
1120 unsafe fn from_glib(value: ffi::GUnicodeBreakType) -> Self {
1121 match value {
1122 ffi::G_UNICODE_BREAK_MANDATORY => Self::Mandatory,
1123 ffi::G_UNICODE_BREAK_CARRIAGE_RETURN => Self::CarriageReturn,
1124 ffi::G_UNICODE_BREAK_LINE_FEED => Self::LineFeed,
1125 ffi::G_UNICODE_BREAK_COMBINING_MARK => Self::CombiningMark,
1126 ffi::G_UNICODE_BREAK_SURROGATE => Self::Surrogate,
1127 ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE => Self::ZeroWidthSpace,
1128 ffi::G_UNICODE_BREAK_INSEPARABLE => Self::Inseparable,
1129 ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE => Self::NonBreakingGlue,
1130 ffi::G_UNICODE_BREAK_CONTINGENT => Self::Contingent,
1131 ffi::G_UNICODE_BREAK_SPACE => Self::Space,
1132 ffi::G_UNICODE_BREAK_AFTER => Self::After,
1133 ffi::G_UNICODE_BREAK_BEFORE => Self::Before,
1134 ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER => Self::BeforeAndAfter,
1135 ffi::G_UNICODE_BREAK_HYPHEN => Self::Hyphen,
1136 ffi::G_UNICODE_BREAK_NON_STARTER => Self::NonStarter,
1137 ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION => Self::OpenPunctuation,
1138 ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION => Self::ClosePunctuation,
1139 ffi::G_UNICODE_BREAK_QUOTATION => Self::Quotation,
1140 ffi::G_UNICODE_BREAK_EXCLAMATION => Self::Exclamation,
1141 ffi::G_UNICODE_BREAK_IDEOGRAPHIC => Self::Ideographic,
1142 ffi::G_UNICODE_BREAK_NUMERIC => Self::Numeric,
1143 ffi::G_UNICODE_BREAK_INFIX_SEPARATOR => Self::InfixSeparator,
1144 ffi::G_UNICODE_BREAK_SYMBOL => Self::Symbol,
1145 ffi::G_UNICODE_BREAK_ALPHABETIC => Self::Alphabetic,
1146 ffi::G_UNICODE_BREAK_PREFIX => Self::Prefix,
1147 ffi::G_UNICODE_BREAK_POSTFIX => Self::Postfix,
1148 ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT => Self::ComplexContext,
1149 ffi::G_UNICODE_BREAK_AMBIGUOUS => Self::Ambiguous,
1150 ffi::G_UNICODE_BREAK_UNKNOWN => Self::Unknown,
1151 ffi::G_UNICODE_BREAK_NEXT_LINE => Self::NextLine,
1152 ffi::G_UNICODE_BREAK_WORD_JOINER => Self::WordJoiner,
1153 ffi::G_UNICODE_BREAK_HANGUL_L_JAMO => Self::HangulLJamo,
1154 ffi::G_UNICODE_BREAK_HANGUL_V_JAMO => Self::HangulVJamo,
1155 ffi::G_UNICODE_BREAK_HANGUL_T_JAMO => Self::HangulTJamo,
1156 ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE => Self::HangulLvSyllable,
1157 ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE => Self::HangulLvtSyllable,
1158 ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS => Self::CloseParenthesis,
1159 ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER => Self::ConditionalJapaneseStarter,
1160 ffi::G_UNICODE_BREAK_HEBREW_LETTER => Self::HebrewLetter,
1161 ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR => Self::RegionalIndicator,
1162 ffi::G_UNICODE_BREAK_EMOJI_BASE => Self::EmojiBase,
1163 ffi::G_UNICODE_BREAK_EMOJI_MODIFIER => Self::EmojiModifier,
1164 ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER => Self::ZeroWidthJoiner,
1165 #[cfg(feature = "v2_80")]
1166 ffi::G_UNICODE_BREAK_AKSARA => Self::Aksara,
1167 #[cfg(feature = "v2_80")]
1168 ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE => Self::AksaraPreBase,
1169 #[cfg(feature = "v2_80")]
1170 ffi::G_UNICODE_BREAK_AKSARA_START => Self::AksaraStart,
1171 #[cfg(feature = "v2_80")]
1172 ffi::G_UNICODE_BREAK_VIRAMA_FINAL => Self::ViramaFinal,
1173 #[cfg(feature = "v2_80")]
1174 ffi::G_UNICODE_BREAK_VIRAMA => Self::Virama,
1175 ffi::G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN => Self::UnambiguousHyphen,
1176 value => Self::__Unknown(value),
1177 }
1178 }
1179}
1180
1181impl StaticType for UnicodeBreakType {
1182 #[inline]
1183 #[doc(alias = "g_unicode_break_type_get_type")]
1184 fn static_type() -> crate::Type {
1185 unsafe { from_glib(ffi::g_unicode_break_type_get_type()) }
1186 }
1187}
1188
1189impl crate::HasParamSpec for UnicodeBreakType {
1190 type ParamSpec = crate::ParamSpecEnum;
1191 type SetValue = Self;
1192 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
1193
1194 fn param_spec_builder() -> Self::BuilderFn {
1195 Self::ParamSpec::builder_with_default
1196 }
1197}
1198
1199impl crate::value::ValueType for UnicodeBreakType {
1200 type Type = Self;
1201}
1202
1203unsafe impl<'a> crate::value::FromValue<'a> for UnicodeBreakType {
1204 type Checker = crate::value::GenericValueTypeChecker<Self>;
1205
1206 #[inline]
1207 unsafe fn from_value(value: &'a crate::Value) -> Self {
1208 unsafe { from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
1209 }
1210}
1211
1212impl ToValue for UnicodeBreakType {
1213 #[inline]
1214 fn to_value(&self) -> crate::Value {
1215 let mut value = crate::Value::for_value_type::<Self>();
1216 unsafe {
1217 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1218 }
1219 value
1220 }
1221
1222 #[inline]
1223 fn value_type(&self) -> crate::Type {
1224 Self::static_type()
1225 }
1226}
1227
1228impl From<UnicodeBreakType> for crate::Value {
1229 #[inline]
1230 fn from(v: UnicodeBreakType) -> Self {
1231 ToValue::to_value(&v)
1232 }
1233}
1234
1235#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1244#[non_exhaustive]
1245#[doc(alias = "GUnicodeScript")]
1246pub enum UnicodeScript {
1247 #[doc(alias = "G_UNICODE_SCRIPT_INVALID_CODE")]
1249 InvalidCode,
1250 #[doc(alias = "G_UNICODE_SCRIPT_COMMON")]
1252 Common,
1253 #[doc(alias = "G_UNICODE_SCRIPT_INHERITED")]
1256 Inherited,
1257 #[doc(alias = "G_UNICODE_SCRIPT_ARABIC")]
1259 Arabic,
1260 #[doc(alias = "G_UNICODE_SCRIPT_ARMENIAN")]
1262 Armenian,
1263 #[doc(alias = "G_UNICODE_SCRIPT_BENGALI")]
1265 Bengali,
1266 #[doc(alias = "G_UNICODE_SCRIPT_BOPOMOFO")]
1268 Bopomofo,
1269 #[doc(alias = "G_UNICODE_SCRIPT_CHEROKEE")]
1271 Cherokee,
1272 #[doc(alias = "G_UNICODE_SCRIPT_COPTIC")]
1274 Coptic,
1275 #[doc(alias = "G_UNICODE_SCRIPT_CYRILLIC")]
1277 Cyrillic,
1278 #[doc(alias = "G_UNICODE_SCRIPT_DESERET")]
1280 Deseret,
1281 #[doc(alias = "G_UNICODE_SCRIPT_DEVANAGARI")]
1283 Devanagari,
1284 #[doc(alias = "G_UNICODE_SCRIPT_ETHIOPIC")]
1286 Ethiopic,
1287 #[doc(alias = "G_UNICODE_SCRIPT_GEORGIAN")]
1289 Georgian,
1290 #[doc(alias = "G_UNICODE_SCRIPT_GOTHIC")]
1292 Gothic,
1293 #[doc(alias = "G_UNICODE_SCRIPT_GREEK")]
1295 Greek,
1296 #[doc(alias = "G_UNICODE_SCRIPT_GUJARATI")]
1298 Gujarati,
1299 #[doc(alias = "G_UNICODE_SCRIPT_GURMUKHI")]
1301 Gurmukhi,
1302 #[doc(alias = "G_UNICODE_SCRIPT_HAN")]
1304 Han,
1305 #[doc(alias = "G_UNICODE_SCRIPT_HANGUL")]
1307 Hangul,
1308 #[doc(alias = "G_UNICODE_SCRIPT_HEBREW")]
1310 Hebrew,
1311 #[doc(alias = "G_UNICODE_SCRIPT_HIRAGANA")]
1313 Hiragana,
1314 #[doc(alias = "G_UNICODE_SCRIPT_KANNADA")]
1316 Kannada,
1317 #[doc(alias = "G_UNICODE_SCRIPT_KATAKANA")]
1319 Katakana,
1320 #[doc(alias = "G_UNICODE_SCRIPT_KHMER")]
1322 Khmer,
1323 #[doc(alias = "G_UNICODE_SCRIPT_LAO")]
1325 Lao,
1326 #[doc(alias = "G_UNICODE_SCRIPT_LATIN")]
1328 Latin,
1329 #[doc(alias = "G_UNICODE_SCRIPT_MALAYALAM")]
1331 Malayalam,
1332 #[doc(alias = "G_UNICODE_SCRIPT_MONGOLIAN")]
1334 Mongolian,
1335 #[doc(alias = "G_UNICODE_SCRIPT_MYANMAR")]
1337 Myanmar,
1338 #[doc(alias = "G_UNICODE_SCRIPT_OGHAM")]
1340 Ogham,
1341 #[doc(alias = "G_UNICODE_SCRIPT_OLD_ITALIC")]
1343 OldItalic,
1344 #[doc(alias = "G_UNICODE_SCRIPT_ORIYA")]
1346 Oriya,
1347 #[doc(alias = "G_UNICODE_SCRIPT_RUNIC")]
1349 Runic,
1350 #[doc(alias = "G_UNICODE_SCRIPT_SINHALA")]
1352 Sinhala,
1353 #[doc(alias = "G_UNICODE_SCRIPT_SYRIAC")]
1355 Syriac,
1356 #[doc(alias = "G_UNICODE_SCRIPT_TAMIL")]
1358 Tamil,
1359 #[doc(alias = "G_UNICODE_SCRIPT_TELUGU")]
1361 Telugu,
1362 #[doc(alias = "G_UNICODE_SCRIPT_THAANA")]
1364 Thaana,
1365 #[doc(alias = "G_UNICODE_SCRIPT_THAI")]
1367 Thai,
1368 #[doc(alias = "G_UNICODE_SCRIPT_TIBETAN")]
1370 Tibetan,
1371 #[doc(alias = "G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL")]
1373 CanadianAboriginal,
1374 #[doc(alias = "G_UNICODE_SCRIPT_YI")]
1376 Yi,
1377 #[doc(alias = "G_UNICODE_SCRIPT_TAGALOG")]
1379 Tagalog,
1380 #[doc(alias = "G_UNICODE_SCRIPT_HANUNOO")]
1382 Hanunoo,
1383 #[doc(alias = "G_UNICODE_SCRIPT_BUHID")]
1385 Buhid,
1386 #[doc(alias = "G_UNICODE_SCRIPT_TAGBANWA")]
1388 Tagbanwa,
1389 #[doc(alias = "G_UNICODE_SCRIPT_BRAILLE")]
1391 Braille,
1392 #[doc(alias = "G_UNICODE_SCRIPT_CYPRIOT")]
1394 Cypriot,
1395 #[doc(alias = "G_UNICODE_SCRIPT_LIMBU")]
1397 Limbu,
1398 #[doc(alias = "G_UNICODE_SCRIPT_OSMANYA")]
1400 Osmanya,
1401 #[doc(alias = "G_UNICODE_SCRIPT_SHAVIAN")]
1403 Shavian,
1404 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_B")]
1406 LinearB,
1407 #[doc(alias = "G_UNICODE_SCRIPT_TAI_LE")]
1409 TaiLe,
1410 #[doc(alias = "G_UNICODE_SCRIPT_UGARITIC")]
1412 Ugaritic,
1413 #[doc(alias = "G_UNICODE_SCRIPT_NEW_TAI_LUE")]
1415 NewTaiLue,
1416 #[doc(alias = "G_UNICODE_SCRIPT_BUGINESE")]
1418 Buginese,
1419 #[doc(alias = "G_UNICODE_SCRIPT_GLAGOLITIC")]
1421 Glagolitic,
1422 #[doc(alias = "G_UNICODE_SCRIPT_TIFINAGH")]
1424 Tifinagh,
1425 #[doc(alias = "G_UNICODE_SCRIPT_SYLOTI_NAGRI")]
1427 SylotiNagri,
1428 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERSIAN")]
1430 OldPersian,
1431 #[doc(alias = "G_UNICODE_SCRIPT_KHAROSHTHI")]
1433 Kharoshthi,
1434 #[doc(alias = "G_UNICODE_SCRIPT_UNKNOWN")]
1436 Unknown,
1437 #[doc(alias = "G_UNICODE_SCRIPT_BALINESE")]
1439 Balinese,
1440 #[doc(alias = "G_UNICODE_SCRIPT_CUNEIFORM")]
1442 Cuneiform,
1443 #[doc(alias = "G_UNICODE_SCRIPT_PHOENICIAN")]
1445 Phoenician,
1446 #[doc(alias = "G_UNICODE_SCRIPT_PHAGS_PA")]
1448 PhagsPa,
1449 #[doc(alias = "G_UNICODE_SCRIPT_NKO")]
1451 Nko,
1452 #[doc(alias = "G_UNICODE_SCRIPT_KAYAH_LI")]
1454 KayahLi,
1455 #[doc(alias = "G_UNICODE_SCRIPT_LEPCHA")]
1457 Lepcha,
1458 #[doc(alias = "G_UNICODE_SCRIPT_REJANG")]
1460 Rejang,
1461 #[doc(alias = "G_UNICODE_SCRIPT_SUNDANESE")]
1463 Sundanese,
1464 #[doc(alias = "G_UNICODE_SCRIPT_SAURASHTRA")]
1466 Saurashtra,
1467 #[doc(alias = "G_UNICODE_SCRIPT_CHAM")]
1469 Cham,
1470 #[doc(alias = "G_UNICODE_SCRIPT_OL_CHIKI")]
1472 OlChiki,
1473 #[doc(alias = "G_UNICODE_SCRIPT_VAI")]
1475 Vai,
1476 #[doc(alias = "G_UNICODE_SCRIPT_CARIAN")]
1478 Carian,
1479 #[doc(alias = "G_UNICODE_SCRIPT_LYCIAN")]
1481 Lycian,
1482 #[doc(alias = "G_UNICODE_SCRIPT_LYDIAN")]
1484 Lydian,
1485 #[doc(alias = "G_UNICODE_SCRIPT_AVESTAN")]
1487 Avestan,
1488 #[doc(alias = "G_UNICODE_SCRIPT_BAMUM")]
1490 Bamum,
1491 #[doc(alias = "G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS")]
1493 EgyptianHieroglyphs,
1494 #[doc(alias = "G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC")]
1496 ImperialAramaic,
1497 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI")]
1499 InscriptionalPahlavi,
1500 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN")]
1502 InscriptionalParthian,
1503 #[doc(alias = "G_UNICODE_SCRIPT_JAVANESE")]
1505 Javanese,
1506 #[doc(alias = "G_UNICODE_SCRIPT_KAITHI")]
1508 Kaithi,
1509 #[doc(alias = "G_UNICODE_SCRIPT_LISU")]
1511 Lisu,
1512 #[doc(alias = "G_UNICODE_SCRIPT_MEETEI_MAYEK")]
1514 MeeteiMayek,
1515 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN")]
1517 OldSouthArabian,
1518 #[doc(alias = "G_UNICODE_SCRIPT_OLD_TURKIC")]
1520 OldTurkic,
1521 #[doc(alias = "G_UNICODE_SCRIPT_SAMARITAN")]
1523 Samaritan,
1524 #[doc(alias = "G_UNICODE_SCRIPT_TAI_THAM")]
1526 TaiTham,
1527 #[doc(alias = "G_UNICODE_SCRIPT_TAI_VIET")]
1529 TaiViet,
1530 #[doc(alias = "G_UNICODE_SCRIPT_BATAK")]
1532 Batak,
1533 #[doc(alias = "G_UNICODE_SCRIPT_BRAHMI")]
1535 Brahmi,
1536 #[doc(alias = "G_UNICODE_SCRIPT_MANDAIC")]
1538 Mandaic,
1539 #[doc(alias = "G_UNICODE_SCRIPT_CHAKMA")]
1541 Chakma,
1542 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_CURSIVE")]
1544 MeroiticCursive,
1545 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS")]
1547 MeroiticHieroglyphs,
1548 #[doc(alias = "G_UNICODE_SCRIPT_MIAO")]
1550 Miao,
1551 #[doc(alias = "G_UNICODE_SCRIPT_SHARADA")]
1553 Sharada,
1554 #[doc(alias = "G_UNICODE_SCRIPT_SORA_SOMPENG")]
1556 SoraSompeng,
1557 #[doc(alias = "G_UNICODE_SCRIPT_TAKRI")]
1559 Takri,
1560 #[doc(alias = "G_UNICODE_SCRIPT_BASSA_VAH")]
1562 BassaVah,
1563 #[doc(alias = "G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN")]
1565 CaucasianAlbanian,
1566 #[doc(alias = "G_UNICODE_SCRIPT_DUPLOYAN")]
1568 Duployan,
1569 #[doc(alias = "G_UNICODE_SCRIPT_ELBASAN")]
1571 Elbasan,
1572 #[doc(alias = "G_UNICODE_SCRIPT_GRANTHA")]
1574 Grantha,
1575 #[doc(alias = "G_UNICODE_SCRIPT_KHOJKI")]
1577 Khojki,
1578 #[doc(alias = "G_UNICODE_SCRIPT_KHUDAWADI")]
1580 Khudawadi,
1581 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_A")]
1583 LinearA,
1584 #[doc(alias = "G_UNICODE_SCRIPT_MAHAJANI")]
1586 Mahajani,
1587 #[doc(alias = "G_UNICODE_SCRIPT_MANICHAEAN")]
1589 Manichaean,
1590 #[doc(alias = "G_UNICODE_SCRIPT_MENDE_KIKAKUI")]
1592 MendeKikakui,
1593 #[doc(alias = "G_UNICODE_SCRIPT_MODI")]
1595 Modi,
1596 #[doc(alias = "G_UNICODE_SCRIPT_MRO")]
1598 Mro,
1599 #[doc(alias = "G_UNICODE_SCRIPT_NABATAEAN")]
1601 Nabataean,
1602 #[doc(alias = "G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN")]
1604 OldNorthArabian,
1605 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERMIC")]
1607 OldPermic,
1608 #[doc(alias = "G_UNICODE_SCRIPT_PAHAWH_HMONG")]
1610 PahawhHmong,
1611 #[doc(alias = "G_UNICODE_SCRIPT_PALMYRENE")]
1613 Palmyrene,
1614 #[doc(alias = "G_UNICODE_SCRIPT_PAU_CIN_HAU")]
1616 PauCinHau,
1617 #[doc(alias = "G_UNICODE_SCRIPT_PSALTER_PAHLAVI")]
1619 PsalterPahlavi,
1620 #[doc(alias = "G_UNICODE_SCRIPT_SIDDHAM")]
1622 Siddham,
1623 #[doc(alias = "G_UNICODE_SCRIPT_TIRHUTA")]
1625 Tirhuta,
1626 #[doc(alias = "G_UNICODE_SCRIPT_WARANG_CITI")]
1628 WarangCiti,
1629 #[doc(alias = "G_UNICODE_SCRIPT_AHOM")]
1631 Ahom,
1632 #[doc(alias = "G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
1634 AnatolianHieroglyphs,
1635 #[doc(alias = "G_UNICODE_SCRIPT_HATRAN")]
1637 Hatran,
1638 #[doc(alias = "G_UNICODE_SCRIPT_MULTANI")]
1640 Multani,
1641 #[doc(alias = "G_UNICODE_SCRIPT_OLD_HUNGARIAN")]
1643 OldHungarian,
1644 #[doc(alias = "G_UNICODE_SCRIPT_SIGNWRITING")]
1646 Signwriting,
1647 #[doc(alias = "G_UNICODE_SCRIPT_ADLAM")]
1649 Adlam,
1650 #[doc(alias = "G_UNICODE_SCRIPT_BHAIKSUKI")]
1652 Bhaiksuki,
1653 #[doc(alias = "G_UNICODE_SCRIPT_MARCHEN")]
1655 Marchen,
1656 #[doc(alias = "G_UNICODE_SCRIPT_NEWA")]
1658 Newa,
1659 #[doc(alias = "G_UNICODE_SCRIPT_OSAGE")]
1661 Osage,
1662 #[doc(alias = "G_UNICODE_SCRIPT_TANGUT")]
1664 Tangut,
1665 #[doc(alias = "G_UNICODE_SCRIPT_MASARAM_GONDI")]
1667 MasaramGondi,
1668 #[doc(alias = "G_UNICODE_SCRIPT_NUSHU")]
1670 Nushu,
1671 #[doc(alias = "G_UNICODE_SCRIPT_SOYOMBO")]
1673 Soyombo,
1674 #[doc(alias = "G_UNICODE_SCRIPT_ZANABAZAR_SQUARE")]
1676 ZanabazarSquare,
1677 #[doc(alias = "G_UNICODE_SCRIPT_DOGRA")]
1679 Dogra,
1680 #[doc(alias = "G_UNICODE_SCRIPT_GUNJALA_GONDI")]
1682 GunjalaGondi,
1683 #[doc(alias = "G_UNICODE_SCRIPT_HANIFI_ROHINGYA")]
1685 HanifiRohingya,
1686 #[doc(alias = "G_UNICODE_SCRIPT_MAKASAR")]
1688 Makasar,
1689 #[doc(alias = "G_UNICODE_SCRIPT_MEDEFAIDRIN")]
1691 Medefaidrin,
1692 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOGDIAN")]
1694 OldSogdian,
1695 #[doc(alias = "G_UNICODE_SCRIPT_SOGDIAN")]
1697 Sogdian,
1698 #[doc(alias = "G_UNICODE_SCRIPT_ELYMAIC")]
1700 Elymaic,
1701 #[doc(alias = "G_UNICODE_SCRIPT_NANDINAGARI")]
1703 Nandinagari,
1704 #[doc(alias = "G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG")]
1706 NyiakengPuachueHmong,
1707 #[doc(alias = "G_UNICODE_SCRIPT_WANCHO")]
1709 Wancho,
1710 #[doc(alias = "G_UNICODE_SCRIPT_CHORASMIAN")]
1712 Chorasmian,
1713 #[doc(alias = "G_UNICODE_SCRIPT_DIVES_AKURU")]
1715 DivesAkuru,
1716 #[doc(alias = "G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT")]
1718 KhitanSmallScript,
1719 #[doc(alias = "G_UNICODE_SCRIPT_YEZIDI")]
1721 Yezidi,
1722 #[cfg(feature = "v2_72")]
1724 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1725 #[doc(alias = "G_UNICODE_SCRIPT_CYPRO_MINOAN")]
1726 CyproMinoan,
1727 #[cfg(feature = "v2_72")]
1729 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1730 #[doc(alias = "G_UNICODE_SCRIPT_OLD_UYGHUR")]
1731 OldUyghur,
1732 #[cfg(feature = "v2_72")]
1734 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1735 #[doc(alias = "G_UNICODE_SCRIPT_TANGSA")]
1736 Tangsa,
1737 #[cfg(feature = "v2_72")]
1739 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1740 #[doc(alias = "G_UNICODE_SCRIPT_TOTO")]
1741 Toto,
1742 #[cfg(feature = "v2_72")]
1744 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1745 #[doc(alias = "G_UNICODE_SCRIPT_VITHKUQI")]
1746 Vithkuqi,
1747 #[cfg(feature = "v2_72")]
1749 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1750 #[doc(alias = "G_UNICODE_SCRIPT_MATH")]
1751 Math,
1752 #[cfg(feature = "v2_74")]
1754 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
1755 #[doc(alias = "G_UNICODE_SCRIPT_KAWI")]
1756 Kawi,
1757 #[cfg(feature = "v2_74")]
1759 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
1760 #[doc(alias = "G_UNICODE_SCRIPT_NAG_MUNDARI")]
1761 NagMundari,
1762 #[cfg(feature = "v2_84")]
1764 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1765 #[doc(alias = "G_UNICODE_SCRIPT_TODHRI")]
1766 Todhri,
1767 #[cfg(feature = "v2_84")]
1769 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1770 #[doc(alias = "G_UNICODE_SCRIPT_GARAY")]
1771 Garay,
1772 #[cfg(feature = "v2_84")]
1774 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1775 #[doc(alias = "G_UNICODE_SCRIPT_TULU_TIGALARI")]
1776 TuluTigalari,
1777 #[cfg(feature = "v2_84")]
1779 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1780 #[doc(alias = "G_UNICODE_SCRIPT_SUNUWAR")]
1781 Sunuwar,
1782 #[cfg(feature = "v2_84")]
1784 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1785 #[doc(alias = "G_UNICODE_SCRIPT_GURUNG_KHEMA")]
1786 GurungKhema,
1787 #[cfg(feature = "v2_84")]
1789 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1790 #[doc(alias = "G_UNICODE_SCRIPT_KIRAT_RAI")]
1791 KiratRai,
1792 #[cfg(feature = "v2_84")]
1794 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1795 #[doc(alias = "G_UNICODE_SCRIPT_OL_ONAL")]
1796 OlOnal,
1797 #[doc(alias = "G_UNICODE_SCRIPT_SIDETIC")]
1799 Sidetic,
1800 #[doc(alias = "G_UNICODE_SCRIPT_TOLONG_SIKI")]
1802 TolongSiki,
1803 #[doc(alias = "G_UNICODE_SCRIPT_TAI_YO")]
1805 TaiYo,
1806 #[doc(alias = "G_UNICODE_SCRIPT_BERIA_ERFE")]
1808 BeriaErfe,
1809 #[doc(hidden)]
1810 __Unknown(i32),
1811}
1812
1813impl UnicodeScript {
1814 #[doc(alias = "g_unicode_script_from_iso15924")]
1815 pub fn from_iso15924(iso15924: u32) -> UnicodeScript {
1816 unsafe { from_glib(ffi::g_unicode_script_from_iso15924(iso15924)) }
1817 }
1818
1819 #[doc(alias = "g_unicode_script_to_iso15924")]
1820 pub fn to_iso15924(self) -> u32 {
1821 unsafe { ffi::g_unicode_script_to_iso15924(self.into_glib()) }
1822 }
1823}
1824
1825#[doc(hidden)]
1826impl IntoGlib for UnicodeScript {
1827 type GlibType = ffi::GUnicodeScript;
1828
1829 fn into_glib(self) -> ffi::GUnicodeScript {
1830 match self {
1831 Self::InvalidCode => ffi::G_UNICODE_SCRIPT_INVALID_CODE,
1832 Self::Common => ffi::G_UNICODE_SCRIPT_COMMON,
1833 Self::Inherited => ffi::G_UNICODE_SCRIPT_INHERITED,
1834 Self::Arabic => ffi::G_UNICODE_SCRIPT_ARABIC,
1835 Self::Armenian => ffi::G_UNICODE_SCRIPT_ARMENIAN,
1836 Self::Bengali => ffi::G_UNICODE_SCRIPT_BENGALI,
1837 Self::Bopomofo => ffi::G_UNICODE_SCRIPT_BOPOMOFO,
1838 Self::Cherokee => ffi::G_UNICODE_SCRIPT_CHEROKEE,
1839 Self::Coptic => ffi::G_UNICODE_SCRIPT_COPTIC,
1840 Self::Cyrillic => ffi::G_UNICODE_SCRIPT_CYRILLIC,
1841 Self::Deseret => ffi::G_UNICODE_SCRIPT_DESERET,
1842 Self::Devanagari => ffi::G_UNICODE_SCRIPT_DEVANAGARI,
1843 Self::Ethiopic => ffi::G_UNICODE_SCRIPT_ETHIOPIC,
1844 Self::Georgian => ffi::G_UNICODE_SCRIPT_GEORGIAN,
1845 Self::Gothic => ffi::G_UNICODE_SCRIPT_GOTHIC,
1846 Self::Greek => ffi::G_UNICODE_SCRIPT_GREEK,
1847 Self::Gujarati => ffi::G_UNICODE_SCRIPT_GUJARATI,
1848 Self::Gurmukhi => ffi::G_UNICODE_SCRIPT_GURMUKHI,
1849 Self::Han => ffi::G_UNICODE_SCRIPT_HAN,
1850 Self::Hangul => ffi::G_UNICODE_SCRIPT_HANGUL,
1851 Self::Hebrew => ffi::G_UNICODE_SCRIPT_HEBREW,
1852 Self::Hiragana => ffi::G_UNICODE_SCRIPT_HIRAGANA,
1853 Self::Kannada => ffi::G_UNICODE_SCRIPT_KANNADA,
1854 Self::Katakana => ffi::G_UNICODE_SCRIPT_KATAKANA,
1855 Self::Khmer => ffi::G_UNICODE_SCRIPT_KHMER,
1856 Self::Lao => ffi::G_UNICODE_SCRIPT_LAO,
1857 Self::Latin => ffi::G_UNICODE_SCRIPT_LATIN,
1858 Self::Malayalam => ffi::G_UNICODE_SCRIPT_MALAYALAM,
1859 Self::Mongolian => ffi::G_UNICODE_SCRIPT_MONGOLIAN,
1860 Self::Myanmar => ffi::G_UNICODE_SCRIPT_MYANMAR,
1861 Self::Ogham => ffi::G_UNICODE_SCRIPT_OGHAM,
1862 Self::OldItalic => ffi::G_UNICODE_SCRIPT_OLD_ITALIC,
1863 Self::Oriya => ffi::G_UNICODE_SCRIPT_ORIYA,
1864 Self::Runic => ffi::G_UNICODE_SCRIPT_RUNIC,
1865 Self::Sinhala => ffi::G_UNICODE_SCRIPT_SINHALA,
1866 Self::Syriac => ffi::G_UNICODE_SCRIPT_SYRIAC,
1867 Self::Tamil => ffi::G_UNICODE_SCRIPT_TAMIL,
1868 Self::Telugu => ffi::G_UNICODE_SCRIPT_TELUGU,
1869 Self::Thaana => ffi::G_UNICODE_SCRIPT_THAANA,
1870 Self::Thai => ffi::G_UNICODE_SCRIPT_THAI,
1871 Self::Tibetan => ffi::G_UNICODE_SCRIPT_TIBETAN,
1872 Self::CanadianAboriginal => ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL,
1873 Self::Yi => ffi::G_UNICODE_SCRIPT_YI,
1874 Self::Tagalog => ffi::G_UNICODE_SCRIPT_TAGALOG,
1875 Self::Hanunoo => ffi::G_UNICODE_SCRIPT_HANUNOO,
1876 Self::Buhid => ffi::G_UNICODE_SCRIPT_BUHID,
1877 Self::Tagbanwa => ffi::G_UNICODE_SCRIPT_TAGBANWA,
1878 Self::Braille => ffi::G_UNICODE_SCRIPT_BRAILLE,
1879 Self::Cypriot => ffi::G_UNICODE_SCRIPT_CYPRIOT,
1880 Self::Limbu => ffi::G_UNICODE_SCRIPT_LIMBU,
1881 Self::Osmanya => ffi::G_UNICODE_SCRIPT_OSMANYA,
1882 Self::Shavian => ffi::G_UNICODE_SCRIPT_SHAVIAN,
1883 Self::LinearB => ffi::G_UNICODE_SCRIPT_LINEAR_B,
1884 Self::TaiLe => ffi::G_UNICODE_SCRIPT_TAI_LE,
1885 Self::Ugaritic => ffi::G_UNICODE_SCRIPT_UGARITIC,
1886 Self::NewTaiLue => ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE,
1887 Self::Buginese => ffi::G_UNICODE_SCRIPT_BUGINESE,
1888 Self::Glagolitic => ffi::G_UNICODE_SCRIPT_GLAGOLITIC,
1889 Self::Tifinagh => ffi::G_UNICODE_SCRIPT_TIFINAGH,
1890 Self::SylotiNagri => ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI,
1891 Self::OldPersian => ffi::G_UNICODE_SCRIPT_OLD_PERSIAN,
1892 Self::Kharoshthi => ffi::G_UNICODE_SCRIPT_KHAROSHTHI,
1893 Self::Unknown => ffi::G_UNICODE_SCRIPT_UNKNOWN,
1894 Self::Balinese => ffi::G_UNICODE_SCRIPT_BALINESE,
1895 Self::Cuneiform => ffi::G_UNICODE_SCRIPT_CUNEIFORM,
1896 Self::Phoenician => ffi::G_UNICODE_SCRIPT_PHOENICIAN,
1897 Self::PhagsPa => ffi::G_UNICODE_SCRIPT_PHAGS_PA,
1898 Self::Nko => ffi::G_UNICODE_SCRIPT_NKO,
1899 Self::KayahLi => ffi::G_UNICODE_SCRIPT_KAYAH_LI,
1900 Self::Lepcha => ffi::G_UNICODE_SCRIPT_LEPCHA,
1901 Self::Rejang => ffi::G_UNICODE_SCRIPT_REJANG,
1902 Self::Sundanese => ffi::G_UNICODE_SCRIPT_SUNDANESE,
1903 Self::Saurashtra => ffi::G_UNICODE_SCRIPT_SAURASHTRA,
1904 Self::Cham => ffi::G_UNICODE_SCRIPT_CHAM,
1905 Self::OlChiki => ffi::G_UNICODE_SCRIPT_OL_CHIKI,
1906 Self::Vai => ffi::G_UNICODE_SCRIPT_VAI,
1907 Self::Carian => ffi::G_UNICODE_SCRIPT_CARIAN,
1908 Self::Lycian => ffi::G_UNICODE_SCRIPT_LYCIAN,
1909 Self::Lydian => ffi::G_UNICODE_SCRIPT_LYDIAN,
1910 Self::Avestan => ffi::G_UNICODE_SCRIPT_AVESTAN,
1911 Self::Bamum => ffi::G_UNICODE_SCRIPT_BAMUM,
1912 Self::EgyptianHieroglyphs => ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS,
1913 Self::ImperialAramaic => ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC,
1914 Self::InscriptionalPahlavi => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI,
1915 Self::InscriptionalParthian => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN,
1916 Self::Javanese => ffi::G_UNICODE_SCRIPT_JAVANESE,
1917 Self::Kaithi => ffi::G_UNICODE_SCRIPT_KAITHI,
1918 Self::Lisu => ffi::G_UNICODE_SCRIPT_LISU,
1919 Self::MeeteiMayek => ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK,
1920 Self::OldSouthArabian => ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN,
1921 Self::OldTurkic => ffi::G_UNICODE_SCRIPT_OLD_TURKIC,
1922 Self::Samaritan => ffi::G_UNICODE_SCRIPT_SAMARITAN,
1923 Self::TaiTham => ffi::G_UNICODE_SCRIPT_TAI_THAM,
1924 Self::TaiViet => ffi::G_UNICODE_SCRIPT_TAI_VIET,
1925 Self::Batak => ffi::G_UNICODE_SCRIPT_BATAK,
1926 Self::Brahmi => ffi::G_UNICODE_SCRIPT_BRAHMI,
1927 Self::Mandaic => ffi::G_UNICODE_SCRIPT_MANDAIC,
1928 Self::Chakma => ffi::G_UNICODE_SCRIPT_CHAKMA,
1929 Self::MeroiticCursive => ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE,
1930 Self::MeroiticHieroglyphs => ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS,
1931 Self::Miao => ffi::G_UNICODE_SCRIPT_MIAO,
1932 Self::Sharada => ffi::G_UNICODE_SCRIPT_SHARADA,
1933 Self::SoraSompeng => ffi::G_UNICODE_SCRIPT_SORA_SOMPENG,
1934 Self::Takri => ffi::G_UNICODE_SCRIPT_TAKRI,
1935 Self::BassaVah => ffi::G_UNICODE_SCRIPT_BASSA_VAH,
1936 Self::CaucasianAlbanian => ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN,
1937 Self::Duployan => ffi::G_UNICODE_SCRIPT_DUPLOYAN,
1938 Self::Elbasan => ffi::G_UNICODE_SCRIPT_ELBASAN,
1939 Self::Grantha => ffi::G_UNICODE_SCRIPT_GRANTHA,
1940 Self::Khojki => ffi::G_UNICODE_SCRIPT_KHOJKI,
1941 Self::Khudawadi => ffi::G_UNICODE_SCRIPT_KHUDAWADI,
1942 Self::LinearA => ffi::G_UNICODE_SCRIPT_LINEAR_A,
1943 Self::Mahajani => ffi::G_UNICODE_SCRIPT_MAHAJANI,
1944 Self::Manichaean => ffi::G_UNICODE_SCRIPT_MANICHAEAN,
1945 Self::MendeKikakui => ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI,
1946 Self::Modi => ffi::G_UNICODE_SCRIPT_MODI,
1947 Self::Mro => ffi::G_UNICODE_SCRIPT_MRO,
1948 Self::Nabataean => ffi::G_UNICODE_SCRIPT_NABATAEAN,
1949 Self::OldNorthArabian => ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN,
1950 Self::OldPermic => ffi::G_UNICODE_SCRIPT_OLD_PERMIC,
1951 Self::PahawhHmong => ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG,
1952 Self::Palmyrene => ffi::G_UNICODE_SCRIPT_PALMYRENE,
1953 Self::PauCinHau => ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU,
1954 Self::PsalterPahlavi => ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI,
1955 Self::Siddham => ffi::G_UNICODE_SCRIPT_SIDDHAM,
1956 Self::Tirhuta => ffi::G_UNICODE_SCRIPT_TIRHUTA,
1957 Self::WarangCiti => ffi::G_UNICODE_SCRIPT_WARANG_CITI,
1958 Self::Ahom => ffi::G_UNICODE_SCRIPT_AHOM,
1959 Self::AnatolianHieroglyphs => ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS,
1960 Self::Hatran => ffi::G_UNICODE_SCRIPT_HATRAN,
1961 Self::Multani => ffi::G_UNICODE_SCRIPT_MULTANI,
1962 Self::OldHungarian => ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN,
1963 Self::Signwriting => ffi::G_UNICODE_SCRIPT_SIGNWRITING,
1964 Self::Adlam => ffi::G_UNICODE_SCRIPT_ADLAM,
1965 Self::Bhaiksuki => ffi::G_UNICODE_SCRIPT_BHAIKSUKI,
1966 Self::Marchen => ffi::G_UNICODE_SCRIPT_MARCHEN,
1967 Self::Newa => ffi::G_UNICODE_SCRIPT_NEWA,
1968 Self::Osage => ffi::G_UNICODE_SCRIPT_OSAGE,
1969 Self::Tangut => ffi::G_UNICODE_SCRIPT_TANGUT,
1970 Self::MasaramGondi => ffi::G_UNICODE_SCRIPT_MASARAM_GONDI,
1971 Self::Nushu => ffi::G_UNICODE_SCRIPT_NUSHU,
1972 Self::Soyombo => ffi::G_UNICODE_SCRIPT_SOYOMBO,
1973 Self::ZanabazarSquare => ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE,
1974 Self::Dogra => ffi::G_UNICODE_SCRIPT_DOGRA,
1975 Self::GunjalaGondi => ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI,
1976 Self::HanifiRohingya => ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA,
1977 Self::Makasar => ffi::G_UNICODE_SCRIPT_MAKASAR,
1978 Self::Medefaidrin => ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN,
1979 Self::OldSogdian => ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN,
1980 Self::Sogdian => ffi::G_UNICODE_SCRIPT_SOGDIAN,
1981 Self::Elymaic => ffi::G_UNICODE_SCRIPT_ELYMAIC,
1982 Self::Nandinagari => ffi::G_UNICODE_SCRIPT_NANDINAGARI,
1983 Self::NyiakengPuachueHmong => ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG,
1984 Self::Wancho => ffi::G_UNICODE_SCRIPT_WANCHO,
1985 Self::Chorasmian => ffi::G_UNICODE_SCRIPT_CHORASMIAN,
1986 Self::DivesAkuru => ffi::G_UNICODE_SCRIPT_DIVES_AKURU,
1987 Self::KhitanSmallScript => ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,
1988 Self::Yezidi => ffi::G_UNICODE_SCRIPT_YEZIDI,
1989 #[cfg(feature = "v2_72")]
1990 Self::CyproMinoan => ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN,
1991 #[cfg(feature = "v2_72")]
1992 Self::OldUyghur => ffi::G_UNICODE_SCRIPT_OLD_UYGHUR,
1993 #[cfg(feature = "v2_72")]
1994 Self::Tangsa => ffi::G_UNICODE_SCRIPT_TANGSA,
1995 #[cfg(feature = "v2_72")]
1996 Self::Toto => ffi::G_UNICODE_SCRIPT_TOTO,
1997 #[cfg(feature = "v2_72")]
1998 Self::Vithkuqi => ffi::G_UNICODE_SCRIPT_VITHKUQI,
1999 #[cfg(feature = "v2_72")]
2000 Self::Math => ffi::G_UNICODE_SCRIPT_MATH,
2001 #[cfg(feature = "v2_74")]
2002 Self::Kawi => ffi::G_UNICODE_SCRIPT_KAWI,
2003 #[cfg(feature = "v2_74")]
2004 Self::NagMundari => ffi::G_UNICODE_SCRIPT_NAG_MUNDARI,
2005 #[cfg(feature = "v2_84")]
2006 Self::Todhri => ffi::G_UNICODE_SCRIPT_TODHRI,
2007 #[cfg(feature = "v2_84")]
2008 Self::Garay => ffi::G_UNICODE_SCRIPT_GARAY,
2009 #[cfg(feature = "v2_84")]
2010 Self::TuluTigalari => ffi::G_UNICODE_SCRIPT_TULU_TIGALARI,
2011 #[cfg(feature = "v2_84")]
2012 Self::Sunuwar => ffi::G_UNICODE_SCRIPT_SUNUWAR,
2013 #[cfg(feature = "v2_84")]
2014 Self::GurungKhema => ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA,
2015 #[cfg(feature = "v2_84")]
2016 Self::KiratRai => ffi::G_UNICODE_SCRIPT_KIRAT_RAI,
2017 #[cfg(feature = "v2_84")]
2018 Self::OlOnal => ffi::G_UNICODE_SCRIPT_OL_ONAL,
2019 Self::Sidetic => ffi::G_UNICODE_SCRIPT_SIDETIC,
2020 Self::TolongSiki => ffi::G_UNICODE_SCRIPT_TOLONG_SIKI,
2021 Self::TaiYo => ffi::G_UNICODE_SCRIPT_TAI_YO,
2022 Self::BeriaErfe => ffi::G_UNICODE_SCRIPT_BERIA_ERFE,
2023 Self::__Unknown(value) => value,
2024 }
2025 }
2026}
2027
2028#[doc(hidden)]
2029impl FromGlib<ffi::GUnicodeScript> for UnicodeScript {
2030 unsafe fn from_glib(value: ffi::GUnicodeScript) -> Self {
2031 match value {
2032 ffi::G_UNICODE_SCRIPT_INVALID_CODE => Self::InvalidCode,
2033 ffi::G_UNICODE_SCRIPT_COMMON => Self::Common,
2034 ffi::G_UNICODE_SCRIPT_INHERITED => Self::Inherited,
2035 ffi::G_UNICODE_SCRIPT_ARABIC => Self::Arabic,
2036 ffi::G_UNICODE_SCRIPT_ARMENIAN => Self::Armenian,
2037 ffi::G_UNICODE_SCRIPT_BENGALI => Self::Bengali,
2038 ffi::G_UNICODE_SCRIPT_BOPOMOFO => Self::Bopomofo,
2039 ffi::G_UNICODE_SCRIPT_CHEROKEE => Self::Cherokee,
2040 ffi::G_UNICODE_SCRIPT_COPTIC => Self::Coptic,
2041 ffi::G_UNICODE_SCRIPT_CYRILLIC => Self::Cyrillic,
2042 ffi::G_UNICODE_SCRIPT_DESERET => Self::Deseret,
2043 ffi::G_UNICODE_SCRIPT_DEVANAGARI => Self::Devanagari,
2044 ffi::G_UNICODE_SCRIPT_ETHIOPIC => Self::Ethiopic,
2045 ffi::G_UNICODE_SCRIPT_GEORGIAN => Self::Georgian,
2046 ffi::G_UNICODE_SCRIPT_GOTHIC => Self::Gothic,
2047 ffi::G_UNICODE_SCRIPT_GREEK => Self::Greek,
2048 ffi::G_UNICODE_SCRIPT_GUJARATI => Self::Gujarati,
2049 ffi::G_UNICODE_SCRIPT_GURMUKHI => Self::Gurmukhi,
2050 ffi::G_UNICODE_SCRIPT_HAN => Self::Han,
2051 ffi::G_UNICODE_SCRIPT_HANGUL => Self::Hangul,
2052 ffi::G_UNICODE_SCRIPT_HEBREW => Self::Hebrew,
2053 ffi::G_UNICODE_SCRIPT_HIRAGANA => Self::Hiragana,
2054 ffi::G_UNICODE_SCRIPT_KANNADA => Self::Kannada,
2055 ffi::G_UNICODE_SCRIPT_KATAKANA => Self::Katakana,
2056 ffi::G_UNICODE_SCRIPT_KHMER => Self::Khmer,
2057 ffi::G_UNICODE_SCRIPT_LAO => Self::Lao,
2058 ffi::G_UNICODE_SCRIPT_LATIN => Self::Latin,
2059 ffi::G_UNICODE_SCRIPT_MALAYALAM => Self::Malayalam,
2060 ffi::G_UNICODE_SCRIPT_MONGOLIAN => Self::Mongolian,
2061 ffi::G_UNICODE_SCRIPT_MYANMAR => Self::Myanmar,
2062 ffi::G_UNICODE_SCRIPT_OGHAM => Self::Ogham,
2063 ffi::G_UNICODE_SCRIPT_OLD_ITALIC => Self::OldItalic,
2064 ffi::G_UNICODE_SCRIPT_ORIYA => Self::Oriya,
2065 ffi::G_UNICODE_SCRIPT_RUNIC => Self::Runic,
2066 ffi::G_UNICODE_SCRIPT_SINHALA => Self::Sinhala,
2067 ffi::G_UNICODE_SCRIPT_SYRIAC => Self::Syriac,
2068 ffi::G_UNICODE_SCRIPT_TAMIL => Self::Tamil,
2069 ffi::G_UNICODE_SCRIPT_TELUGU => Self::Telugu,
2070 ffi::G_UNICODE_SCRIPT_THAANA => Self::Thaana,
2071 ffi::G_UNICODE_SCRIPT_THAI => Self::Thai,
2072 ffi::G_UNICODE_SCRIPT_TIBETAN => Self::Tibetan,
2073 ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2074 ffi::G_UNICODE_SCRIPT_YI => Self::Yi,
2075 ffi::G_UNICODE_SCRIPT_TAGALOG => Self::Tagalog,
2076 ffi::G_UNICODE_SCRIPT_HANUNOO => Self::Hanunoo,
2077 ffi::G_UNICODE_SCRIPT_BUHID => Self::Buhid,
2078 ffi::G_UNICODE_SCRIPT_TAGBANWA => Self::Tagbanwa,
2079 ffi::G_UNICODE_SCRIPT_BRAILLE => Self::Braille,
2080 ffi::G_UNICODE_SCRIPT_CYPRIOT => Self::Cypriot,
2081 ffi::G_UNICODE_SCRIPT_LIMBU => Self::Limbu,
2082 ffi::G_UNICODE_SCRIPT_OSMANYA => Self::Osmanya,
2083 ffi::G_UNICODE_SCRIPT_SHAVIAN => Self::Shavian,
2084 ffi::G_UNICODE_SCRIPT_LINEAR_B => Self::LinearB,
2085 ffi::G_UNICODE_SCRIPT_TAI_LE => Self::TaiLe,
2086 ffi::G_UNICODE_SCRIPT_UGARITIC => Self::Ugaritic,
2087 ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2088 ffi::G_UNICODE_SCRIPT_BUGINESE => Self::Buginese,
2089 ffi::G_UNICODE_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2090 ffi::G_UNICODE_SCRIPT_TIFINAGH => Self::Tifinagh,
2091 ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2092 ffi::G_UNICODE_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2093 ffi::G_UNICODE_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2094 ffi::G_UNICODE_SCRIPT_UNKNOWN => Self::Unknown,
2095 ffi::G_UNICODE_SCRIPT_BALINESE => Self::Balinese,
2096 ffi::G_UNICODE_SCRIPT_CUNEIFORM => Self::Cuneiform,
2097 ffi::G_UNICODE_SCRIPT_PHOENICIAN => Self::Phoenician,
2098 ffi::G_UNICODE_SCRIPT_PHAGS_PA => Self::PhagsPa,
2099 ffi::G_UNICODE_SCRIPT_NKO => Self::Nko,
2100 ffi::G_UNICODE_SCRIPT_KAYAH_LI => Self::KayahLi,
2101 ffi::G_UNICODE_SCRIPT_LEPCHA => Self::Lepcha,
2102 ffi::G_UNICODE_SCRIPT_REJANG => Self::Rejang,
2103 ffi::G_UNICODE_SCRIPT_SUNDANESE => Self::Sundanese,
2104 ffi::G_UNICODE_SCRIPT_SAURASHTRA => Self::Saurashtra,
2105 ffi::G_UNICODE_SCRIPT_CHAM => Self::Cham,
2106 ffi::G_UNICODE_SCRIPT_OL_CHIKI => Self::OlChiki,
2107 ffi::G_UNICODE_SCRIPT_VAI => Self::Vai,
2108 ffi::G_UNICODE_SCRIPT_CARIAN => Self::Carian,
2109 ffi::G_UNICODE_SCRIPT_LYCIAN => Self::Lycian,
2110 ffi::G_UNICODE_SCRIPT_LYDIAN => Self::Lydian,
2111 ffi::G_UNICODE_SCRIPT_AVESTAN => Self::Avestan,
2112 ffi::G_UNICODE_SCRIPT_BAMUM => Self::Bamum,
2113 ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS => Self::EgyptianHieroglyphs,
2114 ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC => Self::ImperialAramaic,
2115 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI => Self::InscriptionalPahlavi,
2116 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN => Self::InscriptionalParthian,
2117 ffi::G_UNICODE_SCRIPT_JAVANESE => Self::Javanese,
2118 ffi::G_UNICODE_SCRIPT_KAITHI => Self::Kaithi,
2119 ffi::G_UNICODE_SCRIPT_LISU => Self::Lisu,
2120 ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK => Self::MeeteiMayek,
2121 ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN => Self::OldSouthArabian,
2122 ffi::G_UNICODE_SCRIPT_OLD_TURKIC => Self::OldTurkic,
2123 ffi::G_UNICODE_SCRIPT_SAMARITAN => Self::Samaritan,
2124 ffi::G_UNICODE_SCRIPT_TAI_THAM => Self::TaiTham,
2125 ffi::G_UNICODE_SCRIPT_TAI_VIET => Self::TaiViet,
2126 ffi::G_UNICODE_SCRIPT_BATAK => Self::Batak,
2127 ffi::G_UNICODE_SCRIPT_BRAHMI => Self::Brahmi,
2128 ffi::G_UNICODE_SCRIPT_MANDAIC => Self::Mandaic,
2129 ffi::G_UNICODE_SCRIPT_CHAKMA => Self::Chakma,
2130 ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2131 ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2132 ffi::G_UNICODE_SCRIPT_MIAO => Self::Miao,
2133 ffi::G_UNICODE_SCRIPT_SHARADA => Self::Sharada,
2134 ffi::G_UNICODE_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2135 ffi::G_UNICODE_SCRIPT_TAKRI => Self::Takri,
2136 ffi::G_UNICODE_SCRIPT_BASSA_VAH => Self::BassaVah,
2137 ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2138 ffi::G_UNICODE_SCRIPT_DUPLOYAN => Self::Duployan,
2139 ffi::G_UNICODE_SCRIPT_ELBASAN => Self::Elbasan,
2140 ffi::G_UNICODE_SCRIPT_GRANTHA => Self::Grantha,
2141 ffi::G_UNICODE_SCRIPT_KHOJKI => Self::Khojki,
2142 ffi::G_UNICODE_SCRIPT_KHUDAWADI => Self::Khudawadi,
2143 ffi::G_UNICODE_SCRIPT_LINEAR_A => Self::LinearA,
2144 ffi::G_UNICODE_SCRIPT_MAHAJANI => Self::Mahajani,
2145 ffi::G_UNICODE_SCRIPT_MANICHAEAN => Self::Manichaean,
2146 ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2147 ffi::G_UNICODE_SCRIPT_MODI => Self::Modi,
2148 ffi::G_UNICODE_SCRIPT_MRO => Self::Mro,
2149 ffi::G_UNICODE_SCRIPT_NABATAEAN => Self::Nabataean,
2150 ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2151 ffi::G_UNICODE_SCRIPT_OLD_PERMIC => Self::OldPermic,
2152 ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2153 ffi::G_UNICODE_SCRIPT_PALMYRENE => Self::Palmyrene,
2154 ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2155 ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2156 ffi::G_UNICODE_SCRIPT_SIDDHAM => Self::Siddham,
2157 ffi::G_UNICODE_SCRIPT_TIRHUTA => Self::Tirhuta,
2158 ffi::G_UNICODE_SCRIPT_WARANG_CITI => Self::WarangCiti,
2159 ffi::G_UNICODE_SCRIPT_AHOM => Self::Ahom,
2160 ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2161 ffi::G_UNICODE_SCRIPT_HATRAN => Self::Hatran,
2162 ffi::G_UNICODE_SCRIPT_MULTANI => Self::Multani,
2163 ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2164 ffi::G_UNICODE_SCRIPT_SIGNWRITING => Self::Signwriting,
2165 ffi::G_UNICODE_SCRIPT_ADLAM => Self::Adlam,
2166 ffi::G_UNICODE_SCRIPT_BHAIKSUKI => Self::Bhaiksuki,
2167 ffi::G_UNICODE_SCRIPT_MARCHEN => Self::Marchen,
2168 ffi::G_UNICODE_SCRIPT_NEWA => Self::Newa,
2169 ffi::G_UNICODE_SCRIPT_OSAGE => Self::Osage,
2170 ffi::G_UNICODE_SCRIPT_TANGUT => Self::Tangut,
2171 ffi::G_UNICODE_SCRIPT_MASARAM_GONDI => Self::MasaramGondi,
2172 ffi::G_UNICODE_SCRIPT_NUSHU => Self::Nushu,
2173 ffi::G_UNICODE_SCRIPT_SOYOMBO => Self::Soyombo,
2174 ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE => Self::ZanabazarSquare,
2175 ffi::G_UNICODE_SCRIPT_DOGRA => Self::Dogra,
2176 ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI => Self::GunjalaGondi,
2177 ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA => Self::HanifiRohingya,
2178 ffi::G_UNICODE_SCRIPT_MAKASAR => Self::Makasar,
2179 ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN => Self::Medefaidrin,
2180 ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN => Self::OldSogdian,
2181 ffi::G_UNICODE_SCRIPT_SOGDIAN => Self::Sogdian,
2182 ffi::G_UNICODE_SCRIPT_ELYMAIC => Self::Elymaic,
2183 ffi::G_UNICODE_SCRIPT_NANDINAGARI => Self::Nandinagari,
2184 ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG => Self::NyiakengPuachueHmong,
2185 ffi::G_UNICODE_SCRIPT_WANCHO => Self::Wancho,
2186 ffi::G_UNICODE_SCRIPT_CHORASMIAN => Self::Chorasmian,
2187 ffi::G_UNICODE_SCRIPT_DIVES_AKURU => Self::DivesAkuru,
2188 ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT => Self::KhitanSmallScript,
2189 ffi::G_UNICODE_SCRIPT_YEZIDI => Self::Yezidi,
2190 #[cfg(feature = "v2_72")]
2191 ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN => Self::CyproMinoan,
2192 #[cfg(feature = "v2_72")]
2193 ffi::G_UNICODE_SCRIPT_OLD_UYGHUR => Self::OldUyghur,
2194 #[cfg(feature = "v2_72")]
2195 ffi::G_UNICODE_SCRIPT_TANGSA => Self::Tangsa,
2196 #[cfg(feature = "v2_72")]
2197 ffi::G_UNICODE_SCRIPT_TOTO => Self::Toto,
2198 #[cfg(feature = "v2_72")]
2199 ffi::G_UNICODE_SCRIPT_VITHKUQI => Self::Vithkuqi,
2200 #[cfg(feature = "v2_72")]
2201 ffi::G_UNICODE_SCRIPT_MATH => Self::Math,
2202 #[cfg(feature = "v2_74")]
2203 ffi::G_UNICODE_SCRIPT_KAWI => Self::Kawi,
2204 #[cfg(feature = "v2_74")]
2205 ffi::G_UNICODE_SCRIPT_NAG_MUNDARI => Self::NagMundari,
2206 #[cfg(feature = "v2_84")]
2207 ffi::G_UNICODE_SCRIPT_TODHRI => Self::Todhri,
2208 #[cfg(feature = "v2_84")]
2209 ffi::G_UNICODE_SCRIPT_GARAY => Self::Garay,
2210 #[cfg(feature = "v2_84")]
2211 ffi::G_UNICODE_SCRIPT_TULU_TIGALARI => Self::TuluTigalari,
2212 #[cfg(feature = "v2_84")]
2213 ffi::G_UNICODE_SCRIPT_SUNUWAR => Self::Sunuwar,
2214 #[cfg(feature = "v2_84")]
2215 ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA => Self::GurungKhema,
2216 #[cfg(feature = "v2_84")]
2217 ffi::G_UNICODE_SCRIPT_KIRAT_RAI => Self::KiratRai,
2218 #[cfg(feature = "v2_84")]
2219 ffi::G_UNICODE_SCRIPT_OL_ONAL => Self::OlOnal,
2220 ffi::G_UNICODE_SCRIPT_SIDETIC => Self::Sidetic,
2221 ffi::G_UNICODE_SCRIPT_TOLONG_SIKI => Self::TolongSiki,
2222 ffi::G_UNICODE_SCRIPT_TAI_YO => Self::TaiYo,
2223 ffi::G_UNICODE_SCRIPT_BERIA_ERFE => Self::BeriaErfe,
2224 value => Self::__Unknown(value),
2225 }
2226 }
2227}
2228
2229impl StaticType for UnicodeScript {
2230 #[inline]
2231 #[doc(alias = "g_unicode_script_get_type")]
2232 fn static_type() -> crate::Type {
2233 unsafe { from_glib(ffi::g_unicode_script_get_type()) }
2234 }
2235}
2236
2237impl crate::HasParamSpec for UnicodeScript {
2238 type ParamSpec = crate::ParamSpecEnum;
2239 type SetValue = Self;
2240 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2241
2242 fn param_spec_builder() -> Self::BuilderFn {
2243 Self::ParamSpec::builder_with_default
2244 }
2245}
2246
2247impl crate::value::ValueType for UnicodeScript {
2248 type Type = Self;
2249}
2250
2251unsafe impl<'a> crate::value::FromValue<'a> for UnicodeScript {
2252 type Checker = crate::value::GenericValueTypeChecker<Self>;
2253
2254 #[inline]
2255 unsafe fn from_value(value: &'a crate::Value) -> Self {
2256 unsafe { from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2257 }
2258}
2259
2260impl ToValue for UnicodeScript {
2261 #[inline]
2262 fn to_value(&self) -> crate::Value {
2263 let mut value = crate::Value::for_value_type::<Self>();
2264 unsafe {
2265 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2266 }
2267 value
2268 }
2269
2270 #[inline]
2271 fn value_type(&self) -> crate::Type {
2272 Self::static_type()
2273 }
2274}
2275
2276impl From<UnicodeScript> for crate::Value {
2277 #[inline]
2278 fn from(v: UnicodeScript) -> Self {
2279 ToValue::to_value(&v)
2280 }
2281}
2282
2283#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2287#[non_exhaustive]
2288#[doc(alias = "GUnicodeType")]
2289pub enum UnicodeType {
2290 #[doc(alias = "G_UNICODE_CONTROL")]
2292 Control,
2293 #[doc(alias = "G_UNICODE_FORMAT")]
2295 Format,
2296 #[doc(alias = "G_UNICODE_UNASSIGNED")]
2298 Unassigned,
2299 #[doc(alias = "G_UNICODE_PRIVATE_USE")]
2301 PrivateUse,
2302 #[doc(alias = "G_UNICODE_SURROGATE")]
2304 Surrogate,
2305 #[doc(alias = "G_UNICODE_LOWERCASE_LETTER")]
2307 LowercaseLetter,
2308 #[doc(alias = "G_UNICODE_MODIFIER_LETTER")]
2310 ModifierLetter,
2311 #[doc(alias = "G_UNICODE_OTHER_LETTER")]
2313 OtherLetter,
2314 #[doc(alias = "G_UNICODE_TITLECASE_LETTER")]
2316 TitlecaseLetter,
2317 #[doc(alias = "G_UNICODE_UPPERCASE_LETTER")]
2319 UppercaseLetter,
2320 #[doc(alias = "G_UNICODE_SPACING_MARK")]
2322 SpacingMark,
2323 #[doc(alias = "G_UNICODE_ENCLOSING_MARK")]
2325 EnclosingMark,
2326 #[doc(alias = "G_UNICODE_NON_SPACING_MARK")]
2328 NonSpacingMark,
2329 #[doc(alias = "G_UNICODE_DECIMAL_NUMBER")]
2331 DecimalNumber,
2332 #[doc(alias = "G_UNICODE_LETTER_NUMBER")]
2334 LetterNumber,
2335 #[doc(alias = "G_UNICODE_OTHER_NUMBER")]
2337 OtherNumber,
2338 #[doc(alias = "G_UNICODE_CONNECT_PUNCTUATION")]
2340 ConnectPunctuation,
2341 #[doc(alias = "G_UNICODE_DASH_PUNCTUATION")]
2343 DashPunctuation,
2344 #[doc(alias = "G_UNICODE_CLOSE_PUNCTUATION")]
2346 ClosePunctuation,
2347 #[doc(alias = "G_UNICODE_FINAL_PUNCTUATION")]
2349 FinalPunctuation,
2350 #[doc(alias = "G_UNICODE_INITIAL_PUNCTUATION")]
2352 InitialPunctuation,
2353 #[doc(alias = "G_UNICODE_OTHER_PUNCTUATION")]
2355 OtherPunctuation,
2356 #[doc(alias = "G_UNICODE_OPEN_PUNCTUATION")]
2358 OpenPunctuation,
2359 #[doc(alias = "G_UNICODE_CURRENCY_SYMBOL")]
2361 CurrencySymbol,
2362 #[doc(alias = "G_UNICODE_MODIFIER_SYMBOL")]
2364 ModifierSymbol,
2365 #[doc(alias = "G_UNICODE_MATH_SYMBOL")]
2367 MathSymbol,
2368 #[doc(alias = "G_UNICODE_OTHER_SYMBOL")]
2370 OtherSymbol,
2371 #[doc(alias = "G_UNICODE_LINE_SEPARATOR")]
2373 LineSeparator,
2374 #[doc(alias = "G_UNICODE_PARAGRAPH_SEPARATOR")]
2376 ParagraphSeparator,
2377 #[doc(alias = "G_UNICODE_SPACE_SEPARATOR")]
2379 SpaceSeparator,
2380 #[doc(hidden)]
2381 __Unknown(i32),
2382}
2383
2384#[doc(hidden)]
2385impl IntoGlib for UnicodeType {
2386 type GlibType = ffi::GUnicodeType;
2387
2388 fn into_glib(self) -> ffi::GUnicodeType {
2389 match self {
2390 Self::Control => ffi::G_UNICODE_CONTROL,
2391 Self::Format => ffi::G_UNICODE_FORMAT,
2392 Self::Unassigned => ffi::G_UNICODE_UNASSIGNED,
2393 Self::PrivateUse => ffi::G_UNICODE_PRIVATE_USE,
2394 Self::Surrogate => ffi::G_UNICODE_SURROGATE,
2395 Self::LowercaseLetter => ffi::G_UNICODE_LOWERCASE_LETTER,
2396 Self::ModifierLetter => ffi::G_UNICODE_MODIFIER_LETTER,
2397 Self::OtherLetter => ffi::G_UNICODE_OTHER_LETTER,
2398 Self::TitlecaseLetter => ffi::G_UNICODE_TITLECASE_LETTER,
2399 Self::UppercaseLetter => ffi::G_UNICODE_UPPERCASE_LETTER,
2400 Self::SpacingMark => ffi::G_UNICODE_SPACING_MARK,
2401 Self::EnclosingMark => ffi::G_UNICODE_ENCLOSING_MARK,
2402 Self::NonSpacingMark => ffi::G_UNICODE_NON_SPACING_MARK,
2403 Self::DecimalNumber => ffi::G_UNICODE_DECIMAL_NUMBER,
2404 Self::LetterNumber => ffi::G_UNICODE_LETTER_NUMBER,
2405 Self::OtherNumber => ffi::G_UNICODE_OTHER_NUMBER,
2406 Self::ConnectPunctuation => ffi::G_UNICODE_CONNECT_PUNCTUATION,
2407 Self::DashPunctuation => ffi::G_UNICODE_DASH_PUNCTUATION,
2408 Self::ClosePunctuation => ffi::G_UNICODE_CLOSE_PUNCTUATION,
2409 Self::FinalPunctuation => ffi::G_UNICODE_FINAL_PUNCTUATION,
2410 Self::InitialPunctuation => ffi::G_UNICODE_INITIAL_PUNCTUATION,
2411 Self::OtherPunctuation => ffi::G_UNICODE_OTHER_PUNCTUATION,
2412 Self::OpenPunctuation => ffi::G_UNICODE_OPEN_PUNCTUATION,
2413 Self::CurrencySymbol => ffi::G_UNICODE_CURRENCY_SYMBOL,
2414 Self::ModifierSymbol => ffi::G_UNICODE_MODIFIER_SYMBOL,
2415 Self::MathSymbol => ffi::G_UNICODE_MATH_SYMBOL,
2416 Self::OtherSymbol => ffi::G_UNICODE_OTHER_SYMBOL,
2417 Self::LineSeparator => ffi::G_UNICODE_LINE_SEPARATOR,
2418 Self::ParagraphSeparator => ffi::G_UNICODE_PARAGRAPH_SEPARATOR,
2419 Self::SpaceSeparator => ffi::G_UNICODE_SPACE_SEPARATOR,
2420 Self::__Unknown(value) => value,
2421 }
2422 }
2423}
2424
2425#[doc(hidden)]
2426impl FromGlib<ffi::GUnicodeType> for UnicodeType {
2427 unsafe fn from_glib(value: ffi::GUnicodeType) -> Self {
2428 match value {
2429 ffi::G_UNICODE_CONTROL => Self::Control,
2430 ffi::G_UNICODE_FORMAT => Self::Format,
2431 ffi::G_UNICODE_UNASSIGNED => Self::Unassigned,
2432 ffi::G_UNICODE_PRIVATE_USE => Self::PrivateUse,
2433 ffi::G_UNICODE_SURROGATE => Self::Surrogate,
2434 ffi::G_UNICODE_LOWERCASE_LETTER => Self::LowercaseLetter,
2435 ffi::G_UNICODE_MODIFIER_LETTER => Self::ModifierLetter,
2436 ffi::G_UNICODE_OTHER_LETTER => Self::OtherLetter,
2437 ffi::G_UNICODE_TITLECASE_LETTER => Self::TitlecaseLetter,
2438 ffi::G_UNICODE_UPPERCASE_LETTER => Self::UppercaseLetter,
2439 ffi::G_UNICODE_SPACING_MARK => Self::SpacingMark,
2440 ffi::G_UNICODE_ENCLOSING_MARK => Self::EnclosingMark,
2441 ffi::G_UNICODE_NON_SPACING_MARK => Self::NonSpacingMark,
2442 ffi::G_UNICODE_DECIMAL_NUMBER => Self::DecimalNumber,
2443 ffi::G_UNICODE_LETTER_NUMBER => Self::LetterNumber,
2444 ffi::G_UNICODE_OTHER_NUMBER => Self::OtherNumber,
2445 ffi::G_UNICODE_CONNECT_PUNCTUATION => Self::ConnectPunctuation,
2446 ffi::G_UNICODE_DASH_PUNCTUATION => Self::DashPunctuation,
2447 ffi::G_UNICODE_CLOSE_PUNCTUATION => Self::ClosePunctuation,
2448 ffi::G_UNICODE_FINAL_PUNCTUATION => Self::FinalPunctuation,
2449 ffi::G_UNICODE_INITIAL_PUNCTUATION => Self::InitialPunctuation,
2450 ffi::G_UNICODE_OTHER_PUNCTUATION => Self::OtherPunctuation,
2451 ffi::G_UNICODE_OPEN_PUNCTUATION => Self::OpenPunctuation,
2452 ffi::G_UNICODE_CURRENCY_SYMBOL => Self::CurrencySymbol,
2453 ffi::G_UNICODE_MODIFIER_SYMBOL => Self::ModifierSymbol,
2454 ffi::G_UNICODE_MATH_SYMBOL => Self::MathSymbol,
2455 ffi::G_UNICODE_OTHER_SYMBOL => Self::OtherSymbol,
2456 ffi::G_UNICODE_LINE_SEPARATOR => Self::LineSeparator,
2457 ffi::G_UNICODE_PARAGRAPH_SEPARATOR => Self::ParagraphSeparator,
2458 ffi::G_UNICODE_SPACE_SEPARATOR => Self::SpaceSeparator,
2459 value => Self::__Unknown(value),
2460 }
2461 }
2462}
2463
2464impl StaticType for UnicodeType {
2465 #[inline]
2466 #[doc(alias = "g_unicode_type_get_type")]
2467 fn static_type() -> crate::Type {
2468 unsafe { from_glib(ffi::g_unicode_type_get_type()) }
2469 }
2470}
2471
2472impl crate::HasParamSpec for UnicodeType {
2473 type ParamSpec = crate::ParamSpecEnum;
2474 type SetValue = Self;
2475 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2476
2477 fn param_spec_builder() -> Self::BuilderFn {
2478 Self::ParamSpec::builder_with_default
2479 }
2480}
2481
2482impl crate::value::ValueType for UnicodeType {
2483 type Type = Self;
2484}
2485
2486unsafe impl<'a> crate::value::FromValue<'a> for UnicodeType {
2487 type Checker = crate::value::GenericValueTypeChecker<Self>;
2488
2489 #[inline]
2490 unsafe fn from_value(value: &'a crate::Value) -> Self {
2491 unsafe { from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0)) }
2492 }
2493}
2494
2495impl ToValue for UnicodeType {
2496 #[inline]
2497 fn to_value(&self) -> crate::Value {
2498 let mut value = crate::Value::for_value_type::<Self>();
2499 unsafe {
2500 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2501 }
2502 value
2503 }
2504
2505 #[inline]
2506 fn value_type(&self) -> crate::Type {
2507 Self::static_type()
2508 }
2509}
2510
2511impl From<UnicodeType> for crate::Value {
2512 #[inline]
2513 fn from(v: UnicodeType) -> Self {
2514 ToValue::to_value(&v)
2515 }
2516}
2517
2518#[cfg(feature = "v2_66")]
2520#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2521#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2522#[non_exhaustive]
2523#[doc(alias = "GUriError")]
2524pub enum UriError {
2525 #[doc(alias = "G_URI_ERROR_FAILED")]
2528 Failed,
2529 #[doc(alias = "G_URI_ERROR_BAD_SCHEME")]
2531 BadScheme,
2532 #[doc(alias = "G_URI_ERROR_BAD_USER")]
2534 BadUser,
2535 #[doc(alias = "G_URI_ERROR_BAD_PASSWORD")]
2537 BadPassword,
2538 #[doc(alias = "G_URI_ERROR_BAD_AUTH_PARAMS")]
2540 BadAuthParams,
2541 #[doc(alias = "G_URI_ERROR_BAD_HOST")]
2543 BadHost,
2544 #[doc(alias = "G_URI_ERROR_BAD_PORT")]
2546 BadPort,
2547 #[doc(alias = "G_URI_ERROR_BAD_PATH")]
2549 BadPath,
2550 #[doc(alias = "G_URI_ERROR_BAD_QUERY")]
2552 BadQuery,
2553 #[doc(alias = "G_URI_ERROR_BAD_FRAGMENT")]
2555 BadFragment,
2556 #[doc(hidden)]
2557 __Unknown(i32),
2558}
2559
2560#[cfg(feature = "v2_66")]
2561#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2562#[doc(hidden)]
2563impl IntoGlib for UriError {
2564 type GlibType = ffi::GUriError;
2565
2566 #[inline]
2567 fn into_glib(self) -> ffi::GUriError {
2568 match self {
2569 Self::Failed => ffi::G_URI_ERROR_FAILED,
2570 Self::BadScheme => ffi::G_URI_ERROR_BAD_SCHEME,
2571 Self::BadUser => ffi::G_URI_ERROR_BAD_USER,
2572 Self::BadPassword => ffi::G_URI_ERROR_BAD_PASSWORD,
2573 Self::BadAuthParams => ffi::G_URI_ERROR_BAD_AUTH_PARAMS,
2574 Self::BadHost => ffi::G_URI_ERROR_BAD_HOST,
2575 Self::BadPort => ffi::G_URI_ERROR_BAD_PORT,
2576 Self::BadPath => ffi::G_URI_ERROR_BAD_PATH,
2577 Self::BadQuery => ffi::G_URI_ERROR_BAD_QUERY,
2578 Self::BadFragment => ffi::G_URI_ERROR_BAD_FRAGMENT,
2579 Self::__Unknown(value) => value,
2580 }
2581 }
2582}
2583
2584#[cfg(feature = "v2_66")]
2585#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2586#[doc(hidden)]
2587impl FromGlib<ffi::GUriError> for UriError {
2588 #[inline]
2589 unsafe fn from_glib(value: ffi::GUriError) -> Self {
2590 match value {
2591 ffi::G_URI_ERROR_FAILED => Self::Failed,
2592 ffi::G_URI_ERROR_BAD_SCHEME => Self::BadScheme,
2593 ffi::G_URI_ERROR_BAD_USER => Self::BadUser,
2594 ffi::G_URI_ERROR_BAD_PASSWORD => Self::BadPassword,
2595 ffi::G_URI_ERROR_BAD_AUTH_PARAMS => Self::BadAuthParams,
2596 ffi::G_URI_ERROR_BAD_HOST => Self::BadHost,
2597 ffi::G_URI_ERROR_BAD_PORT => Self::BadPort,
2598 ffi::G_URI_ERROR_BAD_PATH => Self::BadPath,
2599 ffi::G_URI_ERROR_BAD_QUERY => Self::BadQuery,
2600 ffi::G_URI_ERROR_BAD_FRAGMENT => Self::BadFragment,
2601 value => Self::__Unknown(value),
2602 }
2603 }
2604}
2605
2606#[cfg(feature = "v2_66")]
2607#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2608impl crate::error::ErrorDomain for UriError {
2609 #[inline]
2610 fn domain() -> crate::Quark {
2611 unsafe { from_glib(ffi::g_uri_error_quark()) }
2612 }
2613
2614 #[inline]
2615 fn code(self) -> i32 {
2616 self.into_glib()
2617 }
2618
2619 #[inline]
2620 #[allow(clippy::match_single_binding)]
2621 fn from(code: i32) -> Option<Self> {
2622 match unsafe { from_glib(code) } {
2623 Self::__Unknown(_) => Some(Self::Failed),
2624 value => Some(value),
2625 }
2626 }
2627}
2628
2629#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2631#[non_exhaustive]
2632#[doc(alias = "GVariantClass")]
2633pub enum VariantClass {
2634 #[doc(alias = "G_VARIANT_CLASS_BOOLEAN")]
2636 Boolean,
2637 #[doc(alias = "G_VARIANT_CLASS_BYTE")]
2639 Byte,
2640 #[doc(alias = "G_VARIANT_CLASS_INT16")]
2642 Int16,
2643 #[doc(alias = "G_VARIANT_CLASS_UINT16")]
2645 Uint16,
2646 #[doc(alias = "G_VARIANT_CLASS_INT32")]
2648 Int32,
2649 #[doc(alias = "G_VARIANT_CLASS_UINT32")]
2651 Uint32,
2652 #[doc(alias = "G_VARIANT_CLASS_INT64")]
2654 Int64,
2655 #[doc(alias = "G_VARIANT_CLASS_UINT64")]
2657 Uint64,
2658 #[doc(alias = "G_VARIANT_CLASS_HANDLE")]
2660 Handle,
2661 #[doc(alias = "G_VARIANT_CLASS_DOUBLE")]
2664 Double,
2665 #[doc(alias = "G_VARIANT_CLASS_STRING")]
2667 String,
2668 #[doc(alias = "G_VARIANT_CLASS_OBJECT_PATH")]
2671 ObjectPath,
2672 #[doc(alias = "G_VARIANT_CLASS_SIGNATURE")]
2674 Signature,
2675 #[doc(alias = "G_VARIANT_CLASS_VARIANT")]
2677 Variant,
2678 #[doc(alias = "G_VARIANT_CLASS_MAYBE")]
2680 Maybe,
2681 #[doc(alias = "G_VARIANT_CLASS_ARRAY")]
2683 Array,
2684 #[doc(alias = "G_VARIANT_CLASS_TUPLE")]
2686 Tuple,
2687 #[doc(alias = "G_VARIANT_CLASS_DICT_ENTRY")]
2689 DictEntry,
2690 #[doc(hidden)]
2691 __Unknown(i32),
2692}
2693
2694#[doc(hidden)]
2695impl IntoGlib for VariantClass {
2696 type GlibType = ffi::GVariantClass;
2697
2698 fn into_glib(self) -> ffi::GVariantClass {
2699 match self {
2700 Self::Boolean => ffi::G_VARIANT_CLASS_BOOLEAN,
2701 Self::Byte => ffi::G_VARIANT_CLASS_BYTE,
2702 Self::Int16 => ffi::G_VARIANT_CLASS_INT16,
2703 Self::Uint16 => ffi::G_VARIANT_CLASS_UINT16,
2704 Self::Int32 => ffi::G_VARIANT_CLASS_INT32,
2705 Self::Uint32 => ffi::G_VARIANT_CLASS_UINT32,
2706 Self::Int64 => ffi::G_VARIANT_CLASS_INT64,
2707 Self::Uint64 => ffi::G_VARIANT_CLASS_UINT64,
2708 Self::Handle => ffi::G_VARIANT_CLASS_HANDLE,
2709 Self::Double => ffi::G_VARIANT_CLASS_DOUBLE,
2710 Self::String => ffi::G_VARIANT_CLASS_STRING,
2711 Self::ObjectPath => ffi::G_VARIANT_CLASS_OBJECT_PATH,
2712 Self::Signature => ffi::G_VARIANT_CLASS_SIGNATURE,
2713 Self::Variant => ffi::G_VARIANT_CLASS_VARIANT,
2714 Self::Maybe => ffi::G_VARIANT_CLASS_MAYBE,
2715 Self::Array => ffi::G_VARIANT_CLASS_ARRAY,
2716 Self::Tuple => ffi::G_VARIANT_CLASS_TUPLE,
2717 Self::DictEntry => ffi::G_VARIANT_CLASS_DICT_ENTRY,
2718 Self::__Unknown(value) => value,
2719 }
2720 }
2721}
2722
2723#[doc(hidden)]
2724impl FromGlib<ffi::GVariantClass> for VariantClass {
2725 unsafe fn from_glib(value: ffi::GVariantClass) -> Self {
2726 match value {
2727 ffi::G_VARIANT_CLASS_BOOLEAN => Self::Boolean,
2728 ffi::G_VARIANT_CLASS_BYTE => Self::Byte,
2729 ffi::G_VARIANT_CLASS_INT16 => Self::Int16,
2730 ffi::G_VARIANT_CLASS_UINT16 => Self::Uint16,
2731 ffi::G_VARIANT_CLASS_INT32 => Self::Int32,
2732 ffi::G_VARIANT_CLASS_UINT32 => Self::Uint32,
2733 ffi::G_VARIANT_CLASS_INT64 => Self::Int64,
2734 ffi::G_VARIANT_CLASS_UINT64 => Self::Uint64,
2735 ffi::G_VARIANT_CLASS_HANDLE => Self::Handle,
2736 ffi::G_VARIANT_CLASS_DOUBLE => Self::Double,
2737 ffi::G_VARIANT_CLASS_STRING => Self::String,
2738 ffi::G_VARIANT_CLASS_OBJECT_PATH => Self::ObjectPath,
2739 ffi::G_VARIANT_CLASS_SIGNATURE => Self::Signature,
2740 ffi::G_VARIANT_CLASS_VARIANT => Self::Variant,
2741 ffi::G_VARIANT_CLASS_MAYBE => Self::Maybe,
2742 ffi::G_VARIANT_CLASS_ARRAY => Self::Array,
2743 ffi::G_VARIANT_CLASS_TUPLE => Self::Tuple,
2744 ffi::G_VARIANT_CLASS_DICT_ENTRY => Self::DictEntry,
2745 value => Self::__Unknown(value),
2746 }
2747 }
2748}