1use crate::{ffi, prelude::*, translate::*};
6
7#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13#[non_exhaustive]
14#[doc(alias = "GChecksumType")]
15pub enum ChecksumType {
16 #[doc(alias = "G_CHECKSUM_MD5")]
18 Md5,
19 #[doc(alias = "G_CHECKSUM_SHA1")]
21 Sha1,
22 #[doc(alias = "G_CHECKSUM_SHA256")]
24 Sha256,
25 #[doc(alias = "G_CHECKSUM_SHA512")]
27 Sha512,
28 #[doc(alias = "G_CHECKSUM_SHA384")]
30 Sha384,
31 #[doc(hidden)]
32 __Unknown(i32),
33}
34
35#[doc(hidden)]
36impl IntoGlib for ChecksumType {
37 type GlibType = ffi::GChecksumType;
38
39 #[inline]
40 fn into_glib(self) -> ffi::GChecksumType {
41 match self {
42 Self::Md5 => ffi::G_CHECKSUM_MD5,
43 Self::Sha1 => ffi::G_CHECKSUM_SHA1,
44 Self::Sha256 => ffi::G_CHECKSUM_SHA256,
45 Self::Sha512 => ffi::G_CHECKSUM_SHA512,
46 Self::Sha384 => ffi::G_CHECKSUM_SHA384,
47 Self::__Unknown(value) => value,
48 }
49 }
50}
51
52#[doc(hidden)]
53impl FromGlib<ffi::GChecksumType> for ChecksumType {
54 #[inline]
55 unsafe fn from_glib(value: ffi::GChecksumType) -> Self {
56 match value {
57 ffi::G_CHECKSUM_MD5 => Self::Md5,
58 ffi::G_CHECKSUM_SHA1 => Self::Sha1,
59 ffi::G_CHECKSUM_SHA256 => Self::Sha256,
60 ffi::G_CHECKSUM_SHA512 => Self::Sha512,
61 ffi::G_CHECKSUM_SHA384 => Self::Sha384,
62 value => Self::__Unknown(value),
63 }
64 }
65}
66
67#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
69#[non_exhaustive]
70#[doc(alias = "GConvertError")]
71pub enum ConvertError {
72 #[doc(alias = "G_CONVERT_ERROR_NO_CONVERSION")]
75 NoConversion,
76 #[doc(alias = "G_CONVERT_ERROR_ILLEGAL_SEQUENCE")]
80 IllegalSequence,
81 #[doc(alias = "G_CONVERT_ERROR_FAILED")]
83 Failed,
84 #[doc(alias = "G_CONVERT_ERROR_PARTIAL_INPUT")]
86 PartialInput,
87 #[doc(alias = "G_CONVERT_ERROR_BAD_URI")]
89 BadUri,
90 #[doc(alias = "G_CONVERT_ERROR_NOT_ABSOLUTE_PATH")]
92 NotAbsolutePath,
93 #[doc(alias = "G_CONVERT_ERROR_NO_MEMORY")]
95 NoMemory,
96 #[doc(alias = "G_CONVERT_ERROR_EMBEDDED_NUL")]
100 EmbeddedNul,
101 #[doc(hidden)]
102 __Unknown(i32),
103}
104
105#[doc(hidden)]
106impl IntoGlib for ConvertError {
107 type GlibType = ffi::GConvertError;
108
109 #[inline]
110 fn into_glib(self) -> ffi::GConvertError {
111 match self {
112 Self::NoConversion => ffi::G_CONVERT_ERROR_NO_CONVERSION,
113 Self::IllegalSequence => ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
114 Self::Failed => ffi::G_CONVERT_ERROR_FAILED,
115 Self::PartialInput => ffi::G_CONVERT_ERROR_PARTIAL_INPUT,
116 Self::BadUri => ffi::G_CONVERT_ERROR_BAD_URI,
117 Self::NotAbsolutePath => ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
118 Self::NoMemory => ffi::G_CONVERT_ERROR_NO_MEMORY,
119 Self::EmbeddedNul => ffi::G_CONVERT_ERROR_EMBEDDED_NUL,
120 Self::__Unknown(value) => value,
121 }
122 }
123}
124
125#[doc(hidden)]
126impl FromGlib<ffi::GConvertError> for ConvertError {
127 #[inline]
128 unsafe fn from_glib(value: ffi::GConvertError) -> Self {
129 match value {
130 ffi::G_CONVERT_ERROR_NO_CONVERSION => Self::NoConversion,
131 ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE => Self::IllegalSequence,
132 ffi::G_CONVERT_ERROR_FAILED => Self::Failed,
133 ffi::G_CONVERT_ERROR_PARTIAL_INPUT => Self::PartialInput,
134 ffi::G_CONVERT_ERROR_BAD_URI => Self::BadUri,
135 ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH => Self::NotAbsolutePath,
136 ffi::G_CONVERT_ERROR_NO_MEMORY => Self::NoMemory,
137 ffi::G_CONVERT_ERROR_EMBEDDED_NUL => Self::EmbeddedNul,
138 value => Self::__Unknown(value),
139 }
140 }
141}
142
143impl crate::error::ErrorDomain for ConvertError {
144 #[inline]
145 fn domain() -> crate::Quark {
146 unsafe { from_glib(ffi::g_convert_error_quark()) }
147 }
148
149 #[inline]
150 fn code(self) -> i32 {
151 self.into_glib()
152 }
153
154 #[inline]
155 #[allow(clippy::match_single_binding)]
156 fn from(code: i32) -> Option<Self> {
157 match unsafe { from_glib(code) } {
158 Self::__Unknown(_) => Some(Self::Failed),
159 value => Some(value),
160 }
161 }
162}
163
164#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
167#[non_exhaustive]
168#[doc(alias = "GDateMonth")]
169pub enum DateMonth {
170 #[doc(alias = "G_DATE_BAD_MONTH")]
172 BadMonth,
173 #[doc(alias = "G_DATE_JANUARY")]
175 January,
176 #[doc(alias = "G_DATE_FEBRUARY")]
178 February,
179 #[doc(alias = "G_DATE_MARCH")]
181 March,
182 #[doc(alias = "G_DATE_APRIL")]
184 April,
185 #[doc(alias = "G_DATE_MAY")]
187 May,
188 #[doc(alias = "G_DATE_JUNE")]
190 June,
191 #[doc(alias = "G_DATE_JULY")]
193 July,
194 #[doc(alias = "G_DATE_AUGUST")]
196 August,
197 #[doc(alias = "G_DATE_SEPTEMBER")]
199 September,
200 #[doc(alias = "G_DATE_OCTOBER")]
202 October,
203 #[doc(alias = "G_DATE_NOVEMBER")]
205 November,
206 #[doc(alias = "G_DATE_DECEMBER")]
208 December,
209 #[doc(hidden)]
210 __Unknown(i32),
211}
212
213#[doc(hidden)]
214impl IntoGlib for DateMonth {
215 type GlibType = ffi::GDateMonth;
216
217 fn into_glib(self) -> ffi::GDateMonth {
218 match self {
219 Self::BadMonth => ffi::G_DATE_BAD_MONTH,
220 Self::January => ffi::G_DATE_JANUARY,
221 Self::February => ffi::G_DATE_FEBRUARY,
222 Self::March => ffi::G_DATE_MARCH,
223 Self::April => ffi::G_DATE_APRIL,
224 Self::May => ffi::G_DATE_MAY,
225 Self::June => ffi::G_DATE_JUNE,
226 Self::July => ffi::G_DATE_JULY,
227 Self::August => ffi::G_DATE_AUGUST,
228 Self::September => ffi::G_DATE_SEPTEMBER,
229 Self::October => ffi::G_DATE_OCTOBER,
230 Self::November => ffi::G_DATE_NOVEMBER,
231 Self::December => ffi::G_DATE_DECEMBER,
232 Self::__Unknown(value) => value,
233 }
234 }
235}
236
237#[doc(hidden)]
238impl FromGlib<ffi::GDateMonth> for DateMonth {
239 unsafe fn from_glib(value: ffi::GDateMonth) -> Self {
240 match value {
241 ffi::G_DATE_BAD_MONTH => Self::BadMonth,
242 ffi::G_DATE_JANUARY => Self::January,
243 ffi::G_DATE_FEBRUARY => Self::February,
244 ffi::G_DATE_MARCH => Self::March,
245 ffi::G_DATE_APRIL => Self::April,
246 ffi::G_DATE_MAY => Self::May,
247 ffi::G_DATE_JUNE => Self::June,
248 ffi::G_DATE_JULY => Self::July,
249 ffi::G_DATE_AUGUST => Self::August,
250 ffi::G_DATE_SEPTEMBER => Self::September,
251 ffi::G_DATE_OCTOBER => Self::October,
252 ffi::G_DATE_NOVEMBER => Self::November,
253 ffi::G_DATE_DECEMBER => Self::December,
254 value => Self::__Unknown(value),
255 }
256 }
257}
258
259#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
262#[non_exhaustive]
263#[doc(alias = "GDateWeekday")]
264pub enum DateWeekday {
265 #[doc(alias = "G_DATE_BAD_WEEKDAY")]
267 BadWeekday,
268 #[doc(alias = "G_DATE_MONDAY")]
270 Monday,
271 #[doc(alias = "G_DATE_TUESDAY")]
273 Tuesday,
274 #[doc(alias = "G_DATE_WEDNESDAY")]
276 Wednesday,
277 #[doc(alias = "G_DATE_THURSDAY")]
279 Thursday,
280 #[doc(alias = "G_DATE_FRIDAY")]
282 Friday,
283 #[doc(alias = "G_DATE_SATURDAY")]
285 Saturday,
286 #[doc(alias = "G_DATE_SUNDAY")]
288 Sunday,
289 #[doc(hidden)]
290 __Unknown(i32),
291}
292
293#[doc(hidden)]
294impl IntoGlib for DateWeekday {
295 type GlibType = ffi::GDateWeekday;
296
297 #[inline]
298 fn into_glib(self) -> ffi::GDateWeekday {
299 match self {
300 Self::BadWeekday => ffi::G_DATE_BAD_WEEKDAY,
301 Self::Monday => ffi::G_DATE_MONDAY,
302 Self::Tuesday => ffi::G_DATE_TUESDAY,
303 Self::Wednesday => ffi::G_DATE_WEDNESDAY,
304 Self::Thursday => ffi::G_DATE_THURSDAY,
305 Self::Friday => ffi::G_DATE_FRIDAY,
306 Self::Saturday => ffi::G_DATE_SATURDAY,
307 Self::Sunday => ffi::G_DATE_SUNDAY,
308 Self::__Unknown(value) => value,
309 }
310 }
311}
312
313#[doc(hidden)]
314impl FromGlib<ffi::GDateWeekday> for DateWeekday {
315 #[inline]
316 unsafe fn from_glib(value: ffi::GDateWeekday) -> Self {
317 match value {
318 ffi::G_DATE_BAD_WEEKDAY => Self::BadWeekday,
319 ffi::G_DATE_MONDAY => Self::Monday,
320 ffi::G_DATE_TUESDAY => Self::Tuesday,
321 ffi::G_DATE_WEDNESDAY => Self::Wednesday,
322 ffi::G_DATE_THURSDAY => Self::Thursday,
323 ffi::G_DATE_FRIDAY => Self::Friday,
324 ffi::G_DATE_SATURDAY => Self::Saturday,
325 ffi::G_DATE_SUNDAY => Self::Sunday,
326 value => Self::__Unknown(value),
327 }
328 }
329}
330
331#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
344#[non_exhaustive]
345#[doc(alias = "GFileError")]
346pub enum FileError {
347 #[doc(alias = "G_FILE_ERROR_EXIST")]
351 Exist,
352 #[doc(alias = "G_FILE_ERROR_ISDIR")]
355 Isdir,
356 #[doc(alias = "G_FILE_ERROR_ACCES")]
359 Acces,
360 #[doc(alias = "G_FILE_ERROR_NAMETOOLONG")]
362 Nametoolong,
363 #[doc(alias = "G_FILE_ERROR_NOENT")]
367 Noent,
368 #[doc(alias = "G_FILE_ERROR_NOTDIR")]
371 Notdir,
372 #[doc(alias = "G_FILE_ERROR_NXIO")]
378 Nxio,
379 #[doc(alias = "G_FILE_ERROR_NODEV")]
382 Nodev,
383 #[doc(alias = "G_FILE_ERROR_ROFS")]
386 Rofs,
387 #[doc(alias = "G_FILE_ERROR_TXTBSY")]
389 Txtbsy,
390 #[doc(alias = "G_FILE_ERROR_FAULT")]
394 Fault,
395 #[doc(alias = "G_FILE_ERROR_LOOP")]
399 Loop,
400 #[doc(alias = "G_FILE_ERROR_NOSPC")]
403 Nospc,
404 #[doc(alias = "G_FILE_ERROR_NOMEM")]
407 Nomem,
408 #[doc(alias = "G_FILE_ERROR_MFILE")]
412 Mfile,
413 #[doc(alias = "G_FILE_ERROR_NFILE")]
416 Nfile,
417 #[doc(alias = "G_FILE_ERROR_BADF")]
421 Badf,
422 #[doc(alias = "G_FILE_ERROR_INVAL")]
426 Inval,
427 #[doc(alias = "G_FILE_ERROR_PIPE")]
434 Pipe,
435 #[doc(alias = "G_FILE_ERROR_AGAIN")]
438 Again,
439 #[doc(alias = "G_FILE_ERROR_INTR")]
443 Intr,
444 #[doc(alias = "G_FILE_ERROR_IO")]
448 Io,
449 #[doc(alias = "G_FILE_ERROR_PERM")]
453 Perm,
454 #[doc(alias = "G_FILE_ERROR_NOSYS")]
457 Nosys,
458 #[doc(alias = "G_FILE_ERROR_FAILED")]
463 Failed,
464 #[doc(hidden)]
465 __Unknown(i32),
466}
467
468#[doc(hidden)]
469impl IntoGlib for FileError {
470 type GlibType = ffi::GFileError;
471
472 fn into_glib(self) -> ffi::GFileError {
473 match self {
474 Self::Exist => ffi::G_FILE_ERROR_EXIST,
475 Self::Isdir => ffi::G_FILE_ERROR_ISDIR,
476 Self::Acces => ffi::G_FILE_ERROR_ACCES,
477 Self::Nametoolong => ffi::G_FILE_ERROR_NAMETOOLONG,
478 Self::Noent => ffi::G_FILE_ERROR_NOENT,
479 Self::Notdir => ffi::G_FILE_ERROR_NOTDIR,
480 Self::Nxio => ffi::G_FILE_ERROR_NXIO,
481 Self::Nodev => ffi::G_FILE_ERROR_NODEV,
482 Self::Rofs => ffi::G_FILE_ERROR_ROFS,
483 Self::Txtbsy => ffi::G_FILE_ERROR_TXTBSY,
484 Self::Fault => ffi::G_FILE_ERROR_FAULT,
485 Self::Loop => ffi::G_FILE_ERROR_LOOP,
486 Self::Nospc => ffi::G_FILE_ERROR_NOSPC,
487 Self::Nomem => ffi::G_FILE_ERROR_NOMEM,
488 Self::Mfile => ffi::G_FILE_ERROR_MFILE,
489 Self::Nfile => ffi::G_FILE_ERROR_NFILE,
490 Self::Badf => ffi::G_FILE_ERROR_BADF,
491 Self::Inval => ffi::G_FILE_ERROR_INVAL,
492 Self::Pipe => ffi::G_FILE_ERROR_PIPE,
493 Self::Again => ffi::G_FILE_ERROR_AGAIN,
494 Self::Intr => ffi::G_FILE_ERROR_INTR,
495 Self::Io => ffi::G_FILE_ERROR_IO,
496 Self::Perm => ffi::G_FILE_ERROR_PERM,
497 Self::Nosys => ffi::G_FILE_ERROR_NOSYS,
498 Self::Failed => ffi::G_FILE_ERROR_FAILED,
499 Self::__Unknown(value) => value,
500 }
501 }
502}
503
504#[doc(hidden)]
505impl FromGlib<ffi::GFileError> for FileError {
506 unsafe fn from_glib(value: ffi::GFileError) -> Self {
507 match value {
508 ffi::G_FILE_ERROR_EXIST => Self::Exist,
509 ffi::G_FILE_ERROR_ISDIR => Self::Isdir,
510 ffi::G_FILE_ERROR_ACCES => Self::Acces,
511 ffi::G_FILE_ERROR_NAMETOOLONG => Self::Nametoolong,
512 ffi::G_FILE_ERROR_NOENT => Self::Noent,
513 ffi::G_FILE_ERROR_NOTDIR => Self::Notdir,
514 ffi::G_FILE_ERROR_NXIO => Self::Nxio,
515 ffi::G_FILE_ERROR_NODEV => Self::Nodev,
516 ffi::G_FILE_ERROR_ROFS => Self::Rofs,
517 ffi::G_FILE_ERROR_TXTBSY => Self::Txtbsy,
518 ffi::G_FILE_ERROR_FAULT => Self::Fault,
519 ffi::G_FILE_ERROR_LOOP => Self::Loop,
520 ffi::G_FILE_ERROR_NOSPC => Self::Nospc,
521 ffi::G_FILE_ERROR_NOMEM => Self::Nomem,
522 ffi::G_FILE_ERROR_MFILE => Self::Mfile,
523 ffi::G_FILE_ERROR_NFILE => Self::Nfile,
524 ffi::G_FILE_ERROR_BADF => Self::Badf,
525 ffi::G_FILE_ERROR_INVAL => Self::Inval,
526 ffi::G_FILE_ERROR_PIPE => Self::Pipe,
527 ffi::G_FILE_ERROR_AGAIN => Self::Again,
528 ffi::G_FILE_ERROR_INTR => Self::Intr,
529 ffi::G_FILE_ERROR_IO => Self::Io,
530 ffi::G_FILE_ERROR_PERM => Self::Perm,
531 ffi::G_FILE_ERROR_NOSYS => Self::Nosys,
532 ffi::G_FILE_ERROR_FAILED => Self::Failed,
533 value => Self::__Unknown(value),
534 }
535 }
536}
537
538impl crate::error::ErrorDomain for FileError {
539 #[inline]
540 fn domain() -> crate::Quark {
541 unsafe { from_glib(ffi::g_file_error_quark()) }
542 }
543
544 #[inline]
545 fn code(self) -> i32 {
546 self.into_glib()
547 }
548
549 #[inline]
550 #[allow(clippy::match_single_binding)]
551 fn from(code: i32) -> Option<Self> {
552 match unsafe { from_glib(code) } {
553 Self::__Unknown(_) => Some(Self::Failed),
554 value => Some(value),
555 }
556 }
557}
558
559#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
561#[non_exhaustive]
562#[doc(alias = "GKeyFileError")]
563pub enum KeyFileError {
564 #[doc(alias = "G_KEY_FILE_ERROR_UNKNOWN_ENCODING")]
567 UnknownEncoding,
568 #[doc(alias = "G_KEY_FILE_ERROR_PARSE")]
570 Parse,
571 #[doc(alias = "G_KEY_FILE_ERROR_NOT_FOUND")]
573 NotFound,
574 #[doc(alias = "G_KEY_FILE_ERROR_KEY_NOT_FOUND")]
576 KeyNotFound,
577 #[doc(alias = "G_KEY_FILE_ERROR_GROUP_NOT_FOUND")]
579 GroupNotFound,
580 #[doc(alias = "G_KEY_FILE_ERROR_INVALID_VALUE")]
582 InvalidValue,
583 #[doc(hidden)]
584 __Unknown(i32),
585}
586
587#[doc(hidden)]
588impl IntoGlib for KeyFileError {
589 type GlibType = ffi::GKeyFileError;
590
591 #[inline]
592 fn into_glib(self) -> ffi::GKeyFileError {
593 match self {
594 Self::UnknownEncoding => ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
595 Self::Parse => ffi::G_KEY_FILE_ERROR_PARSE,
596 Self::NotFound => ffi::G_KEY_FILE_ERROR_NOT_FOUND,
597 Self::KeyNotFound => ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND,
598 Self::GroupNotFound => ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
599 Self::InvalidValue => ffi::G_KEY_FILE_ERROR_INVALID_VALUE,
600 Self::__Unknown(value) => value,
601 }
602 }
603}
604
605#[doc(hidden)]
606impl FromGlib<ffi::GKeyFileError> for KeyFileError {
607 #[inline]
608 unsafe fn from_glib(value: ffi::GKeyFileError) -> Self {
609 match value {
610 ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING => Self::UnknownEncoding,
611 ffi::G_KEY_FILE_ERROR_PARSE => Self::Parse,
612 ffi::G_KEY_FILE_ERROR_NOT_FOUND => Self::NotFound,
613 ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND => Self::KeyNotFound,
614 ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND => Self::GroupNotFound,
615 ffi::G_KEY_FILE_ERROR_INVALID_VALUE => Self::InvalidValue,
616 value => Self::__Unknown(value),
617 }
618 }
619}
620
621impl crate::error::ErrorDomain for KeyFileError {
622 #[inline]
623 fn domain() -> crate::Quark {
624 unsafe { from_glib(ffi::g_key_file_error_quark()) }
625 }
626
627 #[inline]
628 fn code(self) -> i32 {
629 self.into_glib()
630 }
631
632 #[inline]
633 #[allow(clippy::match_single_binding)]
634 fn from(code: i32) -> Option<Self> {
635 match unsafe { from_glib(code) } {
636 value => Some(value),
637 }
638 }
639}
640
641#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
648#[non_exhaustive]
649#[doc(alias = "GLogWriterOutput")]
650pub enum LogWriterOutput {
651 #[doc(alias = "G_LOG_WRITER_HANDLED")]
653 Handled,
654 #[doc(alias = "G_LOG_WRITER_UNHANDLED")]
656 Unhandled,
657 #[doc(hidden)]
658 __Unknown(i32),
659}
660
661#[doc(hidden)]
662impl IntoGlib for LogWriterOutput {
663 type GlibType = ffi::GLogWriterOutput;
664
665 #[inline]
666 fn into_glib(self) -> ffi::GLogWriterOutput {
667 match self {
668 Self::Handled => ffi::G_LOG_WRITER_HANDLED,
669 Self::Unhandled => ffi::G_LOG_WRITER_UNHANDLED,
670 Self::__Unknown(value) => value,
671 }
672 }
673}
674
675#[doc(hidden)]
676impl FromGlib<ffi::GLogWriterOutput> for LogWriterOutput {
677 #[inline]
678 unsafe fn from_glib(value: ffi::GLogWriterOutput) -> Self {
679 match value {
680 ffi::G_LOG_WRITER_HANDLED => Self::Handled,
681 ffi::G_LOG_WRITER_UNHANDLED => Self::Unhandled,
682 value => Self::__Unknown(value),
683 }
684 }
685}
686
687#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
689#[non_exhaustive]
690#[doc(alias = "GMarkupError")]
691pub enum MarkupError {
692 #[doc(alias = "G_MARKUP_ERROR_BAD_UTF8")]
694 BadUtf8,
695 #[doc(alias = "G_MARKUP_ERROR_EMPTY")]
697 Empty,
698 #[doc(alias = "G_MARKUP_ERROR_PARSE")]
700 Parse,
701 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ELEMENT")]
704 UnknownElement,
705 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE")]
708 UnknownAttribute,
709 #[doc(alias = "G_MARKUP_ERROR_INVALID_CONTENT")]
712 InvalidContent,
713 #[doc(alias = "G_MARKUP_ERROR_MISSING_ATTRIBUTE")]
716 MissingAttribute,
717 #[doc(hidden)]
718 __Unknown(i32),
719}
720
721#[doc(hidden)]
722impl IntoGlib for MarkupError {
723 type GlibType = ffi::GMarkupError;
724
725 #[inline]
726 fn into_glib(self) -> ffi::GMarkupError {
727 match self {
728 Self::BadUtf8 => ffi::G_MARKUP_ERROR_BAD_UTF8,
729 Self::Empty => ffi::G_MARKUP_ERROR_EMPTY,
730 Self::Parse => ffi::G_MARKUP_ERROR_PARSE,
731 Self::UnknownElement => ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT,
732 Self::UnknownAttribute => ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
733 Self::InvalidContent => ffi::G_MARKUP_ERROR_INVALID_CONTENT,
734 Self::MissingAttribute => ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE,
735 Self::__Unknown(value) => value,
736 }
737 }
738}
739
740#[doc(hidden)]
741impl FromGlib<ffi::GMarkupError> for MarkupError {
742 #[inline]
743 unsafe fn from_glib(value: ffi::GMarkupError) -> Self {
744 match value {
745 ffi::G_MARKUP_ERROR_BAD_UTF8 => Self::BadUtf8,
746 ffi::G_MARKUP_ERROR_EMPTY => Self::Empty,
747 ffi::G_MARKUP_ERROR_PARSE => Self::Parse,
748 ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT => Self::UnknownElement,
749 ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE => Self::UnknownAttribute,
750 ffi::G_MARKUP_ERROR_INVALID_CONTENT => Self::InvalidContent,
751 ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE => Self::MissingAttribute,
752 value => Self::__Unknown(value),
753 }
754 }
755}
756
757impl crate::error::ErrorDomain for MarkupError {
758 #[inline]
759 fn domain() -> crate::Quark {
760 unsafe { from_glib(ffi::g_markup_error_quark()) }
761 }
762
763 #[inline]
764 fn code(self) -> i32 {
765 self.into_glib()
766 }
767
768 #[inline]
769 #[allow(clippy::match_single_binding)]
770 fn from(code: i32) -> Option<Self> {
771 match unsafe { from_glib(code) } {
772 value => Some(value),
773 }
774 }
775}
776
777#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
783#[non_exhaustive]
784#[doc(alias = "GNormalizeMode")]
785pub enum NormalizeMode {
786 #[doc(alias = "G_NORMALIZE_DEFAULT")]
789 Default,
790 #[doc(alias = "G_NORMALIZE_DEFAULT_COMPOSE")]
793 DefaultCompose,
794 #[doc(alias = "G_NORMALIZE_ALL")]
800 All,
801 #[doc(alias = "G_NORMALIZE_ALL_COMPOSE")]
804 AllCompose,
805 #[doc(hidden)]
806 __Unknown(i32),
807}
808
809#[doc(hidden)]
810impl IntoGlib for NormalizeMode {
811 type GlibType = ffi::GNormalizeMode;
812
813 #[inline]
814 fn into_glib(self) -> ffi::GNormalizeMode {
815 match self {
816 Self::Default => ffi::G_NORMALIZE_DEFAULT,
817 Self::DefaultCompose => ffi::G_NORMALIZE_DEFAULT_COMPOSE,
818 Self::All => ffi::G_NORMALIZE_ALL,
819 Self::AllCompose => ffi::G_NORMALIZE_ALL_COMPOSE,
820 Self::__Unknown(value) => value,
821 }
822 }
823}
824
825#[doc(hidden)]
826impl FromGlib<ffi::GNormalizeMode> for NormalizeMode {
827 #[inline]
828 unsafe fn from_glib(value: ffi::GNormalizeMode) -> Self {
829 match value {
830 ffi::G_NORMALIZE_DEFAULT => Self::Default,
831 ffi::G_NORMALIZE_DEFAULT_COMPOSE => Self::DefaultCompose,
832 ffi::G_NORMALIZE_ALL => Self::All,
833 ffi::G_NORMALIZE_ALL_COMPOSE => Self::AllCompose,
834 value => Self::__Unknown(value),
835 }
836 }
837}
838
839impl StaticType for NormalizeMode {
840 #[inline]
841 #[doc(alias = "g_normalize_mode_get_type")]
842 fn static_type() -> crate::Type {
843 unsafe { from_glib(ffi::g_normalize_mode_get_type()) }
844 }
845}
846
847impl crate::HasParamSpec for NormalizeMode {
848 type ParamSpec = crate::ParamSpecEnum;
849 type SetValue = Self;
850 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
851
852 fn param_spec_builder() -> Self::BuilderFn {
853 Self::ParamSpec::builder_with_default
854 }
855}
856
857impl crate::value::ValueType for NormalizeMode {
858 type Type = Self;
859}
860
861unsafe impl<'a> crate::value::FromValue<'a> for NormalizeMode {
862 type Checker = crate::value::GenericValueTypeChecker<Self>;
863
864 #[inline]
865 unsafe fn from_value(value: &'a crate::Value) -> Self {
866 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
867 }
868}
869
870impl ToValue for NormalizeMode {
871 #[inline]
872 fn to_value(&self) -> crate::Value {
873 let mut value = crate::Value::for_value_type::<Self>();
874 unsafe {
875 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
876 }
877 value
878 }
879
880 #[inline]
881 fn value_type(&self) -> crate::Type {
882 Self::static_type()
883 }
884}
885
886impl From<NormalizeMode> for crate::Value {
887 #[inline]
888 fn from(v: NormalizeMode) -> Self {
889 ToValue::to_value(&v)
890 }
891}
892
893#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
898#[non_exhaustive]
899#[doc(alias = "GOptionArg")]
900pub enum OptionArg {
901 #[doc(alias = "G_OPTION_ARG_NONE")]
903 None,
904 #[doc(alias = "G_OPTION_ARG_STRING")]
906 String,
907 #[doc(alias = "G_OPTION_ARG_INT")]
909 Int,
910 #[doc(alias = "G_OPTION_ARG_CALLBACK")]
913 Callback,
914 #[doc(alias = "G_OPTION_ARG_FILENAME")]
917 Filename,
918 #[doc(alias = "G_OPTION_ARG_STRING_ARRAY")]
921 StringArray,
922 #[doc(alias = "G_OPTION_ARG_FILENAME_ARRAY")]
925 FilenameArray,
926 #[doc(alias = "G_OPTION_ARG_DOUBLE")]
930 Double,
931 #[doc(alias = "G_OPTION_ARG_INT64")]
936 Int64,
937 #[doc(hidden)]
938 __Unknown(i32),
939}
940
941#[doc(hidden)]
942impl IntoGlib for OptionArg {
943 type GlibType = ffi::GOptionArg;
944
945 #[inline]
946 fn into_glib(self) -> ffi::GOptionArg {
947 match self {
948 Self::None => ffi::G_OPTION_ARG_NONE,
949 Self::String => ffi::G_OPTION_ARG_STRING,
950 Self::Int => ffi::G_OPTION_ARG_INT,
951 Self::Callback => ffi::G_OPTION_ARG_CALLBACK,
952 Self::Filename => ffi::G_OPTION_ARG_FILENAME,
953 Self::StringArray => ffi::G_OPTION_ARG_STRING_ARRAY,
954 Self::FilenameArray => ffi::G_OPTION_ARG_FILENAME_ARRAY,
955 Self::Double => ffi::G_OPTION_ARG_DOUBLE,
956 Self::Int64 => ffi::G_OPTION_ARG_INT64,
957 Self::__Unknown(value) => value,
958 }
959 }
960}
961
962#[doc(hidden)]
963impl FromGlib<ffi::GOptionArg> for OptionArg {
964 #[inline]
965 unsafe fn from_glib(value: ffi::GOptionArg) -> Self {
966 match value {
967 ffi::G_OPTION_ARG_NONE => Self::None,
968 ffi::G_OPTION_ARG_STRING => Self::String,
969 ffi::G_OPTION_ARG_INT => Self::Int,
970 ffi::G_OPTION_ARG_CALLBACK => Self::Callback,
971 ffi::G_OPTION_ARG_FILENAME => Self::Filename,
972 ffi::G_OPTION_ARG_STRING_ARRAY => Self::StringArray,
973 ffi::G_OPTION_ARG_FILENAME_ARRAY => Self::FilenameArray,
974 ffi::G_OPTION_ARG_DOUBLE => Self::Double,
975 ffi::G_OPTION_ARG_INT64 => Self::Int64,
976 value => Self::__Unknown(value),
977 }
978 }
979}
980
981#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
984#[non_exhaustive]
985#[doc(alias = "GSeekType")]
986pub enum SeekType {
987 #[doc(alias = "G_SEEK_CUR")]
989 Cur,
990 #[doc(alias = "G_SEEK_SET")]
992 Set,
993 #[doc(alias = "G_SEEK_END")]
995 End,
996 #[doc(hidden)]
997 __Unknown(i32),
998}
999
1000#[doc(hidden)]
1001impl IntoGlib for SeekType {
1002 type GlibType = ffi::GSeekType;
1003
1004 #[inline]
1005 fn into_glib(self) -> ffi::GSeekType {
1006 match self {
1007 Self::Cur => ffi::G_SEEK_CUR,
1008 Self::Set => ffi::G_SEEK_SET,
1009 Self::End => ffi::G_SEEK_END,
1010 Self::__Unknown(value) => value,
1011 }
1012 }
1013}
1014
1015#[doc(hidden)]
1016impl FromGlib<ffi::GSeekType> for SeekType {
1017 #[inline]
1018 unsafe fn from_glib(value: ffi::GSeekType) -> Self {
1019 match value {
1020 ffi::G_SEEK_CUR => Self::Cur,
1021 ffi::G_SEEK_SET => Self::Set,
1022 ffi::G_SEEK_END => Self::End,
1023 value => Self::__Unknown(value),
1024 }
1025 }
1026}
1027
1028#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1037#[non_exhaustive]
1038#[doc(alias = "GTimeType")]
1039pub enum TimeType {
1040 #[doc(alias = "G_TIME_TYPE_STANDARD")]
1042 Standard,
1043 #[doc(alias = "G_TIME_TYPE_DAYLIGHT")]
1045 Daylight,
1046 #[doc(alias = "G_TIME_TYPE_UNIVERSAL")]
1048 Universal,
1049 #[doc(hidden)]
1050 __Unknown(i32),
1051}
1052
1053#[doc(hidden)]
1054impl IntoGlib for TimeType {
1055 type GlibType = ffi::GTimeType;
1056
1057 #[inline]
1058 fn into_glib(self) -> ffi::GTimeType {
1059 match self {
1060 Self::Standard => ffi::G_TIME_TYPE_STANDARD,
1061 Self::Daylight => ffi::G_TIME_TYPE_DAYLIGHT,
1062 Self::Universal => ffi::G_TIME_TYPE_UNIVERSAL,
1063 Self::__Unknown(value) => value,
1064 }
1065 }
1066}
1067
1068#[doc(hidden)]
1069impl FromGlib<ffi::GTimeType> for TimeType {
1070 #[inline]
1071 unsafe fn from_glib(value: ffi::GTimeType) -> Self {
1072 match value {
1073 ffi::G_TIME_TYPE_STANDARD => Self::Standard,
1074 ffi::G_TIME_TYPE_DAYLIGHT => Self::Daylight,
1075 ffi::G_TIME_TYPE_UNIVERSAL => Self::Universal,
1076 value => Self::__Unknown(value),
1077 }
1078 }
1079}
1080
1081#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1088#[non_exhaustive]
1089#[doc(alias = "GUnicodeBreakType")]
1090pub enum UnicodeBreakType {
1091 #[doc(alias = "G_UNICODE_BREAK_MANDATORY")]
1093 Mandatory,
1094 #[doc(alias = "G_UNICODE_BREAK_CARRIAGE_RETURN")]
1096 CarriageReturn,
1097 #[doc(alias = "G_UNICODE_BREAK_LINE_FEED")]
1099 LineFeed,
1100 #[doc(alias = "G_UNICODE_BREAK_COMBINING_MARK")]
1102 CombiningMark,
1103 #[doc(alias = "G_UNICODE_BREAK_SURROGATE")]
1105 Surrogate,
1106 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_SPACE")]
1108 ZeroWidthSpace,
1109 #[doc(alias = "G_UNICODE_BREAK_INSEPARABLE")]
1111 Inseparable,
1112 #[doc(alias = "G_UNICODE_BREAK_NON_BREAKING_GLUE")]
1114 NonBreakingGlue,
1115 #[doc(alias = "G_UNICODE_BREAK_CONTINGENT")]
1117 Contingent,
1118 #[doc(alias = "G_UNICODE_BREAK_SPACE")]
1120 Space,
1121 #[doc(alias = "G_UNICODE_BREAK_AFTER")]
1123 After,
1124 #[doc(alias = "G_UNICODE_BREAK_BEFORE")]
1126 Before,
1127 #[doc(alias = "G_UNICODE_BREAK_BEFORE_AND_AFTER")]
1129 BeforeAndAfter,
1130 #[doc(alias = "G_UNICODE_BREAK_HYPHEN")]
1132 Hyphen,
1133 #[doc(alias = "G_UNICODE_BREAK_NON_STARTER")]
1135 NonStarter,
1136 #[doc(alias = "G_UNICODE_BREAK_OPEN_PUNCTUATION")]
1138 OpenPunctuation,
1139 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PUNCTUATION")]
1141 ClosePunctuation,
1142 #[doc(alias = "G_UNICODE_BREAK_QUOTATION")]
1144 Quotation,
1145 #[doc(alias = "G_UNICODE_BREAK_EXCLAMATION")]
1147 Exclamation,
1148 #[doc(alias = "G_UNICODE_BREAK_IDEOGRAPHIC")]
1150 Ideographic,
1151 #[doc(alias = "G_UNICODE_BREAK_NUMERIC")]
1153 Numeric,
1154 #[doc(alias = "G_UNICODE_BREAK_INFIX_SEPARATOR")]
1156 InfixSeparator,
1157 #[doc(alias = "G_UNICODE_BREAK_SYMBOL")]
1159 Symbol,
1160 #[doc(alias = "G_UNICODE_BREAK_ALPHABETIC")]
1162 Alphabetic,
1163 #[doc(alias = "G_UNICODE_BREAK_PREFIX")]
1165 Prefix,
1166 #[doc(alias = "G_UNICODE_BREAK_POSTFIX")]
1168 Postfix,
1169 #[doc(alias = "G_UNICODE_BREAK_COMPLEX_CONTEXT")]
1171 ComplexContext,
1172 #[doc(alias = "G_UNICODE_BREAK_AMBIGUOUS")]
1174 Ambiguous,
1175 #[doc(alias = "G_UNICODE_BREAK_UNKNOWN")]
1177 Unknown,
1178 #[doc(alias = "G_UNICODE_BREAK_NEXT_LINE")]
1180 NextLine,
1181 #[doc(alias = "G_UNICODE_BREAK_WORD_JOINER")]
1183 WordJoiner,
1184 #[doc(alias = "G_UNICODE_BREAK_HANGUL_L_JAMO")]
1186 HangulLJamo,
1187 #[doc(alias = "G_UNICODE_BREAK_HANGUL_V_JAMO")]
1189 HangulVJamo,
1190 #[doc(alias = "G_UNICODE_BREAK_HANGUL_T_JAMO")]
1192 HangulTJamo,
1193 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LV_SYLLABLE")]
1195 HangulLvSyllable,
1196 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE")]
1198 HangulLvtSyllable,
1199 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PARENTHESIS")]
1201 CloseParenthesis,
1202 #[doc(alias = "G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER")]
1204 ConditionalJapaneseStarter,
1205 #[doc(alias = "G_UNICODE_BREAK_HEBREW_LETTER")]
1207 HebrewLetter,
1208 #[doc(alias = "G_UNICODE_BREAK_REGIONAL_INDICATOR")]
1210 RegionalIndicator,
1211 #[doc(alias = "G_UNICODE_BREAK_EMOJI_BASE")]
1213 EmojiBase,
1214 #[doc(alias = "G_UNICODE_BREAK_EMOJI_MODIFIER")]
1216 EmojiModifier,
1217 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_JOINER")]
1219 ZeroWidthJoiner,
1220 #[cfg(feature = "v2_80")]
1222 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1223 #[doc(alias = "G_UNICODE_BREAK_AKSARA")]
1224 Aksara,
1225 #[cfg(feature = "v2_80")]
1227 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1228 #[doc(alias = "G_UNICODE_BREAK_AKSARA_PRE_BASE")]
1229 AksaraPreBase,
1230 #[cfg(feature = "v2_80")]
1232 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1233 #[doc(alias = "G_UNICODE_BREAK_AKSARA_START")]
1234 AksaraStart,
1235 #[cfg(feature = "v2_80")]
1237 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1238 #[doc(alias = "G_UNICODE_BREAK_VIRAMA_FINAL")]
1239 ViramaFinal,
1240 #[cfg(feature = "v2_80")]
1242 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1243 #[doc(alias = "G_UNICODE_BREAK_VIRAMA")]
1244 Virama,
1245 #[doc(alias = "G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN")]
1247 UnambiguousHyphen,
1248 #[doc(hidden)]
1249 __Unknown(i32),
1250}
1251
1252#[doc(hidden)]
1253impl IntoGlib for UnicodeBreakType {
1254 type GlibType = ffi::GUnicodeBreakType;
1255
1256 fn into_glib(self) -> ffi::GUnicodeBreakType {
1257 match self {
1258 Self::Mandatory => ffi::G_UNICODE_BREAK_MANDATORY,
1259 Self::CarriageReturn => ffi::G_UNICODE_BREAK_CARRIAGE_RETURN,
1260 Self::LineFeed => ffi::G_UNICODE_BREAK_LINE_FEED,
1261 Self::CombiningMark => ffi::G_UNICODE_BREAK_COMBINING_MARK,
1262 Self::Surrogate => ffi::G_UNICODE_BREAK_SURROGATE,
1263 Self::ZeroWidthSpace => ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
1264 Self::Inseparable => ffi::G_UNICODE_BREAK_INSEPARABLE,
1265 Self::NonBreakingGlue => ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE,
1266 Self::Contingent => ffi::G_UNICODE_BREAK_CONTINGENT,
1267 Self::Space => ffi::G_UNICODE_BREAK_SPACE,
1268 Self::After => ffi::G_UNICODE_BREAK_AFTER,
1269 Self::Before => ffi::G_UNICODE_BREAK_BEFORE,
1270 Self::BeforeAndAfter => ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER,
1271 Self::Hyphen => ffi::G_UNICODE_BREAK_HYPHEN,
1272 Self::NonStarter => ffi::G_UNICODE_BREAK_NON_STARTER,
1273 Self::OpenPunctuation => ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION,
1274 Self::ClosePunctuation => ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION,
1275 Self::Quotation => ffi::G_UNICODE_BREAK_QUOTATION,
1276 Self::Exclamation => ffi::G_UNICODE_BREAK_EXCLAMATION,
1277 Self::Ideographic => ffi::G_UNICODE_BREAK_IDEOGRAPHIC,
1278 Self::Numeric => ffi::G_UNICODE_BREAK_NUMERIC,
1279 Self::InfixSeparator => ffi::G_UNICODE_BREAK_INFIX_SEPARATOR,
1280 Self::Symbol => ffi::G_UNICODE_BREAK_SYMBOL,
1281 Self::Alphabetic => ffi::G_UNICODE_BREAK_ALPHABETIC,
1282 Self::Prefix => ffi::G_UNICODE_BREAK_PREFIX,
1283 Self::Postfix => ffi::G_UNICODE_BREAK_POSTFIX,
1284 Self::ComplexContext => ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT,
1285 Self::Ambiguous => ffi::G_UNICODE_BREAK_AMBIGUOUS,
1286 Self::Unknown => ffi::G_UNICODE_BREAK_UNKNOWN,
1287 Self::NextLine => ffi::G_UNICODE_BREAK_NEXT_LINE,
1288 Self::WordJoiner => ffi::G_UNICODE_BREAK_WORD_JOINER,
1289 Self::HangulLJamo => ffi::G_UNICODE_BREAK_HANGUL_L_JAMO,
1290 Self::HangulVJamo => ffi::G_UNICODE_BREAK_HANGUL_V_JAMO,
1291 Self::HangulTJamo => ffi::G_UNICODE_BREAK_HANGUL_T_JAMO,
1292 Self::HangulLvSyllable => ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
1293 Self::HangulLvtSyllable => ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE,
1294 Self::CloseParenthesis => ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS,
1295 Self::ConditionalJapaneseStarter => ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER,
1296 Self::HebrewLetter => ffi::G_UNICODE_BREAK_HEBREW_LETTER,
1297 Self::RegionalIndicator => ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR,
1298 Self::EmojiBase => ffi::G_UNICODE_BREAK_EMOJI_BASE,
1299 Self::EmojiModifier => ffi::G_UNICODE_BREAK_EMOJI_MODIFIER,
1300 Self::ZeroWidthJoiner => ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER,
1301 #[cfg(feature = "v2_80")]
1302 Self::Aksara => ffi::G_UNICODE_BREAK_AKSARA,
1303 #[cfg(feature = "v2_80")]
1304 Self::AksaraPreBase => ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE,
1305 #[cfg(feature = "v2_80")]
1306 Self::AksaraStart => ffi::G_UNICODE_BREAK_AKSARA_START,
1307 #[cfg(feature = "v2_80")]
1308 Self::ViramaFinal => ffi::G_UNICODE_BREAK_VIRAMA_FINAL,
1309 #[cfg(feature = "v2_80")]
1310 Self::Virama => ffi::G_UNICODE_BREAK_VIRAMA,
1311 Self::UnambiguousHyphen => ffi::G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN,
1312 Self::__Unknown(value) => value,
1313 }
1314 }
1315}
1316
1317#[doc(hidden)]
1318impl FromGlib<ffi::GUnicodeBreakType> for UnicodeBreakType {
1319 unsafe fn from_glib(value: ffi::GUnicodeBreakType) -> Self {
1320 match value {
1321 ffi::G_UNICODE_BREAK_MANDATORY => Self::Mandatory,
1322 ffi::G_UNICODE_BREAK_CARRIAGE_RETURN => Self::CarriageReturn,
1323 ffi::G_UNICODE_BREAK_LINE_FEED => Self::LineFeed,
1324 ffi::G_UNICODE_BREAK_COMBINING_MARK => Self::CombiningMark,
1325 ffi::G_UNICODE_BREAK_SURROGATE => Self::Surrogate,
1326 ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE => Self::ZeroWidthSpace,
1327 ffi::G_UNICODE_BREAK_INSEPARABLE => Self::Inseparable,
1328 ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE => Self::NonBreakingGlue,
1329 ffi::G_UNICODE_BREAK_CONTINGENT => Self::Contingent,
1330 ffi::G_UNICODE_BREAK_SPACE => Self::Space,
1331 ffi::G_UNICODE_BREAK_AFTER => Self::After,
1332 ffi::G_UNICODE_BREAK_BEFORE => Self::Before,
1333 ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER => Self::BeforeAndAfter,
1334 ffi::G_UNICODE_BREAK_HYPHEN => Self::Hyphen,
1335 ffi::G_UNICODE_BREAK_NON_STARTER => Self::NonStarter,
1336 ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION => Self::OpenPunctuation,
1337 ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION => Self::ClosePunctuation,
1338 ffi::G_UNICODE_BREAK_QUOTATION => Self::Quotation,
1339 ffi::G_UNICODE_BREAK_EXCLAMATION => Self::Exclamation,
1340 ffi::G_UNICODE_BREAK_IDEOGRAPHIC => Self::Ideographic,
1341 ffi::G_UNICODE_BREAK_NUMERIC => Self::Numeric,
1342 ffi::G_UNICODE_BREAK_INFIX_SEPARATOR => Self::InfixSeparator,
1343 ffi::G_UNICODE_BREAK_SYMBOL => Self::Symbol,
1344 ffi::G_UNICODE_BREAK_ALPHABETIC => Self::Alphabetic,
1345 ffi::G_UNICODE_BREAK_PREFIX => Self::Prefix,
1346 ffi::G_UNICODE_BREAK_POSTFIX => Self::Postfix,
1347 ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT => Self::ComplexContext,
1348 ffi::G_UNICODE_BREAK_AMBIGUOUS => Self::Ambiguous,
1349 ffi::G_UNICODE_BREAK_UNKNOWN => Self::Unknown,
1350 ffi::G_UNICODE_BREAK_NEXT_LINE => Self::NextLine,
1351 ffi::G_UNICODE_BREAK_WORD_JOINER => Self::WordJoiner,
1352 ffi::G_UNICODE_BREAK_HANGUL_L_JAMO => Self::HangulLJamo,
1353 ffi::G_UNICODE_BREAK_HANGUL_V_JAMO => Self::HangulVJamo,
1354 ffi::G_UNICODE_BREAK_HANGUL_T_JAMO => Self::HangulTJamo,
1355 ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE => Self::HangulLvSyllable,
1356 ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE => Self::HangulLvtSyllable,
1357 ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS => Self::CloseParenthesis,
1358 ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER => Self::ConditionalJapaneseStarter,
1359 ffi::G_UNICODE_BREAK_HEBREW_LETTER => Self::HebrewLetter,
1360 ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR => Self::RegionalIndicator,
1361 ffi::G_UNICODE_BREAK_EMOJI_BASE => Self::EmojiBase,
1362 ffi::G_UNICODE_BREAK_EMOJI_MODIFIER => Self::EmojiModifier,
1363 ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER => Self::ZeroWidthJoiner,
1364 #[cfg(feature = "v2_80")]
1365 ffi::G_UNICODE_BREAK_AKSARA => Self::Aksara,
1366 #[cfg(feature = "v2_80")]
1367 ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE => Self::AksaraPreBase,
1368 #[cfg(feature = "v2_80")]
1369 ffi::G_UNICODE_BREAK_AKSARA_START => Self::AksaraStart,
1370 #[cfg(feature = "v2_80")]
1371 ffi::G_UNICODE_BREAK_VIRAMA_FINAL => Self::ViramaFinal,
1372 #[cfg(feature = "v2_80")]
1373 ffi::G_UNICODE_BREAK_VIRAMA => Self::Virama,
1374 ffi::G_UNICODE_BREAK_UNAMBIGUOUS_HYPHEN => Self::UnambiguousHyphen,
1375 value => Self::__Unknown(value),
1376 }
1377 }
1378}
1379
1380impl StaticType for UnicodeBreakType {
1381 #[inline]
1382 #[doc(alias = "g_unicode_break_type_get_type")]
1383 fn static_type() -> crate::Type {
1384 unsafe { from_glib(ffi::g_unicode_break_type_get_type()) }
1385 }
1386}
1387
1388impl crate::HasParamSpec for UnicodeBreakType {
1389 type ParamSpec = crate::ParamSpecEnum;
1390 type SetValue = Self;
1391 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
1392
1393 fn param_spec_builder() -> Self::BuilderFn {
1394 Self::ParamSpec::builder_with_default
1395 }
1396}
1397
1398impl crate::value::ValueType for UnicodeBreakType {
1399 type Type = Self;
1400}
1401
1402unsafe impl<'a> crate::value::FromValue<'a> for UnicodeBreakType {
1403 type Checker = crate::value::GenericValueTypeChecker<Self>;
1404
1405 #[inline]
1406 unsafe fn from_value(value: &'a crate::Value) -> Self {
1407 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1408 }
1409}
1410
1411impl ToValue for UnicodeBreakType {
1412 #[inline]
1413 fn to_value(&self) -> crate::Value {
1414 let mut value = crate::Value::for_value_type::<Self>();
1415 unsafe {
1416 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1417 }
1418 value
1419 }
1420
1421 #[inline]
1422 fn value_type(&self) -> crate::Type {
1423 Self::static_type()
1424 }
1425}
1426
1427impl From<UnicodeBreakType> for crate::Value {
1428 #[inline]
1429 fn from(v: UnicodeBreakType) -> Self {
1430 ToValue::to_value(&v)
1431 }
1432}
1433
1434#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1443#[non_exhaustive]
1444#[doc(alias = "GUnicodeScript")]
1445pub enum UnicodeScript {
1446 #[doc(alias = "G_UNICODE_SCRIPT_INVALID_CODE")]
1448 InvalidCode,
1449 #[doc(alias = "G_UNICODE_SCRIPT_COMMON")]
1451 Common,
1452 #[doc(alias = "G_UNICODE_SCRIPT_INHERITED")]
1455 Inherited,
1456 #[doc(alias = "G_UNICODE_SCRIPT_ARABIC")]
1458 Arabic,
1459 #[doc(alias = "G_UNICODE_SCRIPT_ARMENIAN")]
1461 Armenian,
1462 #[doc(alias = "G_UNICODE_SCRIPT_BENGALI")]
1464 Bengali,
1465 #[doc(alias = "G_UNICODE_SCRIPT_BOPOMOFO")]
1467 Bopomofo,
1468 #[doc(alias = "G_UNICODE_SCRIPT_CHEROKEE")]
1470 Cherokee,
1471 #[doc(alias = "G_UNICODE_SCRIPT_COPTIC")]
1473 Coptic,
1474 #[doc(alias = "G_UNICODE_SCRIPT_CYRILLIC")]
1476 Cyrillic,
1477 #[doc(alias = "G_UNICODE_SCRIPT_DESERET")]
1479 Deseret,
1480 #[doc(alias = "G_UNICODE_SCRIPT_DEVANAGARI")]
1482 Devanagari,
1483 #[doc(alias = "G_UNICODE_SCRIPT_ETHIOPIC")]
1485 Ethiopic,
1486 #[doc(alias = "G_UNICODE_SCRIPT_GEORGIAN")]
1488 Georgian,
1489 #[doc(alias = "G_UNICODE_SCRIPT_GOTHIC")]
1491 Gothic,
1492 #[doc(alias = "G_UNICODE_SCRIPT_GREEK")]
1494 Greek,
1495 #[doc(alias = "G_UNICODE_SCRIPT_GUJARATI")]
1497 Gujarati,
1498 #[doc(alias = "G_UNICODE_SCRIPT_GURMUKHI")]
1500 Gurmukhi,
1501 #[doc(alias = "G_UNICODE_SCRIPT_HAN")]
1503 Han,
1504 #[doc(alias = "G_UNICODE_SCRIPT_HANGUL")]
1506 Hangul,
1507 #[doc(alias = "G_UNICODE_SCRIPT_HEBREW")]
1509 Hebrew,
1510 #[doc(alias = "G_UNICODE_SCRIPT_HIRAGANA")]
1512 Hiragana,
1513 #[doc(alias = "G_UNICODE_SCRIPT_KANNADA")]
1515 Kannada,
1516 #[doc(alias = "G_UNICODE_SCRIPT_KATAKANA")]
1518 Katakana,
1519 #[doc(alias = "G_UNICODE_SCRIPT_KHMER")]
1521 Khmer,
1522 #[doc(alias = "G_UNICODE_SCRIPT_LAO")]
1524 Lao,
1525 #[doc(alias = "G_UNICODE_SCRIPT_LATIN")]
1527 Latin,
1528 #[doc(alias = "G_UNICODE_SCRIPT_MALAYALAM")]
1530 Malayalam,
1531 #[doc(alias = "G_UNICODE_SCRIPT_MONGOLIAN")]
1533 Mongolian,
1534 #[doc(alias = "G_UNICODE_SCRIPT_MYANMAR")]
1536 Myanmar,
1537 #[doc(alias = "G_UNICODE_SCRIPT_OGHAM")]
1539 Ogham,
1540 #[doc(alias = "G_UNICODE_SCRIPT_OLD_ITALIC")]
1542 OldItalic,
1543 #[doc(alias = "G_UNICODE_SCRIPT_ORIYA")]
1545 Oriya,
1546 #[doc(alias = "G_UNICODE_SCRIPT_RUNIC")]
1548 Runic,
1549 #[doc(alias = "G_UNICODE_SCRIPT_SINHALA")]
1551 Sinhala,
1552 #[doc(alias = "G_UNICODE_SCRIPT_SYRIAC")]
1554 Syriac,
1555 #[doc(alias = "G_UNICODE_SCRIPT_TAMIL")]
1557 Tamil,
1558 #[doc(alias = "G_UNICODE_SCRIPT_TELUGU")]
1560 Telugu,
1561 #[doc(alias = "G_UNICODE_SCRIPT_THAANA")]
1563 Thaana,
1564 #[doc(alias = "G_UNICODE_SCRIPT_THAI")]
1566 Thai,
1567 #[doc(alias = "G_UNICODE_SCRIPT_TIBETAN")]
1569 Tibetan,
1570 #[doc(alias = "G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL")]
1572 CanadianAboriginal,
1573 #[doc(alias = "G_UNICODE_SCRIPT_YI")]
1575 Yi,
1576 #[doc(alias = "G_UNICODE_SCRIPT_TAGALOG")]
1578 Tagalog,
1579 #[doc(alias = "G_UNICODE_SCRIPT_HANUNOO")]
1581 Hanunoo,
1582 #[doc(alias = "G_UNICODE_SCRIPT_BUHID")]
1584 Buhid,
1585 #[doc(alias = "G_UNICODE_SCRIPT_TAGBANWA")]
1587 Tagbanwa,
1588 #[doc(alias = "G_UNICODE_SCRIPT_BRAILLE")]
1590 Braille,
1591 #[doc(alias = "G_UNICODE_SCRIPT_CYPRIOT")]
1593 Cypriot,
1594 #[doc(alias = "G_UNICODE_SCRIPT_LIMBU")]
1596 Limbu,
1597 #[doc(alias = "G_UNICODE_SCRIPT_OSMANYA")]
1599 Osmanya,
1600 #[doc(alias = "G_UNICODE_SCRIPT_SHAVIAN")]
1602 Shavian,
1603 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_B")]
1605 LinearB,
1606 #[doc(alias = "G_UNICODE_SCRIPT_TAI_LE")]
1608 TaiLe,
1609 #[doc(alias = "G_UNICODE_SCRIPT_UGARITIC")]
1611 Ugaritic,
1612 #[doc(alias = "G_UNICODE_SCRIPT_NEW_TAI_LUE")]
1614 NewTaiLue,
1615 #[doc(alias = "G_UNICODE_SCRIPT_BUGINESE")]
1617 Buginese,
1618 #[doc(alias = "G_UNICODE_SCRIPT_GLAGOLITIC")]
1620 Glagolitic,
1621 #[doc(alias = "G_UNICODE_SCRIPT_TIFINAGH")]
1623 Tifinagh,
1624 #[doc(alias = "G_UNICODE_SCRIPT_SYLOTI_NAGRI")]
1626 SylotiNagri,
1627 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERSIAN")]
1629 OldPersian,
1630 #[doc(alias = "G_UNICODE_SCRIPT_KHAROSHTHI")]
1632 Kharoshthi,
1633 #[doc(alias = "G_UNICODE_SCRIPT_UNKNOWN")]
1635 Unknown,
1636 #[doc(alias = "G_UNICODE_SCRIPT_BALINESE")]
1638 Balinese,
1639 #[doc(alias = "G_UNICODE_SCRIPT_CUNEIFORM")]
1641 Cuneiform,
1642 #[doc(alias = "G_UNICODE_SCRIPT_PHOENICIAN")]
1644 Phoenician,
1645 #[doc(alias = "G_UNICODE_SCRIPT_PHAGS_PA")]
1647 PhagsPa,
1648 #[doc(alias = "G_UNICODE_SCRIPT_NKO")]
1650 Nko,
1651 #[doc(alias = "G_UNICODE_SCRIPT_KAYAH_LI")]
1653 KayahLi,
1654 #[doc(alias = "G_UNICODE_SCRIPT_LEPCHA")]
1656 Lepcha,
1657 #[doc(alias = "G_UNICODE_SCRIPT_REJANG")]
1659 Rejang,
1660 #[doc(alias = "G_UNICODE_SCRIPT_SUNDANESE")]
1662 Sundanese,
1663 #[doc(alias = "G_UNICODE_SCRIPT_SAURASHTRA")]
1665 Saurashtra,
1666 #[doc(alias = "G_UNICODE_SCRIPT_CHAM")]
1668 Cham,
1669 #[doc(alias = "G_UNICODE_SCRIPT_OL_CHIKI")]
1671 OlChiki,
1672 #[doc(alias = "G_UNICODE_SCRIPT_VAI")]
1674 Vai,
1675 #[doc(alias = "G_UNICODE_SCRIPT_CARIAN")]
1677 Carian,
1678 #[doc(alias = "G_UNICODE_SCRIPT_LYCIAN")]
1680 Lycian,
1681 #[doc(alias = "G_UNICODE_SCRIPT_LYDIAN")]
1683 Lydian,
1684 #[doc(alias = "G_UNICODE_SCRIPT_AVESTAN")]
1686 Avestan,
1687 #[doc(alias = "G_UNICODE_SCRIPT_BAMUM")]
1689 Bamum,
1690 #[doc(alias = "G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS")]
1692 EgyptianHieroglyphs,
1693 #[doc(alias = "G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC")]
1695 ImperialAramaic,
1696 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI")]
1698 InscriptionalPahlavi,
1699 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN")]
1701 InscriptionalParthian,
1702 #[doc(alias = "G_UNICODE_SCRIPT_JAVANESE")]
1704 Javanese,
1705 #[doc(alias = "G_UNICODE_SCRIPT_KAITHI")]
1707 Kaithi,
1708 #[doc(alias = "G_UNICODE_SCRIPT_LISU")]
1710 Lisu,
1711 #[doc(alias = "G_UNICODE_SCRIPT_MEETEI_MAYEK")]
1713 MeeteiMayek,
1714 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN")]
1716 OldSouthArabian,
1717 #[doc(alias = "G_UNICODE_SCRIPT_OLD_TURKIC")]
1719 OldTurkic,
1720 #[doc(alias = "G_UNICODE_SCRIPT_SAMARITAN")]
1722 Samaritan,
1723 #[doc(alias = "G_UNICODE_SCRIPT_TAI_THAM")]
1725 TaiTham,
1726 #[doc(alias = "G_UNICODE_SCRIPT_TAI_VIET")]
1728 TaiViet,
1729 #[doc(alias = "G_UNICODE_SCRIPT_BATAK")]
1731 Batak,
1732 #[doc(alias = "G_UNICODE_SCRIPT_BRAHMI")]
1734 Brahmi,
1735 #[doc(alias = "G_UNICODE_SCRIPT_MANDAIC")]
1737 Mandaic,
1738 #[doc(alias = "G_UNICODE_SCRIPT_CHAKMA")]
1740 Chakma,
1741 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_CURSIVE")]
1743 MeroiticCursive,
1744 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS")]
1746 MeroiticHieroglyphs,
1747 #[doc(alias = "G_UNICODE_SCRIPT_MIAO")]
1749 Miao,
1750 #[doc(alias = "G_UNICODE_SCRIPT_SHARADA")]
1752 Sharada,
1753 #[doc(alias = "G_UNICODE_SCRIPT_SORA_SOMPENG")]
1755 SoraSompeng,
1756 #[doc(alias = "G_UNICODE_SCRIPT_TAKRI")]
1758 Takri,
1759 #[doc(alias = "G_UNICODE_SCRIPT_BASSA_VAH")]
1761 BassaVah,
1762 #[doc(alias = "G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN")]
1764 CaucasianAlbanian,
1765 #[doc(alias = "G_UNICODE_SCRIPT_DUPLOYAN")]
1767 Duployan,
1768 #[doc(alias = "G_UNICODE_SCRIPT_ELBASAN")]
1770 Elbasan,
1771 #[doc(alias = "G_UNICODE_SCRIPT_GRANTHA")]
1773 Grantha,
1774 #[doc(alias = "G_UNICODE_SCRIPT_KHOJKI")]
1776 Khojki,
1777 #[doc(alias = "G_UNICODE_SCRIPT_KHUDAWADI")]
1779 Khudawadi,
1780 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_A")]
1782 LinearA,
1783 #[doc(alias = "G_UNICODE_SCRIPT_MAHAJANI")]
1785 Mahajani,
1786 #[doc(alias = "G_UNICODE_SCRIPT_MANICHAEAN")]
1788 Manichaean,
1789 #[doc(alias = "G_UNICODE_SCRIPT_MENDE_KIKAKUI")]
1791 MendeKikakui,
1792 #[doc(alias = "G_UNICODE_SCRIPT_MODI")]
1794 Modi,
1795 #[doc(alias = "G_UNICODE_SCRIPT_MRO")]
1797 Mro,
1798 #[doc(alias = "G_UNICODE_SCRIPT_NABATAEAN")]
1800 Nabataean,
1801 #[doc(alias = "G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN")]
1803 OldNorthArabian,
1804 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERMIC")]
1806 OldPermic,
1807 #[doc(alias = "G_UNICODE_SCRIPT_PAHAWH_HMONG")]
1809 PahawhHmong,
1810 #[doc(alias = "G_UNICODE_SCRIPT_PALMYRENE")]
1812 Palmyrene,
1813 #[doc(alias = "G_UNICODE_SCRIPT_PAU_CIN_HAU")]
1815 PauCinHau,
1816 #[doc(alias = "G_UNICODE_SCRIPT_PSALTER_PAHLAVI")]
1818 PsalterPahlavi,
1819 #[doc(alias = "G_UNICODE_SCRIPT_SIDDHAM")]
1821 Siddham,
1822 #[doc(alias = "G_UNICODE_SCRIPT_TIRHUTA")]
1824 Tirhuta,
1825 #[doc(alias = "G_UNICODE_SCRIPT_WARANG_CITI")]
1827 WarangCiti,
1828 #[doc(alias = "G_UNICODE_SCRIPT_AHOM")]
1830 Ahom,
1831 #[doc(alias = "G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
1833 AnatolianHieroglyphs,
1834 #[doc(alias = "G_UNICODE_SCRIPT_HATRAN")]
1836 Hatran,
1837 #[doc(alias = "G_UNICODE_SCRIPT_MULTANI")]
1839 Multani,
1840 #[doc(alias = "G_UNICODE_SCRIPT_OLD_HUNGARIAN")]
1842 OldHungarian,
1843 #[doc(alias = "G_UNICODE_SCRIPT_SIGNWRITING")]
1845 Signwriting,
1846 #[doc(alias = "G_UNICODE_SCRIPT_ADLAM")]
1848 Adlam,
1849 #[doc(alias = "G_UNICODE_SCRIPT_BHAIKSUKI")]
1851 Bhaiksuki,
1852 #[doc(alias = "G_UNICODE_SCRIPT_MARCHEN")]
1854 Marchen,
1855 #[doc(alias = "G_UNICODE_SCRIPT_NEWA")]
1857 Newa,
1858 #[doc(alias = "G_UNICODE_SCRIPT_OSAGE")]
1860 Osage,
1861 #[doc(alias = "G_UNICODE_SCRIPT_TANGUT")]
1863 Tangut,
1864 #[doc(alias = "G_UNICODE_SCRIPT_MASARAM_GONDI")]
1866 MasaramGondi,
1867 #[doc(alias = "G_UNICODE_SCRIPT_NUSHU")]
1869 Nushu,
1870 #[doc(alias = "G_UNICODE_SCRIPT_SOYOMBO")]
1872 Soyombo,
1873 #[doc(alias = "G_UNICODE_SCRIPT_ZANABAZAR_SQUARE")]
1875 ZanabazarSquare,
1876 #[doc(alias = "G_UNICODE_SCRIPT_DOGRA")]
1878 Dogra,
1879 #[doc(alias = "G_UNICODE_SCRIPT_GUNJALA_GONDI")]
1881 GunjalaGondi,
1882 #[doc(alias = "G_UNICODE_SCRIPT_HANIFI_ROHINGYA")]
1884 HanifiRohingya,
1885 #[doc(alias = "G_UNICODE_SCRIPT_MAKASAR")]
1887 Makasar,
1888 #[doc(alias = "G_UNICODE_SCRIPT_MEDEFAIDRIN")]
1890 Medefaidrin,
1891 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOGDIAN")]
1893 OldSogdian,
1894 #[doc(alias = "G_UNICODE_SCRIPT_SOGDIAN")]
1896 Sogdian,
1897 #[doc(alias = "G_UNICODE_SCRIPT_ELYMAIC")]
1899 Elymaic,
1900 #[doc(alias = "G_UNICODE_SCRIPT_NANDINAGARI")]
1902 Nandinagari,
1903 #[doc(alias = "G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG")]
1905 NyiakengPuachueHmong,
1906 #[doc(alias = "G_UNICODE_SCRIPT_WANCHO")]
1908 Wancho,
1909 #[doc(alias = "G_UNICODE_SCRIPT_CHORASMIAN")]
1911 Chorasmian,
1912 #[doc(alias = "G_UNICODE_SCRIPT_DIVES_AKURU")]
1914 DivesAkuru,
1915 #[doc(alias = "G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT")]
1917 KhitanSmallScript,
1918 #[doc(alias = "G_UNICODE_SCRIPT_YEZIDI")]
1920 Yezidi,
1921 #[cfg(feature = "v2_72")]
1923 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1924 #[doc(alias = "G_UNICODE_SCRIPT_CYPRO_MINOAN")]
1925 CyproMinoan,
1926 #[cfg(feature = "v2_72")]
1928 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1929 #[doc(alias = "G_UNICODE_SCRIPT_OLD_UYGHUR")]
1930 OldUyghur,
1931 #[cfg(feature = "v2_72")]
1933 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1934 #[doc(alias = "G_UNICODE_SCRIPT_TANGSA")]
1935 Tangsa,
1936 #[cfg(feature = "v2_72")]
1938 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1939 #[doc(alias = "G_UNICODE_SCRIPT_TOTO")]
1940 Toto,
1941 #[cfg(feature = "v2_72")]
1943 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1944 #[doc(alias = "G_UNICODE_SCRIPT_VITHKUQI")]
1945 Vithkuqi,
1946 #[cfg(feature = "v2_72")]
1948 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
1949 #[doc(alias = "G_UNICODE_SCRIPT_MATH")]
1950 Math,
1951 #[cfg(feature = "v2_74")]
1953 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
1954 #[doc(alias = "G_UNICODE_SCRIPT_KAWI")]
1955 Kawi,
1956 #[cfg(feature = "v2_74")]
1958 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
1959 #[doc(alias = "G_UNICODE_SCRIPT_NAG_MUNDARI")]
1960 NagMundari,
1961 #[cfg(feature = "v2_84")]
1963 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1964 #[doc(alias = "G_UNICODE_SCRIPT_TODHRI")]
1965 Todhri,
1966 #[cfg(feature = "v2_84")]
1968 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1969 #[doc(alias = "G_UNICODE_SCRIPT_GARAY")]
1970 Garay,
1971 #[cfg(feature = "v2_84")]
1973 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1974 #[doc(alias = "G_UNICODE_SCRIPT_TULU_TIGALARI")]
1975 TuluTigalari,
1976 #[cfg(feature = "v2_84")]
1978 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1979 #[doc(alias = "G_UNICODE_SCRIPT_SUNUWAR")]
1980 Sunuwar,
1981 #[cfg(feature = "v2_84")]
1983 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1984 #[doc(alias = "G_UNICODE_SCRIPT_GURUNG_KHEMA")]
1985 GurungKhema,
1986 #[cfg(feature = "v2_84")]
1988 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1989 #[doc(alias = "G_UNICODE_SCRIPT_KIRAT_RAI")]
1990 KiratRai,
1991 #[cfg(feature = "v2_84")]
1993 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
1994 #[doc(alias = "G_UNICODE_SCRIPT_OL_ONAL")]
1995 OlOnal,
1996 #[doc(alias = "G_UNICODE_SCRIPT_SIDETIC")]
1998 Sidetic,
1999 #[doc(alias = "G_UNICODE_SCRIPT_TOLONG_SIKI")]
2001 TolongSiki,
2002 #[doc(alias = "G_UNICODE_SCRIPT_TAI_YO")]
2004 TaiYo,
2005 #[doc(alias = "G_UNICODE_SCRIPT_BERIA_ERFE")]
2007 BeriaErfe,
2008 #[doc(hidden)]
2009 __Unknown(i32),
2010}
2011
2012impl UnicodeScript {
2013 #[doc(alias = "g_unicode_script_from_iso15924")]
2014 pub fn from_iso15924(iso15924: u32) -> UnicodeScript {
2015 unsafe { from_glib(ffi::g_unicode_script_from_iso15924(iso15924)) }
2016 }
2017
2018 #[doc(alias = "g_unicode_script_to_iso15924")]
2019 pub fn to_iso15924(self) -> u32 {
2020 unsafe { ffi::g_unicode_script_to_iso15924(self.into_glib()) }
2021 }
2022}
2023
2024#[doc(hidden)]
2025impl IntoGlib for UnicodeScript {
2026 type GlibType = ffi::GUnicodeScript;
2027
2028 fn into_glib(self) -> ffi::GUnicodeScript {
2029 match self {
2030 Self::InvalidCode => ffi::G_UNICODE_SCRIPT_INVALID_CODE,
2031 Self::Common => ffi::G_UNICODE_SCRIPT_COMMON,
2032 Self::Inherited => ffi::G_UNICODE_SCRIPT_INHERITED,
2033 Self::Arabic => ffi::G_UNICODE_SCRIPT_ARABIC,
2034 Self::Armenian => ffi::G_UNICODE_SCRIPT_ARMENIAN,
2035 Self::Bengali => ffi::G_UNICODE_SCRIPT_BENGALI,
2036 Self::Bopomofo => ffi::G_UNICODE_SCRIPT_BOPOMOFO,
2037 Self::Cherokee => ffi::G_UNICODE_SCRIPT_CHEROKEE,
2038 Self::Coptic => ffi::G_UNICODE_SCRIPT_COPTIC,
2039 Self::Cyrillic => ffi::G_UNICODE_SCRIPT_CYRILLIC,
2040 Self::Deseret => ffi::G_UNICODE_SCRIPT_DESERET,
2041 Self::Devanagari => ffi::G_UNICODE_SCRIPT_DEVANAGARI,
2042 Self::Ethiopic => ffi::G_UNICODE_SCRIPT_ETHIOPIC,
2043 Self::Georgian => ffi::G_UNICODE_SCRIPT_GEORGIAN,
2044 Self::Gothic => ffi::G_UNICODE_SCRIPT_GOTHIC,
2045 Self::Greek => ffi::G_UNICODE_SCRIPT_GREEK,
2046 Self::Gujarati => ffi::G_UNICODE_SCRIPT_GUJARATI,
2047 Self::Gurmukhi => ffi::G_UNICODE_SCRIPT_GURMUKHI,
2048 Self::Han => ffi::G_UNICODE_SCRIPT_HAN,
2049 Self::Hangul => ffi::G_UNICODE_SCRIPT_HANGUL,
2050 Self::Hebrew => ffi::G_UNICODE_SCRIPT_HEBREW,
2051 Self::Hiragana => ffi::G_UNICODE_SCRIPT_HIRAGANA,
2052 Self::Kannada => ffi::G_UNICODE_SCRIPT_KANNADA,
2053 Self::Katakana => ffi::G_UNICODE_SCRIPT_KATAKANA,
2054 Self::Khmer => ffi::G_UNICODE_SCRIPT_KHMER,
2055 Self::Lao => ffi::G_UNICODE_SCRIPT_LAO,
2056 Self::Latin => ffi::G_UNICODE_SCRIPT_LATIN,
2057 Self::Malayalam => ffi::G_UNICODE_SCRIPT_MALAYALAM,
2058 Self::Mongolian => ffi::G_UNICODE_SCRIPT_MONGOLIAN,
2059 Self::Myanmar => ffi::G_UNICODE_SCRIPT_MYANMAR,
2060 Self::Ogham => ffi::G_UNICODE_SCRIPT_OGHAM,
2061 Self::OldItalic => ffi::G_UNICODE_SCRIPT_OLD_ITALIC,
2062 Self::Oriya => ffi::G_UNICODE_SCRIPT_ORIYA,
2063 Self::Runic => ffi::G_UNICODE_SCRIPT_RUNIC,
2064 Self::Sinhala => ffi::G_UNICODE_SCRIPT_SINHALA,
2065 Self::Syriac => ffi::G_UNICODE_SCRIPT_SYRIAC,
2066 Self::Tamil => ffi::G_UNICODE_SCRIPT_TAMIL,
2067 Self::Telugu => ffi::G_UNICODE_SCRIPT_TELUGU,
2068 Self::Thaana => ffi::G_UNICODE_SCRIPT_THAANA,
2069 Self::Thai => ffi::G_UNICODE_SCRIPT_THAI,
2070 Self::Tibetan => ffi::G_UNICODE_SCRIPT_TIBETAN,
2071 Self::CanadianAboriginal => ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL,
2072 Self::Yi => ffi::G_UNICODE_SCRIPT_YI,
2073 Self::Tagalog => ffi::G_UNICODE_SCRIPT_TAGALOG,
2074 Self::Hanunoo => ffi::G_UNICODE_SCRIPT_HANUNOO,
2075 Self::Buhid => ffi::G_UNICODE_SCRIPT_BUHID,
2076 Self::Tagbanwa => ffi::G_UNICODE_SCRIPT_TAGBANWA,
2077 Self::Braille => ffi::G_UNICODE_SCRIPT_BRAILLE,
2078 Self::Cypriot => ffi::G_UNICODE_SCRIPT_CYPRIOT,
2079 Self::Limbu => ffi::G_UNICODE_SCRIPT_LIMBU,
2080 Self::Osmanya => ffi::G_UNICODE_SCRIPT_OSMANYA,
2081 Self::Shavian => ffi::G_UNICODE_SCRIPT_SHAVIAN,
2082 Self::LinearB => ffi::G_UNICODE_SCRIPT_LINEAR_B,
2083 Self::TaiLe => ffi::G_UNICODE_SCRIPT_TAI_LE,
2084 Self::Ugaritic => ffi::G_UNICODE_SCRIPT_UGARITIC,
2085 Self::NewTaiLue => ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE,
2086 Self::Buginese => ffi::G_UNICODE_SCRIPT_BUGINESE,
2087 Self::Glagolitic => ffi::G_UNICODE_SCRIPT_GLAGOLITIC,
2088 Self::Tifinagh => ffi::G_UNICODE_SCRIPT_TIFINAGH,
2089 Self::SylotiNagri => ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI,
2090 Self::OldPersian => ffi::G_UNICODE_SCRIPT_OLD_PERSIAN,
2091 Self::Kharoshthi => ffi::G_UNICODE_SCRIPT_KHAROSHTHI,
2092 Self::Unknown => ffi::G_UNICODE_SCRIPT_UNKNOWN,
2093 Self::Balinese => ffi::G_UNICODE_SCRIPT_BALINESE,
2094 Self::Cuneiform => ffi::G_UNICODE_SCRIPT_CUNEIFORM,
2095 Self::Phoenician => ffi::G_UNICODE_SCRIPT_PHOENICIAN,
2096 Self::PhagsPa => ffi::G_UNICODE_SCRIPT_PHAGS_PA,
2097 Self::Nko => ffi::G_UNICODE_SCRIPT_NKO,
2098 Self::KayahLi => ffi::G_UNICODE_SCRIPT_KAYAH_LI,
2099 Self::Lepcha => ffi::G_UNICODE_SCRIPT_LEPCHA,
2100 Self::Rejang => ffi::G_UNICODE_SCRIPT_REJANG,
2101 Self::Sundanese => ffi::G_UNICODE_SCRIPT_SUNDANESE,
2102 Self::Saurashtra => ffi::G_UNICODE_SCRIPT_SAURASHTRA,
2103 Self::Cham => ffi::G_UNICODE_SCRIPT_CHAM,
2104 Self::OlChiki => ffi::G_UNICODE_SCRIPT_OL_CHIKI,
2105 Self::Vai => ffi::G_UNICODE_SCRIPT_VAI,
2106 Self::Carian => ffi::G_UNICODE_SCRIPT_CARIAN,
2107 Self::Lycian => ffi::G_UNICODE_SCRIPT_LYCIAN,
2108 Self::Lydian => ffi::G_UNICODE_SCRIPT_LYDIAN,
2109 Self::Avestan => ffi::G_UNICODE_SCRIPT_AVESTAN,
2110 Self::Bamum => ffi::G_UNICODE_SCRIPT_BAMUM,
2111 Self::EgyptianHieroglyphs => ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS,
2112 Self::ImperialAramaic => ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC,
2113 Self::InscriptionalPahlavi => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI,
2114 Self::InscriptionalParthian => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN,
2115 Self::Javanese => ffi::G_UNICODE_SCRIPT_JAVANESE,
2116 Self::Kaithi => ffi::G_UNICODE_SCRIPT_KAITHI,
2117 Self::Lisu => ffi::G_UNICODE_SCRIPT_LISU,
2118 Self::MeeteiMayek => ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK,
2119 Self::OldSouthArabian => ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN,
2120 Self::OldTurkic => ffi::G_UNICODE_SCRIPT_OLD_TURKIC,
2121 Self::Samaritan => ffi::G_UNICODE_SCRIPT_SAMARITAN,
2122 Self::TaiTham => ffi::G_UNICODE_SCRIPT_TAI_THAM,
2123 Self::TaiViet => ffi::G_UNICODE_SCRIPT_TAI_VIET,
2124 Self::Batak => ffi::G_UNICODE_SCRIPT_BATAK,
2125 Self::Brahmi => ffi::G_UNICODE_SCRIPT_BRAHMI,
2126 Self::Mandaic => ffi::G_UNICODE_SCRIPT_MANDAIC,
2127 Self::Chakma => ffi::G_UNICODE_SCRIPT_CHAKMA,
2128 Self::MeroiticCursive => ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE,
2129 Self::MeroiticHieroglyphs => ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS,
2130 Self::Miao => ffi::G_UNICODE_SCRIPT_MIAO,
2131 Self::Sharada => ffi::G_UNICODE_SCRIPT_SHARADA,
2132 Self::SoraSompeng => ffi::G_UNICODE_SCRIPT_SORA_SOMPENG,
2133 Self::Takri => ffi::G_UNICODE_SCRIPT_TAKRI,
2134 Self::BassaVah => ffi::G_UNICODE_SCRIPT_BASSA_VAH,
2135 Self::CaucasianAlbanian => ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN,
2136 Self::Duployan => ffi::G_UNICODE_SCRIPT_DUPLOYAN,
2137 Self::Elbasan => ffi::G_UNICODE_SCRIPT_ELBASAN,
2138 Self::Grantha => ffi::G_UNICODE_SCRIPT_GRANTHA,
2139 Self::Khojki => ffi::G_UNICODE_SCRIPT_KHOJKI,
2140 Self::Khudawadi => ffi::G_UNICODE_SCRIPT_KHUDAWADI,
2141 Self::LinearA => ffi::G_UNICODE_SCRIPT_LINEAR_A,
2142 Self::Mahajani => ffi::G_UNICODE_SCRIPT_MAHAJANI,
2143 Self::Manichaean => ffi::G_UNICODE_SCRIPT_MANICHAEAN,
2144 Self::MendeKikakui => ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI,
2145 Self::Modi => ffi::G_UNICODE_SCRIPT_MODI,
2146 Self::Mro => ffi::G_UNICODE_SCRIPT_MRO,
2147 Self::Nabataean => ffi::G_UNICODE_SCRIPT_NABATAEAN,
2148 Self::OldNorthArabian => ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN,
2149 Self::OldPermic => ffi::G_UNICODE_SCRIPT_OLD_PERMIC,
2150 Self::PahawhHmong => ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG,
2151 Self::Palmyrene => ffi::G_UNICODE_SCRIPT_PALMYRENE,
2152 Self::PauCinHau => ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU,
2153 Self::PsalterPahlavi => ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI,
2154 Self::Siddham => ffi::G_UNICODE_SCRIPT_SIDDHAM,
2155 Self::Tirhuta => ffi::G_UNICODE_SCRIPT_TIRHUTA,
2156 Self::WarangCiti => ffi::G_UNICODE_SCRIPT_WARANG_CITI,
2157 Self::Ahom => ffi::G_UNICODE_SCRIPT_AHOM,
2158 Self::AnatolianHieroglyphs => ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS,
2159 Self::Hatran => ffi::G_UNICODE_SCRIPT_HATRAN,
2160 Self::Multani => ffi::G_UNICODE_SCRIPT_MULTANI,
2161 Self::OldHungarian => ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN,
2162 Self::Signwriting => ffi::G_UNICODE_SCRIPT_SIGNWRITING,
2163 Self::Adlam => ffi::G_UNICODE_SCRIPT_ADLAM,
2164 Self::Bhaiksuki => ffi::G_UNICODE_SCRIPT_BHAIKSUKI,
2165 Self::Marchen => ffi::G_UNICODE_SCRIPT_MARCHEN,
2166 Self::Newa => ffi::G_UNICODE_SCRIPT_NEWA,
2167 Self::Osage => ffi::G_UNICODE_SCRIPT_OSAGE,
2168 Self::Tangut => ffi::G_UNICODE_SCRIPT_TANGUT,
2169 Self::MasaramGondi => ffi::G_UNICODE_SCRIPT_MASARAM_GONDI,
2170 Self::Nushu => ffi::G_UNICODE_SCRIPT_NUSHU,
2171 Self::Soyombo => ffi::G_UNICODE_SCRIPT_SOYOMBO,
2172 Self::ZanabazarSquare => ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE,
2173 Self::Dogra => ffi::G_UNICODE_SCRIPT_DOGRA,
2174 Self::GunjalaGondi => ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI,
2175 Self::HanifiRohingya => ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA,
2176 Self::Makasar => ffi::G_UNICODE_SCRIPT_MAKASAR,
2177 Self::Medefaidrin => ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN,
2178 Self::OldSogdian => ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN,
2179 Self::Sogdian => ffi::G_UNICODE_SCRIPT_SOGDIAN,
2180 Self::Elymaic => ffi::G_UNICODE_SCRIPT_ELYMAIC,
2181 Self::Nandinagari => ffi::G_UNICODE_SCRIPT_NANDINAGARI,
2182 Self::NyiakengPuachueHmong => ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG,
2183 Self::Wancho => ffi::G_UNICODE_SCRIPT_WANCHO,
2184 Self::Chorasmian => ffi::G_UNICODE_SCRIPT_CHORASMIAN,
2185 Self::DivesAkuru => ffi::G_UNICODE_SCRIPT_DIVES_AKURU,
2186 Self::KhitanSmallScript => ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,
2187 Self::Yezidi => ffi::G_UNICODE_SCRIPT_YEZIDI,
2188 #[cfg(feature = "v2_72")]
2189 Self::CyproMinoan => ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN,
2190 #[cfg(feature = "v2_72")]
2191 Self::OldUyghur => ffi::G_UNICODE_SCRIPT_OLD_UYGHUR,
2192 #[cfg(feature = "v2_72")]
2193 Self::Tangsa => ffi::G_UNICODE_SCRIPT_TANGSA,
2194 #[cfg(feature = "v2_72")]
2195 Self::Toto => ffi::G_UNICODE_SCRIPT_TOTO,
2196 #[cfg(feature = "v2_72")]
2197 Self::Vithkuqi => ffi::G_UNICODE_SCRIPT_VITHKUQI,
2198 #[cfg(feature = "v2_72")]
2199 Self::Math => ffi::G_UNICODE_SCRIPT_MATH,
2200 #[cfg(feature = "v2_74")]
2201 Self::Kawi => ffi::G_UNICODE_SCRIPT_KAWI,
2202 #[cfg(feature = "v2_74")]
2203 Self::NagMundari => ffi::G_UNICODE_SCRIPT_NAG_MUNDARI,
2204 #[cfg(feature = "v2_84")]
2205 Self::Todhri => ffi::G_UNICODE_SCRIPT_TODHRI,
2206 #[cfg(feature = "v2_84")]
2207 Self::Garay => ffi::G_UNICODE_SCRIPT_GARAY,
2208 #[cfg(feature = "v2_84")]
2209 Self::TuluTigalari => ffi::G_UNICODE_SCRIPT_TULU_TIGALARI,
2210 #[cfg(feature = "v2_84")]
2211 Self::Sunuwar => ffi::G_UNICODE_SCRIPT_SUNUWAR,
2212 #[cfg(feature = "v2_84")]
2213 Self::GurungKhema => ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA,
2214 #[cfg(feature = "v2_84")]
2215 Self::KiratRai => ffi::G_UNICODE_SCRIPT_KIRAT_RAI,
2216 #[cfg(feature = "v2_84")]
2217 Self::OlOnal => ffi::G_UNICODE_SCRIPT_OL_ONAL,
2218 Self::Sidetic => ffi::G_UNICODE_SCRIPT_SIDETIC,
2219 Self::TolongSiki => ffi::G_UNICODE_SCRIPT_TOLONG_SIKI,
2220 Self::TaiYo => ffi::G_UNICODE_SCRIPT_TAI_YO,
2221 Self::BeriaErfe => ffi::G_UNICODE_SCRIPT_BERIA_ERFE,
2222 Self::__Unknown(value) => value,
2223 }
2224 }
2225}
2226
2227#[doc(hidden)]
2228impl FromGlib<ffi::GUnicodeScript> for UnicodeScript {
2229 unsafe fn from_glib(value: ffi::GUnicodeScript) -> Self {
2230 match value {
2231 ffi::G_UNICODE_SCRIPT_INVALID_CODE => Self::InvalidCode,
2232 ffi::G_UNICODE_SCRIPT_COMMON => Self::Common,
2233 ffi::G_UNICODE_SCRIPT_INHERITED => Self::Inherited,
2234 ffi::G_UNICODE_SCRIPT_ARABIC => Self::Arabic,
2235 ffi::G_UNICODE_SCRIPT_ARMENIAN => Self::Armenian,
2236 ffi::G_UNICODE_SCRIPT_BENGALI => Self::Bengali,
2237 ffi::G_UNICODE_SCRIPT_BOPOMOFO => Self::Bopomofo,
2238 ffi::G_UNICODE_SCRIPT_CHEROKEE => Self::Cherokee,
2239 ffi::G_UNICODE_SCRIPT_COPTIC => Self::Coptic,
2240 ffi::G_UNICODE_SCRIPT_CYRILLIC => Self::Cyrillic,
2241 ffi::G_UNICODE_SCRIPT_DESERET => Self::Deseret,
2242 ffi::G_UNICODE_SCRIPT_DEVANAGARI => Self::Devanagari,
2243 ffi::G_UNICODE_SCRIPT_ETHIOPIC => Self::Ethiopic,
2244 ffi::G_UNICODE_SCRIPT_GEORGIAN => Self::Georgian,
2245 ffi::G_UNICODE_SCRIPT_GOTHIC => Self::Gothic,
2246 ffi::G_UNICODE_SCRIPT_GREEK => Self::Greek,
2247 ffi::G_UNICODE_SCRIPT_GUJARATI => Self::Gujarati,
2248 ffi::G_UNICODE_SCRIPT_GURMUKHI => Self::Gurmukhi,
2249 ffi::G_UNICODE_SCRIPT_HAN => Self::Han,
2250 ffi::G_UNICODE_SCRIPT_HANGUL => Self::Hangul,
2251 ffi::G_UNICODE_SCRIPT_HEBREW => Self::Hebrew,
2252 ffi::G_UNICODE_SCRIPT_HIRAGANA => Self::Hiragana,
2253 ffi::G_UNICODE_SCRIPT_KANNADA => Self::Kannada,
2254 ffi::G_UNICODE_SCRIPT_KATAKANA => Self::Katakana,
2255 ffi::G_UNICODE_SCRIPT_KHMER => Self::Khmer,
2256 ffi::G_UNICODE_SCRIPT_LAO => Self::Lao,
2257 ffi::G_UNICODE_SCRIPT_LATIN => Self::Latin,
2258 ffi::G_UNICODE_SCRIPT_MALAYALAM => Self::Malayalam,
2259 ffi::G_UNICODE_SCRIPT_MONGOLIAN => Self::Mongolian,
2260 ffi::G_UNICODE_SCRIPT_MYANMAR => Self::Myanmar,
2261 ffi::G_UNICODE_SCRIPT_OGHAM => Self::Ogham,
2262 ffi::G_UNICODE_SCRIPT_OLD_ITALIC => Self::OldItalic,
2263 ffi::G_UNICODE_SCRIPT_ORIYA => Self::Oriya,
2264 ffi::G_UNICODE_SCRIPT_RUNIC => Self::Runic,
2265 ffi::G_UNICODE_SCRIPT_SINHALA => Self::Sinhala,
2266 ffi::G_UNICODE_SCRIPT_SYRIAC => Self::Syriac,
2267 ffi::G_UNICODE_SCRIPT_TAMIL => Self::Tamil,
2268 ffi::G_UNICODE_SCRIPT_TELUGU => Self::Telugu,
2269 ffi::G_UNICODE_SCRIPT_THAANA => Self::Thaana,
2270 ffi::G_UNICODE_SCRIPT_THAI => Self::Thai,
2271 ffi::G_UNICODE_SCRIPT_TIBETAN => Self::Tibetan,
2272 ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2273 ffi::G_UNICODE_SCRIPT_YI => Self::Yi,
2274 ffi::G_UNICODE_SCRIPT_TAGALOG => Self::Tagalog,
2275 ffi::G_UNICODE_SCRIPT_HANUNOO => Self::Hanunoo,
2276 ffi::G_UNICODE_SCRIPT_BUHID => Self::Buhid,
2277 ffi::G_UNICODE_SCRIPT_TAGBANWA => Self::Tagbanwa,
2278 ffi::G_UNICODE_SCRIPT_BRAILLE => Self::Braille,
2279 ffi::G_UNICODE_SCRIPT_CYPRIOT => Self::Cypriot,
2280 ffi::G_UNICODE_SCRIPT_LIMBU => Self::Limbu,
2281 ffi::G_UNICODE_SCRIPT_OSMANYA => Self::Osmanya,
2282 ffi::G_UNICODE_SCRIPT_SHAVIAN => Self::Shavian,
2283 ffi::G_UNICODE_SCRIPT_LINEAR_B => Self::LinearB,
2284 ffi::G_UNICODE_SCRIPT_TAI_LE => Self::TaiLe,
2285 ffi::G_UNICODE_SCRIPT_UGARITIC => Self::Ugaritic,
2286 ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2287 ffi::G_UNICODE_SCRIPT_BUGINESE => Self::Buginese,
2288 ffi::G_UNICODE_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2289 ffi::G_UNICODE_SCRIPT_TIFINAGH => Self::Tifinagh,
2290 ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2291 ffi::G_UNICODE_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2292 ffi::G_UNICODE_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2293 ffi::G_UNICODE_SCRIPT_UNKNOWN => Self::Unknown,
2294 ffi::G_UNICODE_SCRIPT_BALINESE => Self::Balinese,
2295 ffi::G_UNICODE_SCRIPT_CUNEIFORM => Self::Cuneiform,
2296 ffi::G_UNICODE_SCRIPT_PHOENICIAN => Self::Phoenician,
2297 ffi::G_UNICODE_SCRIPT_PHAGS_PA => Self::PhagsPa,
2298 ffi::G_UNICODE_SCRIPT_NKO => Self::Nko,
2299 ffi::G_UNICODE_SCRIPT_KAYAH_LI => Self::KayahLi,
2300 ffi::G_UNICODE_SCRIPT_LEPCHA => Self::Lepcha,
2301 ffi::G_UNICODE_SCRIPT_REJANG => Self::Rejang,
2302 ffi::G_UNICODE_SCRIPT_SUNDANESE => Self::Sundanese,
2303 ffi::G_UNICODE_SCRIPT_SAURASHTRA => Self::Saurashtra,
2304 ffi::G_UNICODE_SCRIPT_CHAM => Self::Cham,
2305 ffi::G_UNICODE_SCRIPT_OL_CHIKI => Self::OlChiki,
2306 ffi::G_UNICODE_SCRIPT_VAI => Self::Vai,
2307 ffi::G_UNICODE_SCRIPT_CARIAN => Self::Carian,
2308 ffi::G_UNICODE_SCRIPT_LYCIAN => Self::Lycian,
2309 ffi::G_UNICODE_SCRIPT_LYDIAN => Self::Lydian,
2310 ffi::G_UNICODE_SCRIPT_AVESTAN => Self::Avestan,
2311 ffi::G_UNICODE_SCRIPT_BAMUM => Self::Bamum,
2312 ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS => Self::EgyptianHieroglyphs,
2313 ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC => Self::ImperialAramaic,
2314 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI => Self::InscriptionalPahlavi,
2315 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN => Self::InscriptionalParthian,
2316 ffi::G_UNICODE_SCRIPT_JAVANESE => Self::Javanese,
2317 ffi::G_UNICODE_SCRIPT_KAITHI => Self::Kaithi,
2318 ffi::G_UNICODE_SCRIPT_LISU => Self::Lisu,
2319 ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK => Self::MeeteiMayek,
2320 ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN => Self::OldSouthArabian,
2321 ffi::G_UNICODE_SCRIPT_OLD_TURKIC => Self::OldTurkic,
2322 ffi::G_UNICODE_SCRIPT_SAMARITAN => Self::Samaritan,
2323 ffi::G_UNICODE_SCRIPT_TAI_THAM => Self::TaiTham,
2324 ffi::G_UNICODE_SCRIPT_TAI_VIET => Self::TaiViet,
2325 ffi::G_UNICODE_SCRIPT_BATAK => Self::Batak,
2326 ffi::G_UNICODE_SCRIPT_BRAHMI => Self::Brahmi,
2327 ffi::G_UNICODE_SCRIPT_MANDAIC => Self::Mandaic,
2328 ffi::G_UNICODE_SCRIPT_CHAKMA => Self::Chakma,
2329 ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2330 ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2331 ffi::G_UNICODE_SCRIPT_MIAO => Self::Miao,
2332 ffi::G_UNICODE_SCRIPT_SHARADA => Self::Sharada,
2333 ffi::G_UNICODE_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2334 ffi::G_UNICODE_SCRIPT_TAKRI => Self::Takri,
2335 ffi::G_UNICODE_SCRIPT_BASSA_VAH => Self::BassaVah,
2336 ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2337 ffi::G_UNICODE_SCRIPT_DUPLOYAN => Self::Duployan,
2338 ffi::G_UNICODE_SCRIPT_ELBASAN => Self::Elbasan,
2339 ffi::G_UNICODE_SCRIPT_GRANTHA => Self::Grantha,
2340 ffi::G_UNICODE_SCRIPT_KHOJKI => Self::Khojki,
2341 ffi::G_UNICODE_SCRIPT_KHUDAWADI => Self::Khudawadi,
2342 ffi::G_UNICODE_SCRIPT_LINEAR_A => Self::LinearA,
2343 ffi::G_UNICODE_SCRIPT_MAHAJANI => Self::Mahajani,
2344 ffi::G_UNICODE_SCRIPT_MANICHAEAN => Self::Manichaean,
2345 ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2346 ffi::G_UNICODE_SCRIPT_MODI => Self::Modi,
2347 ffi::G_UNICODE_SCRIPT_MRO => Self::Mro,
2348 ffi::G_UNICODE_SCRIPT_NABATAEAN => Self::Nabataean,
2349 ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2350 ffi::G_UNICODE_SCRIPT_OLD_PERMIC => Self::OldPermic,
2351 ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2352 ffi::G_UNICODE_SCRIPT_PALMYRENE => Self::Palmyrene,
2353 ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2354 ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2355 ffi::G_UNICODE_SCRIPT_SIDDHAM => Self::Siddham,
2356 ffi::G_UNICODE_SCRIPT_TIRHUTA => Self::Tirhuta,
2357 ffi::G_UNICODE_SCRIPT_WARANG_CITI => Self::WarangCiti,
2358 ffi::G_UNICODE_SCRIPT_AHOM => Self::Ahom,
2359 ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2360 ffi::G_UNICODE_SCRIPT_HATRAN => Self::Hatran,
2361 ffi::G_UNICODE_SCRIPT_MULTANI => Self::Multani,
2362 ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2363 ffi::G_UNICODE_SCRIPT_SIGNWRITING => Self::Signwriting,
2364 ffi::G_UNICODE_SCRIPT_ADLAM => Self::Adlam,
2365 ffi::G_UNICODE_SCRIPT_BHAIKSUKI => Self::Bhaiksuki,
2366 ffi::G_UNICODE_SCRIPT_MARCHEN => Self::Marchen,
2367 ffi::G_UNICODE_SCRIPT_NEWA => Self::Newa,
2368 ffi::G_UNICODE_SCRIPT_OSAGE => Self::Osage,
2369 ffi::G_UNICODE_SCRIPT_TANGUT => Self::Tangut,
2370 ffi::G_UNICODE_SCRIPT_MASARAM_GONDI => Self::MasaramGondi,
2371 ffi::G_UNICODE_SCRIPT_NUSHU => Self::Nushu,
2372 ffi::G_UNICODE_SCRIPT_SOYOMBO => Self::Soyombo,
2373 ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE => Self::ZanabazarSquare,
2374 ffi::G_UNICODE_SCRIPT_DOGRA => Self::Dogra,
2375 ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI => Self::GunjalaGondi,
2376 ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA => Self::HanifiRohingya,
2377 ffi::G_UNICODE_SCRIPT_MAKASAR => Self::Makasar,
2378 ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN => Self::Medefaidrin,
2379 ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN => Self::OldSogdian,
2380 ffi::G_UNICODE_SCRIPT_SOGDIAN => Self::Sogdian,
2381 ffi::G_UNICODE_SCRIPT_ELYMAIC => Self::Elymaic,
2382 ffi::G_UNICODE_SCRIPT_NANDINAGARI => Self::Nandinagari,
2383 ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG => Self::NyiakengPuachueHmong,
2384 ffi::G_UNICODE_SCRIPT_WANCHO => Self::Wancho,
2385 ffi::G_UNICODE_SCRIPT_CHORASMIAN => Self::Chorasmian,
2386 ffi::G_UNICODE_SCRIPT_DIVES_AKURU => Self::DivesAkuru,
2387 ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT => Self::KhitanSmallScript,
2388 ffi::G_UNICODE_SCRIPT_YEZIDI => Self::Yezidi,
2389 #[cfg(feature = "v2_72")]
2390 ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN => Self::CyproMinoan,
2391 #[cfg(feature = "v2_72")]
2392 ffi::G_UNICODE_SCRIPT_OLD_UYGHUR => Self::OldUyghur,
2393 #[cfg(feature = "v2_72")]
2394 ffi::G_UNICODE_SCRIPT_TANGSA => Self::Tangsa,
2395 #[cfg(feature = "v2_72")]
2396 ffi::G_UNICODE_SCRIPT_TOTO => Self::Toto,
2397 #[cfg(feature = "v2_72")]
2398 ffi::G_UNICODE_SCRIPT_VITHKUQI => Self::Vithkuqi,
2399 #[cfg(feature = "v2_72")]
2400 ffi::G_UNICODE_SCRIPT_MATH => Self::Math,
2401 #[cfg(feature = "v2_74")]
2402 ffi::G_UNICODE_SCRIPT_KAWI => Self::Kawi,
2403 #[cfg(feature = "v2_74")]
2404 ffi::G_UNICODE_SCRIPT_NAG_MUNDARI => Self::NagMundari,
2405 #[cfg(feature = "v2_84")]
2406 ffi::G_UNICODE_SCRIPT_TODHRI => Self::Todhri,
2407 #[cfg(feature = "v2_84")]
2408 ffi::G_UNICODE_SCRIPT_GARAY => Self::Garay,
2409 #[cfg(feature = "v2_84")]
2410 ffi::G_UNICODE_SCRIPT_TULU_TIGALARI => Self::TuluTigalari,
2411 #[cfg(feature = "v2_84")]
2412 ffi::G_UNICODE_SCRIPT_SUNUWAR => Self::Sunuwar,
2413 #[cfg(feature = "v2_84")]
2414 ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA => Self::GurungKhema,
2415 #[cfg(feature = "v2_84")]
2416 ffi::G_UNICODE_SCRIPT_KIRAT_RAI => Self::KiratRai,
2417 #[cfg(feature = "v2_84")]
2418 ffi::G_UNICODE_SCRIPT_OL_ONAL => Self::OlOnal,
2419 ffi::G_UNICODE_SCRIPT_SIDETIC => Self::Sidetic,
2420 ffi::G_UNICODE_SCRIPT_TOLONG_SIKI => Self::TolongSiki,
2421 ffi::G_UNICODE_SCRIPT_TAI_YO => Self::TaiYo,
2422 ffi::G_UNICODE_SCRIPT_BERIA_ERFE => Self::BeriaErfe,
2423 value => Self::__Unknown(value),
2424 }
2425 }
2426}
2427
2428impl StaticType for UnicodeScript {
2429 #[inline]
2430 #[doc(alias = "g_unicode_script_get_type")]
2431 fn static_type() -> crate::Type {
2432 unsafe { from_glib(ffi::g_unicode_script_get_type()) }
2433 }
2434}
2435
2436impl crate::HasParamSpec for UnicodeScript {
2437 type ParamSpec = crate::ParamSpecEnum;
2438 type SetValue = Self;
2439 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2440
2441 fn param_spec_builder() -> Self::BuilderFn {
2442 Self::ParamSpec::builder_with_default
2443 }
2444}
2445
2446impl crate::value::ValueType for UnicodeScript {
2447 type Type = Self;
2448}
2449
2450unsafe impl<'a> crate::value::FromValue<'a> for UnicodeScript {
2451 type Checker = crate::value::GenericValueTypeChecker<Self>;
2452
2453 #[inline]
2454 unsafe fn from_value(value: &'a crate::Value) -> Self {
2455 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2456 }
2457}
2458
2459impl ToValue for UnicodeScript {
2460 #[inline]
2461 fn to_value(&self) -> crate::Value {
2462 let mut value = crate::Value::for_value_type::<Self>();
2463 unsafe {
2464 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2465 }
2466 value
2467 }
2468
2469 #[inline]
2470 fn value_type(&self) -> crate::Type {
2471 Self::static_type()
2472 }
2473}
2474
2475impl From<UnicodeScript> for crate::Value {
2476 #[inline]
2477 fn from(v: UnicodeScript) -> Self {
2478 ToValue::to_value(&v)
2479 }
2480}
2481
2482#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2486#[non_exhaustive]
2487#[doc(alias = "GUnicodeType")]
2488pub enum UnicodeType {
2489 #[doc(alias = "G_UNICODE_CONTROL")]
2491 Control,
2492 #[doc(alias = "G_UNICODE_FORMAT")]
2494 Format,
2495 #[doc(alias = "G_UNICODE_UNASSIGNED")]
2497 Unassigned,
2498 #[doc(alias = "G_UNICODE_PRIVATE_USE")]
2500 PrivateUse,
2501 #[doc(alias = "G_UNICODE_SURROGATE")]
2503 Surrogate,
2504 #[doc(alias = "G_UNICODE_LOWERCASE_LETTER")]
2506 LowercaseLetter,
2507 #[doc(alias = "G_UNICODE_MODIFIER_LETTER")]
2509 ModifierLetter,
2510 #[doc(alias = "G_UNICODE_OTHER_LETTER")]
2512 OtherLetter,
2513 #[doc(alias = "G_UNICODE_TITLECASE_LETTER")]
2515 TitlecaseLetter,
2516 #[doc(alias = "G_UNICODE_UPPERCASE_LETTER")]
2518 UppercaseLetter,
2519 #[doc(alias = "G_UNICODE_SPACING_MARK")]
2521 SpacingMark,
2522 #[doc(alias = "G_UNICODE_ENCLOSING_MARK")]
2524 EnclosingMark,
2525 #[doc(alias = "G_UNICODE_NON_SPACING_MARK")]
2527 NonSpacingMark,
2528 #[doc(alias = "G_UNICODE_DECIMAL_NUMBER")]
2530 DecimalNumber,
2531 #[doc(alias = "G_UNICODE_LETTER_NUMBER")]
2533 LetterNumber,
2534 #[doc(alias = "G_UNICODE_OTHER_NUMBER")]
2536 OtherNumber,
2537 #[doc(alias = "G_UNICODE_CONNECT_PUNCTUATION")]
2539 ConnectPunctuation,
2540 #[doc(alias = "G_UNICODE_DASH_PUNCTUATION")]
2542 DashPunctuation,
2543 #[doc(alias = "G_UNICODE_CLOSE_PUNCTUATION")]
2545 ClosePunctuation,
2546 #[doc(alias = "G_UNICODE_FINAL_PUNCTUATION")]
2548 FinalPunctuation,
2549 #[doc(alias = "G_UNICODE_INITIAL_PUNCTUATION")]
2551 InitialPunctuation,
2552 #[doc(alias = "G_UNICODE_OTHER_PUNCTUATION")]
2554 OtherPunctuation,
2555 #[doc(alias = "G_UNICODE_OPEN_PUNCTUATION")]
2557 OpenPunctuation,
2558 #[doc(alias = "G_UNICODE_CURRENCY_SYMBOL")]
2560 CurrencySymbol,
2561 #[doc(alias = "G_UNICODE_MODIFIER_SYMBOL")]
2563 ModifierSymbol,
2564 #[doc(alias = "G_UNICODE_MATH_SYMBOL")]
2566 MathSymbol,
2567 #[doc(alias = "G_UNICODE_OTHER_SYMBOL")]
2569 OtherSymbol,
2570 #[doc(alias = "G_UNICODE_LINE_SEPARATOR")]
2572 LineSeparator,
2573 #[doc(alias = "G_UNICODE_PARAGRAPH_SEPARATOR")]
2575 ParagraphSeparator,
2576 #[doc(alias = "G_UNICODE_SPACE_SEPARATOR")]
2578 SpaceSeparator,
2579 #[doc(hidden)]
2580 __Unknown(i32),
2581}
2582
2583#[doc(hidden)]
2584impl IntoGlib for UnicodeType {
2585 type GlibType = ffi::GUnicodeType;
2586
2587 fn into_glib(self) -> ffi::GUnicodeType {
2588 match self {
2589 Self::Control => ffi::G_UNICODE_CONTROL,
2590 Self::Format => ffi::G_UNICODE_FORMAT,
2591 Self::Unassigned => ffi::G_UNICODE_UNASSIGNED,
2592 Self::PrivateUse => ffi::G_UNICODE_PRIVATE_USE,
2593 Self::Surrogate => ffi::G_UNICODE_SURROGATE,
2594 Self::LowercaseLetter => ffi::G_UNICODE_LOWERCASE_LETTER,
2595 Self::ModifierLetter => ffi::G_UNICODE_MODIFIER_LETTER,
2596 Self::OtherLetter => ffi::G_UNICODE_OTHER_LETTER,
2597 Self::TitlecaseLetter => ffi::G_UNICODE_TITLECASE_LETTER,
2598 Self::UppercaseLetter => ffi::G_UNICODE_UPPERCASE_LETTER,
2599 Self::SpacingMark => ffi::G_UNICODE_SPACING_MARK,
2600 Self::EnclosingMark => ffi::G_UNICODE_ENCLOSING_MARK,
2601 Self::NonSpacingMark => ffi::G_UNICODE_NON_SPACING_MARK,
2602 Self::DecimalNumber => ffi::G_UNICODE_DECIMAL_NUMBER,
2603 Self::LetterNumber => ffi::G_UNICODE_LETTER_NUMBER,
2604 Self::OtherNumber => ffi::G_UNICODE_OTHER_NUMBER,
2605 Self::ConnectPunctuation => ffi::G_UNICODE_CONNECT_PUNCTUATION,
2606 Self::DashPunctuation => ffi::G_UNICODE_DASH_PUNCTUATION,
2607 Self::ClosePunctuation => ffi::G_UNICODE_CLOSE_PUNCTUATION,
2608 Self::FinalPunctuation => ffi::G_UNICODE_FINAL_PUNCTUATION,
2609 Self::InitialPunctuation => ffi::G_UNICODE_INITIAL_PUNCTUATION,
2610 Self::OtherPunctuation => ffi::G_UNICODE_OTHER_PUNCTUATION,
2611 Self::OpenPunctuation => ffi::G_UNICODE_OPEN_PUNCTUATION,
2612 Self::CurrencySymbol => ffi::G_UNICODE_CURRENCY_SYMBOL,
2613 Self::ModifierSymbol => ffi::G_UNICODE_MODIFIER_SYMBOL,
2614 Self::MathSymbol => ffi::G_UNICODE_MATH_SYMBOL,
2615 Self::OtherSymbol => ffi::G_UNICODE_OTHER_SYMBOL,
2616 Self::LineSeparator => ffi::G_UNICODE_LINE_SEPARATOR,
2617 Self::ParagraphSeparator => ffi::G_UNICODE_PARAGRAPH_SEPARATOR,
2618 Self::SpaceSeparator => ffi::G_UNICODE_SPACE_SEPARATOR,
2619 Self::__Unknown(value) => value,
2620 }
2621 }
2622}
2623
2624#[doc(hidden)]
2625impl FromGlib<ffi::GUnicodeType> for UnicodeType {
2626 unsafe fn from_glib(value: ffi::GUnicodeType) -> Self {
2627 match value {
2628 ffi::G_UNICODE_CONTROL => Self::Control,
2629 ffi::G_UNICODE_FORMAT => Self::Format,
2630 ffi::G_UNICODE_UNASSIGNED => Self::Unassigned,
2631 ffi::G_UNICODE_PRIVATE_USE => Self::PrivateUse,
2632 ffi::G_UNICODE_SURROGATE => Self::Surrogate,
2633 ffi::G_UNICODE_LOWERCASE_LETTER => Self::LowercaseLetter,
2634 ffi::G_UNICODE_MODIFIER_LETTER => Self::ModifierLetter,
2635 ffi::G_UNICODE_OTHER_LETTER => Self::OtherLetter,
2636 ffi::G_UNICODE_TITLECASE_LETTER => Self::TitlecaseLetter,
2637 ffi::G_UNICODE_UPPERCASE_LETTER => Self::UppercaseLetter,
2638 ffi::G_UNICODE_SPACING_MARK => Self::SpacingMark,
2639 ffi::G_UNICODE_ENCLOSING_MARK => Self::EnclosingMark,
2640 ffi::G_UNICODE_NON_SPACING_MARK => Self::NonSpacingMark,
2641 ffi::G_UNICODE_DECIMAL_NUMBER => Self::DecimalNumber,
2642 ffi::G_UNICODE_LETTER_NUMBER => Self::LetterNumber,
2643 ffi::G_UNICODE_OTHER_NUMBER => Self::OtherNumber,
2644 ffi::G_UNICODE_CONNECT_PUNCTUATION => Self::ConnectPunctuation,
2645 ffi::G_UNICODE_DASH_PUNCTUATION => Self::DashPunctuation,
2646 ffi::G_UNICODE_CLOSE_PUNCTUATION => Self::ClosePunctuation,
2647 ffi::G_UNICODE_FINAL_PUNCTUATION => Self::FinalPunctuation,
2648 ffi::G_UNICODE_INITIAL_PUNCTUATION => Self::InitialPunctuation,
2649 ffi::G_UNICODE_OTHER_PUNCTUATION => Self::OtherPunctuation,
2650 ffi::G_UNICODE_OPEN_PUNCTUATION => Self::OpenPunctuation,
2651 ffi::G_UNICODE_CURRENCY_SYMBOL => Self::CurrencySymbol,
2652 ffi::G_UNICODE_MODIFIER_SYMBOL => Self::ModifierSymbol,
2653 ffi::G_UNICODE_MATH_SYMBOL => Self::MathSymbol,
2654 ffi::G_UNICODE_OTHER_SYMBOL => Self::OtherSymbol,
2655 ffi::G_UNICODE_LINE_SEPARATOR => Self::LineSeparator,
2656 ffi::G_UNICODE_PARAGRAPH_SEPARATOR => Self::ParagraphSeparator,
2657 ffi::G_UNICODE_SPACE_SEPARATOR => Self::SpaceSeparator,
2658 value => Self::__Unknown(value),
2659 }
2660 }
2661}
2662
2663impl StaticType for UnicodeType {
2664 #[inline]
2665 #[doc(alias = "g_unicode_type_get_type")]
2666 fn static_type() -> crate::Type {
2667 unsafe { from_glib(ffi::g_unicode_type_get_type()) }
2668 }
2669}
2670
2671impl crate::HasParamSpec for UnicodeType {
2672 type ParamSpec = crate::ParamSpecEnum;
2673 type SetValue = Self;
2674 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2675
2676 fn param_spec_builder() -> Self::BuilderFn {
2677 Self::ParamSpec::builder_with_default
2678 }
2679}
2680
2681impl crate::value::ValueType for UnicodeType {
2682 type Type = Self;
2683}
2684
2685unsafe impl<'a> crate::value::FromValue<'a> for UnicodeType {
2686 type Checker = crate::value::GenericValueTypeChecker<Self>;
2687
2688 #[inline]
2689 unsafe fn from_value(value: &'a crate::Value) -> Self {
2690 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2691 }
2692}
2693
2694impl ToValue for UnicodeType {
2695 #[inline]
2696 fn to_value(&self) -> crate::Value {
2697 let mut value = crate::Value::for_value_type::<Self>();
2698 unsafe {
2699 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2700 }
2701 value
2702 }
2703
2704 #[inline]
2705 fn value_type(&self) -> crate::Type {
2706 Self::static_type()
2707 }
2708}
2709
2710impl From<UnicodeType> for crate::Value {
2711 #[inline]
2712 fn from(v: UnicodeType) -> Self {
2713 ToValue::to_value(&v)
2714 }
2715}
2716
2717#[cfg(feature = "v2_66")]
2719#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2720#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2721#[non_exhaustive]
2722#[doc(alias = "GUriError")]
2723pub enum UriError {
2724 #[doc(alias = "G_URI_ERROR_FAILED")]
2727 Failed,
2728 #[doc(alias = "G_URI_ERROR_BAD_SCHEME")]
2730 BadScheme,
2731 #[doc(alias = "G_URI_ERROR_BAD_USER")]
2733 BadUser,
2734 #[doc(alias = "G_URI_ERROR_BAD_PASSWORD")]
2736 BadPassword,
2737 #[doc(alias = "G_URI_ERROR_BAD_AUTH_PARAMS")]
2739 BadAuthParams,
2740 #[doc(alias = "G_URI_ERROR_BAD_HOST")]
2742 BadHost,
2743 #[doc(alias = "G_URI_ERROR_BAD_PORT")]
2745 BadPort,
2746 #[doc(alias = "G_URI_ERROR_BAD_PATH")]
2748 BadPath,
2749 #[doc(alias = "G_URI_ERROR_BAD_QUERY")]
2751 BadQuery,
2752 #[doc(alias = "G_URI_ERROR_BAD_FRAGMENT")]
2754 BadFragment,
2755 #[doc(hidden)]
2756 __Unknown(i32),
2757}
2758
2759#[cfg(feature = "v2_66")]
2760#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2761#[doc(hidden)]
2762impl IntoGlib for UriError {
2763 type GlibType = ffi::GUriError;
2764
2765 #[inline]
2766 fn into_glib(self) -> ffi::GUriError {
2767 match self {
2768 Self::Failed => ffi::G_URI_ERROR_FAILED,
2769 Self::BadScheme => ffi::G_URI_ERROR_BAD_SCHEME,
2770 Self::BadUser => ffi::G_URI_ERROR_BAD_USER,
2771 Self::BadPassword => ffi::G_URI_ERROR_BAD_PASSWORD,
2772 Self::BadAuthParams => ffi::G_URI_ERROR_BAD_AUTH_PARAMS,
2773 Self::BadHost => ffi::G_URI_ERROR_BAD_HOST,
2774 Self::BadPort => ffi::G_URI_ERROR_BAD_PORT,
2775 Self::BadPath => ffi::G_URI_ERROR_BAD_PATH,
2776 Self::BadQuery => ffi::G_URI_ERROR_BAD_QUERY,
2777 Self::BadFragment => ffi::G_URI_ERROR_BAD_FRAGMENT,
2778 Self::__Unknown(value) => value,
2779 }
2780 }
2781}
2782
2783#[cfg(feature = "v2_66")]
2784#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2785#[doc(hidden)]
2786impl FromGlib<ffi::GUriError> for UriError {
2787 #[inline]
2788 unsafe fn from_glib(value: ffi::GUriError) -> Self {
2789 match value {
2790 ffi::G_URI_ERROR_FAILED => Self::Failed,
2791 ffi::G_URI_ERROR_BAD_SCHEME => Self::BadScheme,
2792 ffi::G_URI_ERROR_BAD_USER => Self::BadUser,
2793 ffi::G_URI_ERROR_BAD_PASSWORD => Self::BadPassword,
2794 ffi::G_URI_ERROR_BAD_AUTH_PARAMS => Self::BadAuthParams,
2795 ffi::G_URI_ERROR_BAD_HOST => Self::BadHost,
2796 ffi::G_URI_ERROR_BAD_PORT => Self::BadPort,
2797 ffi::G_URI_ERROR_BAD_PATH => Self::BadPath,
2798 ffi::G_URI_ERROR_BAD_QUERY => Self::BadQuery,
2799 ffi::G_URI_ERROR_BAD_FRAGMENT => Self::BadFragment,
2800 value => Self::__Unknown(value),
2801 }
2802 }
2803}
2804
2805#[cfg(feature = "v2_66")]
2806#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2807impl crate::error::ErrorDomain for UriError {
2808 #[inline]
2809 fn domain() -> crate::Quark {
2810 unsafe { from_glib(ffi::g_uri_error_quark()) }
2811 }
2812
2813 #[inline]
2814 fn code(self) -> i32 {
2815 self.into_glib()
2816 }
2817
2818 #[inline]
2819 #[allow(clippy::match_single_binding)]
2820 fn from(code: i32) -> Option<Self> {
2821 match unsafe { from_glib(code) } {
2822 Self::__Unknown(_) => Some(Self::Failed),
2823 value => Some(value),
2824 }
2825 }
2826}
2827
2828#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2830#[non_exhaustive]
2831#[doc(alias = "GVariantClass")]
2832pub enum VariantClass {
2833 #[doc(alias = "G_VARIANT_CLASS_BOOLEAN")]
2835 Boolean,
2836 #[doc(alias = "G_VARIANT_CLASS_BYTE")]
2838 Byte,
2839 #[doc(alias = "G_VARIANT_CLASS_INT16")]
2841 Int16,
2842 #[doc(alias = "G_VARIANT_CLASS_UINT16")]
2844 Uint16,
2845 #[doc(alias = "G_VARIANT_CLASS_INT32")]
2847 Int32,
2848 #[doc(alias = "G_VARIANT_CLASS_UINT32")]
2850 Uint32,
2851 #[doc(alias = "G_VARIANT_CLASS_INT64")]
2853 Int64,
2854 #[doc(alias = "G_VARIANT_CLASS_UINT64")]
2856 Uint64,
2857 #[doc(alias = "G_VARIANT_CLASS_HANDLE")]
2859 Handle,
2860 #[doc(alias = "G_VARIANT_CLASS_DOUBLE")]
2863 Double,
2864 #[doc(alias = "G_VARIANT_CLASS_STRING")]
2866 String,
2867 #[doc(alias = "G_VARIANT_CLASS_OBJECT_PATH")]
2870 ObjectPath,
2871 #[doc(alias = "G_VARIANT_CLASS_SIGNATURE")]
2873 Signature,
2874 #[doc(alias = "G_VARIANT_CLASS_VARIANT")]
2876 Variant,
2877 #[doc(alias = "G_VARIANT_CLASS_MAYBE")]
2879 Maybe,
2880 #[doc(alias = "G_VARIANT_CLASS_ARRAY")]
2882 Array,
2883 #[doc(alias = "G_VARIANT_CLASS_TUPLE")]
2885 Tuple,
2886 #[doc(alias = "G_VARIANT_CLASS_DICT_ENTRY")]
2888 DictEntry,
2889 #[doc(hidden)]
2890 __Unknown(i32),
2891}
2892
2893#[doc(hidden)]
2894impl IntoGlib for VariantClass {
2895 type GlibType = ffi::GVariantClass;
2896
2897 fn into_glib(self) -> ffi::GVariantClass {
2898 match self {
2899 Self::Boolean => ffi::G_VARIANT_CLASS_BOOLEAN,
2900 Self::Byte => ffi::G_VARIANT_CLASS_BYTE,
2901 Self::Int16 => ffi::G_VARIANT_CLASS_INT16,
2902 Self::Uint16 => ffi::G_VARIANT_CLASS_UINT16,
2903 Self::Int32 => ffi::G_VARIANT_CLASS_INT32,
2904 Self::Uint32 => ffi::G_VARIANT_CLASS_UINT32,
2905 Self::Int64 => ffi::G_VARIANT_CLASS_INT64,
2906 Self::Uint64 => ffi::G_VARIANT_CLASS_UINT64,
2907 Self::Handle => ffi::G_VARIANT_CLASS_HANDLE,
2908 Self::Double => ffi::G_VARIANT_CLASS_DOUBLE,
2909 Self::String => ffi::G_VARIANT_CLASS_STRING,
2910 Self::ObjectPath => ffi::G_VARIANT_CLASS_OBJECT_PATH,
2911 Self::Signature => ffi::G_VARIANT_CLASS_SIGNATURE,
2912 Self::Variant => ffi::G_VARIANT_CLASS_VARIANT,
2913 Self::Maybe => ffi::G_VARIANT_CLASS_MAYBE,
2914 Self::Array => ffi::G_VARIANT_CLASS_ARRAY,
2915 Self::Tuple => ffi::G_VARIANT_CLASS_TUPLE,
2916 Self::DictEntry => ffi::G_VARIANT_CLASS_DICT_ENTRY,
2917 Self::__Unknown(value) => value,
2918 }
2919 }
2920}
2921
2922#[doc(hidden)]
2923impl FromGlib<ffi::GVariantClass> for VariantClass {
2924 unsafe fn from_glib(value: ffi::GVariantClass) -> Self {
2925 match value {
2926 ffi::G_VARIANT_CLASS_BOOLEAN => Self::Boolean,
2927 ffi::G_VARIANT_CLASS_BYTE => Self::Byte,
2928 ffi::G_VARIANT_CLASS_INT16 => Self::Int16,
2929 ffi::G_VARIANT_CLASS_UINT16 => Self::Uint16,
2930 ffi::G_VARIANT_CLASS_INT32 => Self::Int32,
2931 ffi::G_VARIANT_CLASS_UINT32 => Self::Uint32,
2932 ffi::G_VARIANT_CLASS_INT64 => Self::Int64,
2933 ffi::G_VARIANT_CLASS_UINT64 => Self::Uint64,
2934 ffi::G_VARIANT_CLASS_HANDLE => Self::Handle,
2935 ffi::G_VARIANT_CLASS_DOUBLE => Self::Double,
2936 ffi::G_VARIANT_CLASS_STRING => Self::String,
2937 ffi::G_VARIANT_CLASS_OBJECT_PATH => Self::ObjectPath,
2938 ffi::G_VARIANT_CLASS_SIGNATURE => Self::Signature,
2939 ffi::G_VARIANT_CLASS_VARIANT => Self::Variant,
2940 ffi::G_VARIANT_CLASS_MAYBE => Self::Maybe,
2941 ffi::G_VARIANT_CLASS_ARRAY => Self::Array,
2942 ffi::G_VARIANT_CLASS_TUPLE => Self::Tuple,
2943 ffi::G_VARIANT_CLASS_DICT_ENTRY => Self::DictEntry,
2944 value => Self::__Unknown(value),
2945 }
2946 }
2947}