1use crate::{ffi, prelude::*, translate::*};
6
7#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
19#[non_exhaustive]
20#[doc(alias = "GChecksumType")]
21pub enum ChecksumType {
22 #[doc(alias = "G_CHECKSUM_MD5")]
26 Md5,
27 #[doc(alias = "G_CHECKSUM_SHA1")]
31 Sha1,
32 #[doc(alias = "G_CHECKSUM_SHA256")]
36 Sha256,
37 #[doc(alias = "G_CHECKSUM_SHA512")]
41 Sha512,
42 #[doc(alias = "G_CHECKSUM_SHA384")]
46 Sha384,
47 #[doc(hidden)]
48 __Unknown(i32),
49}
50
51#[doc(hidden)]
52impl IntoGlib for ChecksumType {
53 type GlibType = ffi::GChecksumType;
54
55 #[inline]
56 fn into_glib(self) -> ffi::GChecksumType {
57 match self {
58 Self::Md5 => ffi::G_CHECKSUM_MD5,
59 Self::Sha1 => ffi::G_CHECKSUM_SHA1,
60 Self::Sha256 => ffi::G_CHECKSUM_SHA256,
61 Self::Sha512 => ffi::G_CHECKSUM_SHA512,
62 Self::Sha384 => ffi::G_CHECKSUM_SHA384,
63 Self::__Unknown(value) => value,
64 }
65 }
66}
67
68#[doc(hidden)]
69impl FromGlib<ffi::GChecksumType> for ChecksumType {
70 #[inline]
71 unsafe fn from_glib(value: ffi::GChecksumType) -> Self {
72 match value {
73 ffi::G_CHECKSUM_MD5 => Self::Md5,
74 ffi::G_CHECKSUM_SHA1 => Self::Sha1,
75 ffi::G_CHECKSUM_SHA256 => Self::Sha256,
76 ffi::G_CHECKSUM_SHA512 => Self::Sha512,
77 ffi::G_CHECKSUM_SHA384 => Self::Sha384,
78 value => Self::__Unknown(value),
79 }
80 }
81}
82
83#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
87#[non_exhaustive]
88#[doc(alias = "GConvertError")]
89pub enum ConvertError {
90 #[doc(alias = "G_CONVERT_ERROR_NO_CONVERSION")]
96 NoConversion,
97 #[doc(alias = "G_CONVERT_ERROR_ILLEGAL_SEQUENCE")]
105 IllegalSequence,
106 #[doc(alias = "G_CONVERT_ERROR_FAILED")]
110 Failed,
111 #[doc(alias = "G_CONVERT_ERROR_PARTIAL_INPUT")]
115 PartialInput,
116 #[doc(alias = "G_CONVERT_ERROR_BAD_URI")]
120 BadUri,
121 #[doc(alias = "G_CONVERT_ERROR_NOT_ABSOLUTE_PATH")]
125 NotAbsolutePath,
126 #[doc(alias = "G_CONVERT_ERROR_NO_MEMORY")]
130 NoMemory,
131 #[doc(alias = "G_CONVERT_ERROR_EMBEDDED_NUL")]
139 EmbeddedNul,
140 #[doc(hidden)]
141 __Unknown(i32),
142}
143
144#[doc(hidden)]
145impl IntoGlib for ConvertError {
146 type GlibType = ffi::GConvertError;
147
148 #[inline]
149 fn into_glib(self) -> ffi::GConvertError {
150 match self {
151 Self::NoConversion => ffi::G_CONVERT_ERROR_NO_CONVERSION,
152 Self::IllegalSequence => ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
153 Self::Failed => ffi::G_CONVERT_ERROR_FAILED,
154 Self::PartialInput => ffi::G_CONVERT_ERROR_PARTIAL_INPUT,
155 Self::BadUri => ffi::G_CONVERT_ERROR_BAD_URI,
156 Self::NotAbsolutePath => ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
157 Self::NoMemory => ffi::G_CONVERT_ERROR_NO_MEMORY,
158 Self::EmbeddedNul => ffi::G_CONVERT_ERROR_EMBEDDED_NUL,
159 Self::__Unknown(value) => value,
160 }
161 }
162}
163
164#[doc(hidden)]
165impl FromGlib<ffi::GConvertError> for ConvertError {
166 #[inline]
167 unsafe fn from_glib(value: ffi::GConvertError) -> Self {
168 match value {
169 ffi::G_CONVERT_ERROR_NO_CONVERSION => Self::NoConversion,
170 ffi::G_CONVERT_ERROR_ILLEGAL_SEQUENCE => Self::IllegalSequence,
171 ffi::G_CONVERT_ERROR_FAILED => Self::Failed,
172 ffi::G_CONVERT_ERROR_PARTIAL_INPUT => Self::PartialInput,
173 ffi::G_CONVERT_ERROR_BAD_URI => Self::BadUri,
174 ffi::G_CONVERT_ERROR_NOT_ABSOLUTE_PATH => Self::NotAbsolutePath,
175 ffi::G_CONVERT_ERROR_NO_MEMORY => Self::NoMemory,
176 ffi::G_CONVERT_ERROR_EMBEDDED_NUL => Self::EmbeddedNul,
177 value => Self::__Unknown(value),
178 }
179 }
180}
181
182impl crate::error::ErrorDomain for ConvertError {
183 #[inline]
184 fn domain() -> crate::Quark {
185 unsafe { from_glib(ffi::g_convert_error_quark()) }
186 }
187
188 #[inline]
189 fn code(self) -> i32 {
190 self.into_glib()
191 }
192
193 #[inline]
194 #[allow(clippy::match_single_binding)]
195 fn from(code: i32) -> Option<Self> {
196 match unsafe { from_glib(code) } {
197 Self::__Unknown(_) => Some(Self::Failed),
198 value => Some(value),
199 }
200 }
201}
202
203#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
209#[non_exhaustive]
210#[doc(alias = "GDateMonth")]
211pub enum DateMonth {
212 #[doc(alias = "G_DATE_BAD_MONTH")]
216 BadMonth,
217 #[doc(alias = "G_DATE_JANUARY")]
221 January,
222 #[doc(alias = "G_DATE_FEBRUARY")]
226 February,
227 #[doc(alias = "G_DATE_MARCH")]
231 March,
232 #[doc(alias = "G_DATE_APRIL")]
236 April,
237 #[doc(alias = "G_DATE_MAY")]
241 May,
242 #[doc(alias = "G_DATE_JUNE")]
246 June,
247 #[doc(alias = "G_DATE_JULY")]
251 July,
252 #[doc(alias = "G_DATE_AUGUST")]
256 August,
257 #[doc(alias = "G_DATE_SEPTEMBER")]
261 September,
262 #[doc(alias = "G_DATE_OCTOBER")]
266 October,
267 #[doc(alias = "G_DATE_NOVEMBER")]
271 November,
272 #[doc(alias = "G_DATE_DECEMBER")]
276 December,
277 #[doc(hidden)]
278 __Unknown(i32),
279}
280
281#[doc(hidden)]
282impl IntoGlib for DateMonth {
283 type GlibType = ffi::GDateMonth;
284
285 fn into_glib(self) -> ffi::GDateMonth {
286 match self {
287 Self::BadMonth => ffi::G_DATE_BAD_MONTH,
288 Self::January => ffi::G_DATE_JANUARY,
289 Self::February => ffi::G_DATE_FEBRUARY,
290 Self::March => ffi::G_DATE_MARCH,
291 Self::April => ffi::G_DATE_APRIL,
292 Self::May => ffi::G_DATE_MAY,
293 Self::June => ffi::G_DATE_JUNE,
294 Self::July => ffi::G_DATE_JULY,
295 Self::August => ffi::G_DATE_AUGUST,
296 Self::September => ffi::G_DATE_SEPTEMBER,
297 Self::October => ffi::G_DATE_OCTOBER,
298 Self::November => ffi::G_DATE_NOVEMBER,
299 Self::December => ffi::G_DATE_DECEMBER,
300 Self::__Unknown(value) => value,
301 }
302 }
303}
304
305#[doc(hidden)]
306impl FromGlib<ffi::GDateMonth> for DateMonth {
307 unsafe fn from_glib(value: ffi::GDateMonth) -> Self {
308 match value {
309 ffi::G_DATE_BAD_MONTH => Self::BadMonth,
310 ffi::G_DATE_JANUARY => Self::January,
311 ffi::G_DATE_FEBRUARY => Self::February,
312 ffi::G_DATE_MARCH => Self::March,
313 ffi::G_DATE_APRIL => Self::April,
314 ffi::G_DATE_MAY => Self::May,
315 ffi::G_DATE_JUNE => Self::June,
316 ffi::G_DATE_JULY => Self::July,
317 ffi::G_DATE_AUGUST => Self::August,
318 ffi::G_DATE_SEPTEMBER => Self::September,
319 ffi::G_DATE_OCTOBER => Self::October,
320 ffi::G_DATE_NOVEMBER => Self::November,
321 ffi::G_DATE_DECEMBER => Self::December,
322 value => Self::__Unknown(value),
323 }
324 }
325}
326
327#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
333#[non_exhaustive]
334#[doc(alias = "GDateWeekday")]
335pub enum DateWeekday {
336 #[doc(alias = "G_DATE_BAD_WEEKDAY")]
340 BadWeekday,
341 #[doc(alias = "G_DATE_MONDAY")]
345 Monday,
346 #[doc(alias = "G_DATE_TUESDAY")]
350 Tuesday,
351 #[doc(alias = "G_DATE_WEDNESDAY")]
355 Wednesday,
356 #[doc(alias = "G_DATE_THURSDAY")]
360 Thursday,
361 #[doc(alias = "G_DATE_FRIDAY")]
365 Friday,
366 #[doc(alias = "G_DATE_SATURDAY")]
370 Saturday,
371 #[doc(alias = "G_DATE_SUNDAY")]
375 Sunday,
376 #[doc(hidden)]
377 __Unknown(i32),
378}
379
380#[doc(hidden)]
381impl IntoGlib for DateWeekday {
382 type GlibType = ffi::GDateWeekday;
383
384 #[inline]
385 fn into_glib(self) -> ffi::GDateWeekday {
386 match self {
387 Self::BadWeekday => ffi::G_DATE_BAD_WEEKDAY,
388 Self::Monday => ffi::G_DATE_MONDAY,
389 Self::Tuesday => ffi::G_DATE_TUESDAY,
390 Self::Wednesday => ffi::G_DATE_WEDNESDAY,
391 Self::Thursday => ffi::G_DATE_THURSDAY,
392 Self::Friday => ffi::G_DATE_FRIDAY,
393 Self::Saturday => ffi::G_DATE_SATURDAY,
394 Self::Sunday => ffi::G_DATE_SUNDAY,
395 Self::__Unknown(value) => value,
396 }
397 }
398}
399
400#[doc(hidden)]
401impl FromGlib<ffi::GDateWeekday> for DateWeekday {
402 #[inline]
403 unsafe fn from_glib(value: ffi::GDateWeekday) -> Self {
404 match value {
405 ffi::G_DATE_BAD_WEEKDAY => Self::BadWeekday,
406 ffi::G_DATE_MONDAY => Self::Monday,
407 ffi::G_DATE_TUESDAY => Self::Tuesday,
408 ffi::G_DATE_WEDNESDAY => Self::Wednesday,
409 ffi::G_DATE_THURSDAY => Self::Thursday,
410 ffi::G_DATE_FRIDAY => Self::Friday,
411 ffi::G_DATE_SATURDAY => Self::Saturday,
412 ffi::G_DATE_SUNDAY => Self::Sunday,
413 value => Self::__Unknown(value),
414 }
415 }
416}
417
418#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
444#[non_exhaustive]
445#[doc(alias = "GFileError")]
446pub enum FileError {
447 #[doc(alias = "G_FILE_ERROR_EXIST")]
455 Exist,
456 #[doc(alias = "G_FILE_ERROR_ISDIR")]
462 Isdir,
463 #[doc(alias = "G_FILE_ERROR_ACCES")]
469 Acces,
470 #[doc(alias = "G_FILE_ERROR_NAMETOOLONG")]
474 Nametoolong,
475 #[doc(alias = "G_FILE_ERROR_NOENT")]
483 Noent,
484 #[doc(alias = "G_FILE_ERROR_NOTDIR")]
490 Notdir,
491 #[doc(alias = "G_FILE_ERROR_NXIO")]
503 Nxio,
504 #[doc(alias = "G_FILE_ERROR_NODEV")]
510 Nodev,
511 #[doc(alias = "G_FILE_ERROR_ROFS")]
517 Rofs,
518 #[doc(alias = "G_FILE_ERROR_TXTBSY")]
522 Txtbsy,
523 #[doc(alias = "G_FILE_ERROR_FAULT")]
531 Fault,
532 #[doc(alias = "G_FILE_ERROR_LOOP")]
540 Loop,
541 #[doc(alias = "G_FILE_ERROR_NOSPC")]
547 Nospc,
548 #[doc(alias = "G_FILE_ERROR_NOMEM")]
554 Nomem,
555 #[doc(alias = "G_FILE_ERROR_MFILE")]
563 Mfile,
564 #[doc(alias = "G_FILE_ERROR_NFILE")]
570 Nfile,
571 #[doc(alias = "G_FILE_ERROR_BADF")]
579 Badf,
580 #[doc(alias = "G_FILE_ERROR_INVAL")]
588 Inval,
589 #[doc(alias = "G_FILE_ERROR_PIPE")]
603 Pipe,
604 #[doc(alias = "G_FILE_ERROR_AGAIN")]
610 Again,
611 #[doc(alias = "G_FILE_ERROR_INTR")]
619 Intr,
620 #[doc(alias = "G_FILE_ERROR_IO")]
628 Io,
629 #[doc(alias = "G_FILE_ERROR_PERM")]
637 Perm,
638 #[doc(alias = "G_FILE_ERROR_NOSYS")]
644 Nosys,
645 #[doc(alias = "G_FILE_ERROR_FAILED")]
655 Failed,
656 #[doc(hidden)]
657 __Unknown(i32),
658}
659
660#[doc(hidden)]
661impl IntoGlib for FileError {
662 type GlibType = ffi::GFileError;
663
664 fn into_glib(self) -> ffi::GFileError {
665 match self {
666 Self::Exist => ffi::G_FILE_ERROR_EXIST,
667 Self::Isdir => ffi::G_FILE_ERROR_ISDIR,
668 Self::Acces => ffi::G_FILE_ERROR_ACCES,
669 Self::Nametoolong => ffi::G_FILE_ERROR_NAMETOOLONG,
670 Self::Noent => ffi::G_FILE_ERROR_NOENT,
671 Self::Notdir => ffi::G_FILE_ERROR_NOTDIR,
672 Self::Nxio => ffi::G_FILE_ERROR_NXIO,
673 Self::Nodev => ffi::G_FILE_ERROR_NODEV,
674 Self::Rofs => ffi::G_FILE_ERROR_ROFS,
675 Self::Txtbsy => ffi::G_FILE_ERROR_TXTBSY,
676 Self::Fault => ffi::G_FILE_ERROR_FAULT,
677 Self::Loop => ffi::G_FILE_ERROR_LOOP,
678 Self::Nospc => ffi::G_FILE_ERROR_NOSPC,
679 Self::Nomem => ffi::G_FILE_ERROR_NOMEM,
680 Self::Mfile => ffi::G_FILE_ERROR_MFILE,
681 Self::Nfile => ffi::G_FILE_ERROR_NFILE,
682 Self::Badf => ffi::G_FILE_ERROR_BADF,
683 Self::Inval => ffi::G_FILE_ERROR_INVAL,
684 Self::Pipe => ffi::G_FILE_ERROR_PIPE,
685 Self::Again => ffi::G_FILE_ERROR_AGAIN,
686 Self::Intr => ffi::G_FILE_ERROR_INTR,
687 Self::Io => ffi::G_FILE_ERROR_IO,
688 Self::Perm => ffi::G_FILE_ERROR_PERM,
689 Self::Nosys => ffi::G_FILE_ERROR_NOSYS,
690 Self::Failed => ffi::G_FILE_ERROR_FAILED,
691 Self::__Unknown(value) => value,
692 }
693 }
694}
695
696#[doc(hidden)]
697impl FromGlib<ffi::GFileError> for FileError {
698 unsafe fn from_glib(value: ffi::GFileError) -> Self {
699 match value {
700 ffi::G_FILE_ERROR_EXIST => Self::Exist,
701 ffi::G_FILE_ERROR_ISDIR => Self::Isdir,
702 ffi::G_FILE_ERROR_ACCES => Self::Acces,
703 ffi::G_FILE_ERROR_NAMETOOLONG => Self::Nametoolong,
704 ffi::G_FILE_ERROR_NOENT => Self::Noent,
705 ffi::G_FILE_ERROR_NOTDIR => Self::Notdir,
706 ffi::G_FILE_ERROR_NXIO => Self::Nxio,
707 ffi::G_FILE_ERROR_NODEV => Self::Nodev,
708 ffi::G_FILE_ERROR_ROFS => Self::Rofs,
709 ffi::G_FILE_ERROR_TXTBSY => Self::Txtbsy,
710 ffi::G_FILE_ERROR_FAULT => Self::Fault,
711 ffi::G_FILE_ERROR_LOOP => Self::Loop,
712 ffi::G_FILE_ERROR_NOSPC => Self::Nospc,
713 ffi::G_FILE_ERROR_NOMEM => Self::Nomem,
714 ffi::G_FILE_ERROR_MFILE => Self::Mfile,
715 ffi::G_FILE_ERROR_NFILE => Self::Nfile,
716 ffi::G_FILE_ERROR_BADF => Self::Badf,
717 ffi::G_FILE_ERROR_INVAL => Self::Inval,
718 ffi::G_FILE_ERROR_PIPE => Self::Pipe,
719 ffi::G_FILE_ERROR_AGAIN => Self::Again,
720 ffi::G_FILE_ERROR_INTR => Self::Intr,
721 ffi::G_FILE_ERROR_IO => Self::Io,
722 ffi::G_FILE_ERROR_PERM => Self::Perm,
723 ffi::G_FILE_ERROR_NOSYS => Self::Nosys,
724 ffi::G_FILE_ERROR_FAILED => Self::Failed,
725 value => Self::__Unknown(value),
726 }
727 }
728}
729
730impl crate::error::ErrorDomain for FileError {
731 #[inline]
732 fn domain() -> crate::Quark {
733 unsafe { from_glib(ffi::g_file_error_quark()) }
734 }
735
736 #[inline]
737 fn code(self) -> i32 {
738 self.into_glib()
739 }
740
741 #[inline]
742 #[allow(clippy::match_single_binding)]
743 fn from(code: i32) -> Option<Self> {
744 match unsafe { from_glib(code) } {
745 Self::__Unknown(_) => Some(Self::Failed),
746 value => Some(value),
747 }
748 }
749}
750
751#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
753#[non_exhaustive]
754#[doc(alias = "GKeyFileError")]
755pub enum KeyFileError {
756 #[doc(alias = "G_KEY_FILE_ERROR_UNKNOWN_ENCODING")]
759 UnknownEncoding,
760 #[doc(alias = "G_KEY_FILE_ERROR_PARSE")]
762 Parse,
763 #[doc(alias = "G_KEY_FILE_ERROR_NOT_FOUND")]
765 NotFound,
766 #[doc(alias = "G_KEY_FILE_ERROR_KEY_NOT_FOUND")]
768 KeyNotFound,
769 #[doc(alias = "G_KEY_FILE_ERROR_GROUP_NOT_FOUND")]
771 GroupNotFound,
772 #[doc(alias = "G_KEY_FILE_ERROR_INVALID_VALUE")]
774 InvalidValue,
775 #[doc(hidden)]
776 __Unknown(i32),
777}
778
779#[doc(hidden)]
780impl IntoGlib for KeyFileError {
781 type GlibType = ffi::GKeyFileError;
782
783 #[inline]
784 fn into_glib(self) -> ffi::GKeyFileError {
785 match self {
786 Self::UnknownEncoding => ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
787 Self::Parse => ffi::G_KEY_FILE_ERROR_PARSE,
788 Self::NotFound => ffi::G_KEY_FILE_ERROR_NOT_FOUND,
789 Self::KeyNotFound => ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND,
790 Self::GroupNotFound => ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
791 Self::InvalidValue => ffi::G_KEY_FILE_ERROR_INVALID_VALUE,
792 Self::__Unknown(value) => value,
793 }
794 }
795}
796
797#[doc(hidden)]
798impl FromGlib<ffi::GKeyFileError> for KeyFileError {
799 #[inline]
800 unsafe fn from_glib(value: ffi::GKeyFileError) -> Self {
801 match value {
802 ffi::G_KEY_FILE_ERROR_UNKNOWN_ENCODING => Self::UnknownEncoding,
803 ffi::G_KEY_FILE_ERROR_PARSE => Self::Parse,
804 ffi::G_KEY_FILE_ERROR_NOT_FOUND => Self::NotFound,
805 ffi::G_KEY_FILE_ERROR_KEY_NOT_FOUND => Self::KeyNotFound,
806 ffi::G_KEY_FILE_ERROR_GROUP_NOT_FOUND => Self::GroupNotFound,
807 ffi::G_KEY_FILE_ERROR_INVALID_VALUE => Self::InvalidValue,
808 value => Self::__Unknown(value),
809 }
810 }
811}
812
813impl crate::error::ErrorDomain for KeyFileError {
814 #[inline]
815 fn domain() -> crate::Quark {
816 unsafe { from_glib(ffi::g_key_file_error_quark()) }
817 }
818
819 #[inline]
820 fn code(self) -> i32 {
821 self.into_glib()
822 }
823
824 #[inline]
825 #[allow(clippy::match_single_binding)]
826 fn from(code: i32) -> Option<Self> {
827 match unsafe { from_glib(code) } {
828 value => Some(value),
829 }
830 }
831}
832
833#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
840#[non_exhaustive]
841#[doc(alias = "GLogWriterOutput")]
842pub enum LogWriterOutput {
843 #[doc(alias = "G_LOG_WRITER_HANDLED")]
845 Handled,
846 #[doc(alias = "G_LOG_WRITER_UNHANDLED")]
848 Unhandled,
849 #[doc(hidden)]
850 __Unknown(i32),
851}
852
853#[doc(hidden)]
854impl IntoGlib for LogWriterOutput {
855 type GlibType = ffi::GLogWriterOutput;
856
857 #[inline]
858 fn into_glib(self) -> ffi::GLogWriterOutput {
859 match self {
860 Self::Handled => ffi::G_LOG_WRITER_HANDLED,
861 Self::Unhandled => ffi::G_LOG_WRITER_UNHANDLED,
862 Self::__Unknown(value) => value,
863 }
864 }
865}
866
867#[doc(hidden)]
868impl FromGlib<ffi::GLogWriterOutput> for LogWriterOutput {
869 #[inline]
870 unsafe fn from_glib(value: ffi::GLogWriterOutput) -> Self {
871 match value {
872 ffi::G_LOG_WRITER_HANDLED => Self::Handled,
873 ffi::G_LOG_WRITER_UNHANDLED => Self::Unhandled,
874 value => Self::__Unknown(value),
875 }
876 }
877}
878
879#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
881#[non_exhaustive]
882#[doc(alias = "GMarkupError")]
883pub enum MarkupError {
884 #[doc(alias = "G_MARKUP_ERROR_BAD_UTF8")]
886 BadUtf8,
887 #[doc(alias = "G_MARKUP_ERROR_EMPTY")]
889 Empty,
890 #[doc(alias = "G_MARKUP_ERROR_PARSE")]
892 Parse,
893 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ELEMENT")]
896 UnknownElement,
897 #[doc(alias = "G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE")]
900 UnknownAttribute,
901 #[doc(alias = "G_MARKUP_ERROR_INVALID_CONTENT")]
904 InvalidContent,
905 #[doc(alias = "G_MARKUP_ERROR_MISSING_ATTRIBUTE")]
908 MissingAttribute,
909 #[doc(hidden)]
910 __Unknown(i32),
911}
912
913#[doc(hidden)]
914impl IntoGlib for MarkupError {
915 type GlibType = ffi::GMarkupError;
916
917 #[inline]
918 fn into_glib(self) -> ffi::GMarkupError {
919 match self {
920 Self::BadUtf8 => ffi::G_MARKUP_ERROR_BAD_UTF8,
921 Self::Empty => ffi::G_MARKUP_ERROR_EMPTY,
922 Self::Parse => ffi::G_MARKUP_ERROR_PARSE,
923 Self::UnknownElement => ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT,
924 Self::UnknownAttribute => ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
925 Self::InvalidContent => ffi::G_MARKUP_ERROR_INVALID_CONTENT,
926 Self::MissingAttribute => ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE,
927 Self::__Unknown(value) => value,
928 }
929 }
930}
931
932#[doc(hidden)]
933impl FromGlib<ffi::GMarkupError> for MarkupError {
934 #[inline]
935 unsafe fn from_glib(value: ffi::GMarkupError) -> Self {
936 match value {
937 ffi::G_MARKUP_ERROR_BAD_UTF8 => Self::BadUtf8,
938 ffi::G_MARKUP_ERROR_EMPTY => Self::Empty,
939 ffi::G_MARKUP_ERROR_PARSE => Self::Parse,
940 ffi::G_MARKUP_ERROR_UNKNOWN_ELEMENT => Self::UnknownElement,
941 ffi::G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE => Self::UnknownAttribute,
942 ffi::G_MARKUP_ERROR_INVALID_CONTENT => Self::InvalidContent,
943 ffi::G_MARKUP_ERROR_MISSING_ATTRIBUTE => Self::MissingAttribute,
944 value => Self::__Unknown(value),
945 }
946 }
947}
948
949impl crate::error::ErrorDomain for MarkupError {
950 #[inline]
951 fn domain() -> crate::Quark {
952 unsafe { from_glib(ffi::g_markup_error_quark()) }
953 }
954
955 #[inline]
956 fn code(self) -> i32 {
957 self.into_glib()
958 }
959
960 #[inline]
961 #[allow(clippy::match_single_binding)]
962 fn from(code: i32) -> Option<Self> {
963 match unsafe { from_glib(code) } {
964 value => Some(value),
965 }
966 }
967}
968
969#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
975#[non_exhaustive]
976#[doc(alias = "GNormalizeMode")]
977pub enum NormalizeMode {
978 #[doc(alias = "G_NORMALIZE_DEFAULT")]
981 Default,
982 #[doc(alias = "G_NORMALIZE_DEFAULT_COMPOSE")]
985 DefaultCompose,
986 #[doc(alias = "G_NORMALIZE_ALL")]
992 All,
993 #[doc(alias = "G_NORMALIZE_ALL_COMPOSE")]
996 AllCompose,
997 #[doc(hidden)]
998 __Unknown(i32),
999}
1000
1001#[doc(hidden)]
1002impl IntoGlib for NormalizeMode {
1003 type GlibType = ffi::GNormalizeMode;
1004
1005 #[inline]
1006 fn into_glib(self) -> ffi::GNormalizeMode {
1007 match self {
1008 Self::Default => ffi::G_NORMALIZE_DEFAULT,
1009 Self::DefaultCompose => ffi::G_NORMALIZE_DEFAULT_COMPOSE,
1010 Self::All => ffi::G_NORMALIZE_ALL,
1011 Self::AllCompose => ffi::G_NORMALIZE_ALL_COMPOSE,
1012 Self::__Unknown(value) => value,
1013 }
1014 }
1015}
1016
1017#[doc(hidden)]
1018impl FromGlib<ffi::GNormalizeMode> for NormalizeMode {
1019 #[inline]
1020 unsafe fn from_glib(value: ffi::GNormalizeMode) -> Self {
1021 match value {
1022 ffi::G_NORMALIZE_DEFAULT => Self::Default,
1023 ffi::G_NORMALIZE_DEFAULT_COMPOSE => Self::DefaultCompose,
1024 ffi::G_NORMALIZE_ALL => Self::All,
1025 ffi::G_NORMALIZE_ALL_COMPOSE => Self::AllCompose,
1026 value => Self::__Unknown(value),
1027 }
1028 }
1029}
1030
1031impl StaticType for NormalizeMode {
1032 #[inline]
1033 #[doc(alias = "g_normalize_mode_get_type")]
1034 fn static_type() -> crate::Type {
1035 unsafe { from_glib(ffi::g_normalize_mode_get_type()) }
1036 }
1037}
1038
1039impl crate::HasParamSpec for NormalizeMode {
1040 type ParamSpec = crate::ParamSpecEnum;
1041 type SetValue = Self;
1042 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
1043
1044 fn param_spec_builder() -> Self::BuilderFn {
1045 Self::ParamSpec::builder_with_default
1046 }
1047}
1048
1049impl crate::value::ValueType for NormalizeMode {
1050 type Type = Self;
1051}
1052
1053unsafe impl<'a> crate::value::FromValue<'a> for NormalizeMode {
1054 type Checker = crate::value::GenericValueTypeChecker<Self>;
1055
1056 #[inline]
1057 unsafe fn from_value(value: &'a crate::Value) -> Self {
1058 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1059 }
1060}
1061
1062impl ToValue for NormalizeMode {
1063 #[inline]
1064 fn to_value(&self) -> crate::Value {
1065 let mut value = crate::Value::for_value_type::<Self>();
1066 unsafe {
1067 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1068 }
1069 value
1070 }
1071
1072 #[inline]
1073 fn value_type(&self) -> crate::Type {
1074 Self::static_type()
1075 }
1076}
1077
1078impl From<NormalizeMode> for crate::Value {
1079 #[inline]
1080 fn from(v: NormalizeMode) -> Self {
1081 ToValue::to_value(&v)
1082 }
1083}
1084
1085#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1090#[non_exhaustive]
1091#[doc(alias = "GOptionArg")]
1092pub enum OptionArg {
1093 #[doc(alias = "G_OPTION_ARG_NONE")]
1095 None,
1096 #[doc(alias = "G_OPTION_ARG_STRING")]
1098 String,
1099 #[doc(alias = "G_OPTION_ARG_INT")]
1101 Int,
1102 #[doc(alias = "G_OPTION_ARG_CALLBACK")]
1105 Callback,
1106 #[doc(alias = "G_OPTION_ARG_FILENAME")]
1109 Filename,
1110 #[doc(alias = "G_OPTION_ARG_STRING_ARRAY")]
1113 StringArray,
1114 #[doc(alias = "G_OPTION_ARG_FILENAME_ARRAY")]
1117 FilenameArray,
1118 #[doc(alias = "G_OPTION_ARG_DOUBLE")]
1122 Double,
1123 #[doc(alias = "G_OPTION_ARG_INT64")]
1128 Int64,
1129 #[doc(hidden)]
1130 __Unknown(i32),
1131}
1132
1133#[doc(hidden)]
1134impl IntoGlib for OptionArg {
1135 type GlibType = ffi::GOptionArg;
1136
1137 #[inline]
1138 fn into_glib(self) -> ffi::GOptionArg {
1139 match self {
1140 Self::None => ffi::G_OPTION_ARG_NONE,
1141 Self::String => ffi::G_OPTION_ARG_STRING,
1142 Self::Int => ffi::G_OPTION_ARG_INT,
1143 Self::Callback => ffi::G_OPTION_ARG_CALLBACK,
1144 Self::Filename => ffi::G_OPTION_ARG_FILENAME,
1145 Self::StringArray => ffi::G_OPTION_ARG_STRING_ARRAY,
1146 Self::FilenameArray => ffi::G_OPTION_ARG_FILENAME_ARRAY,
1147 Self::Double => ffi::G_OPTION_ARG_DOUBLE,
1148 Self::Int64 => ffi::G_OPTION_ARG_INT64,
1149 Self::__Unknown(value) => value,
1150 }
1151 }
1152}
1153
1154#[doc(hidden)]
1155impl FromGlib<ffi::GOptionArg> for OptionArg {
1156 #[inline]
1157 unsafe fn from_glib(value: ffi::GOptionArg) -> Self {
1158 match value {
1159 ffi::G_OPTION_ARG_NONE => Self::None,
1160 ffi::G_OPTION_ARG_STRING => Self::String,
1161 ffi::G_OPTION_ARG_INT => Self::Int,
1162 ffi::G_OPTION_ARG_CALLBACK => Self::Callback,
1163 ffi::G_OPTION_ARG_FILENAME => Self::Filename,
1164 ffi::G_OPTION_ARG_STRING_ARRAY => Self::StringArray,
1165 ffi::G_OPTION_ARG_FILENAME_ARRAY => Self::FilenameArray,
1166 ffi::G_OPTION_ARG_DOUBLE => Self::Double,
1167 ffi::G_OPTION_ARG_INT64 => Self::Int64,
1168 value => Self::__Unknown(value),
1169 }
1170 }
1171}
1172
1173#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1176#[non_exhaustive]
1177#[doc(alias = "GSeekType")]
1178pub enum SeekType {
1179 #[doc(alias = "G_SEEK_CUR")]
1181 Cur,
1182 #[doc(alias = "G_SEEK_SET")]
1184 Set,
1185 #[doc(alias = "G_SEEK_END")]
1187 End,
1188 #[doc(hidden)]
1189 __Unknown(i32),
1190}
1191
1192#[doc(hidden)]
1193impl IntoGlib for SeekType {
1194 type GlibType = ffi::GSeekType;
1195
1196 #[inline]
1197 fn into_glib(self) -> ffi::GSeekType {
1198 match self {
1199 Self::Cur => ffi::G_SEEK_CUR,
1200 Self::Set => ffi::G_SEEK_SET,
1201 Self::End => ffi::G_SEEK_END,
1202 Self::__Unknown(value) => value,
1203 }
1204 }
1205}
1206
1207#[doc(hidden)]
1208impl FromGlib<ffi::GSeekType> for SeekType {
1209 #[inline]
1210 unsafe fn from_glib(value: ffi::GSeekType) -> Self {
1211 match value {
1212 ffi::G_SEEK_CUR => Self::Cur,
1213 ffi::G_SEEK_SET => Self::Set,
1214 ffi::G_SEEK_END => Self::End,
1215 value => Self::__Unknown(value),
1216 }
1217 }
1218}
1219
1220#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1229#[non_exhaustive]
1230#[doc(alias = "GTimeType")]
1231pub enum TimeType {
1232 #[doc(alias = "G_TIME_TYPE_STANDARD")]
1234 Standard,
1235 #[doc(alias = "G_TIME_TYPE_DAYLIGHT")]
1237 Daylight,
1238 #[doc(alias = "G_TIME_TYPE_UNIVERSAL")]
1240 Universal,
1241 #[doc(hidden)]
1242 __Unknown(i32),
1243}
1244
1245#[doc(hidden)]
1246impl IntoGlib for TimeType {
1247 type GlibType = ffi::GTimeType;
1248
1249 #[inline]
1250 fn into_glib(self) -> ffi::GTimeType {
1251 match self {
1252 Self::Standard => ffi::G_TIME_TYPE_STANDARD,
1253 Self::Daylight => ffi::G_TIME_TYPE_DAYLIGHT,
1254 Self::Universal => ffi::G_TIME_TYPE_UNIVERSAL,
1255 Self::__Unknown(value) => value,
1256 }
1257 }
1258}
1259
1260#[doc(hidden)]
1261impl FromGlib<ffi::GTimeType> for TimeType {
1262 #[inline]
1263 unsafe fn from_glib(value: ffi::GTimeType) -> Self {
1264 match value {
1265 ffi::G_TIME_TYPE_STANDARD => Self::Standard,
1266 ffi::G_TIME_TYPE_DAYLIGHT => Self::Daylight,
1267 ffi::G_TIME_TYPE_UNIVERSAL => Self::Universal,
1268 value => Self::__Unknown(value),
1269 }
1270 }
1271}
1272
1273#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1280#[non_exhaustive]
1281#[doc(alias = "GUnicodeBreakType")]
1282pub enum UnicodeBreakType {
1283 #[doc(alias = "G_UNICODE_BREAK_MANDATORY")]
1285 Mandatory,
1286 #[doc(alias = "G_UNICODE_BREAK_CARRIAGE_RETURN")]
1288 CarriageReturn,
1289 #[doc(alias = "G_UNICODE_BREAK_LINE_FEED")]
1291 LineFeed,
1292 #[doc(alias = "G_UNICODE_BREAK_COMBINING_MARK")]
1294 CombiningMark,
1295 #[doc(alias = "G_UNICODE_BREAK_SURROGATE")]
1297 Surrogate,
1298 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_SPACE")]
1300 ZeroWidthSpace,
1301 #[doc(alias = "G_UNICODE_BREAK_INSEPARABLE")]
1303 Inseparable,
1304 #[doc(alias = "G_UNICODE_BREAK_NON_BREAKING_GLUE")]
1306 NonBreakingGlue,
1307 #[doc(alias = "G_UNICODE_BREAK_CONTINGENT")]
1309 Contingent,
1310 #[doc(alias = "G_UNICODE_BREAK_SPACE")]
1312 Space,
1313 #[doc(alias = "G_UNICODE_BREAK_AFTER")]
1315 After,
1316 #[doc(alias = "G_UNICODE_BREAK_BEFORE")]
1318 Before,
1319 #[doc(alias = "G_UNICODE_BREAK_BEFORE_AND_AFTER")]
1321 BeforeAndAfter,
1322 #[doc(alias = "G_UNICODE_BREAK_HYPHEN")]
1324 Hyphen,
1325 #[doc(alias = "G_UNICODE_BREAK_NON_STARTER")]
1327 NonStarter,
1328 #[doc(alias = "G_UNICODE_BREAK_OPEN_PUNCTUATION")]
1330 OpenPunctuation,
1331 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PUNCTUATION")]
1333 ClosePunctuation,
1334 #[doc(alias = "G_UNICODE_BREAK_QUOTATION")]
1336 Quotation,
1337 #[doc(alias = "G_UNICODE_BREAK_EXCLAMATION")]
1339 Exclamation,
1340 #[doc(alias = "G_UNICODE_BREAK_IDEOGRAPHIC")]
1342 Ideographic,
1343 #[doc(alias = "G_UNICODE_BREAK_NUMERIC")]
1345 Numeric,
1346 #[doc(alias = "G_UNICODE_BREAK_INFIX_SEPARATOR")]
1348 InfixSeparator,
1349 #[doc(alias = "G_UNICODE_BREAK_SYMBOL")]
1351 Symbol,
1352 #[doc(alias = "G_UNICODE_BREAK_ALPHABETIC")]
1354 Alphabetic,
1355 #[doc(alias = "G_UNICODE_BREAK_PREFIX")]
1357 Prefix,
1358 #[doc(alias = "G_UNICODE_BREAK_POSTFIX")]
1360 Postfix,
1361 #[doc(alias = "G_UNICODE_BREAK_COMPLEX_CONTEXT")]
1363 ComplexContext,
1364 #[doc(alias = "G_UNICODE_BREAK_AMBIGUOUS")]
1366 Ambiguous,
1367 #[doc(alias = "G_UNICODE_BREAK_UNKNOWN")]
1369 Unknown,
1370 #[doc(alias = "G_UNICODE_BREAK_NEXT_LINE")]
1372 NextLine,
1373 #[doc(alias = "G_UNICODE_BREAK_WORD_JOINER")]
1375 WordJoiner,
1376 #[doc(alias = "G_UNICODE_BREAK_HANGUL_L_JAMO")]
1378 HangulLJamo,
1379 #[doc(alias = "G_UNICODE_BREAK_HANGUL_V_JAMO")]
1381 HangulVJamo,
1382 #[doc(alias = "G_UNICODE_BREAK_HANGUL_T_JAMO")]
1384 HangulTJamo,
1385 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LV_SYLLABLE")]
1387 HangulLvSyllable,
1388 #[doc(alias = "G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE")]
1390 HangulLvtSyllable,
1391 #[doc(alias = "G_UNICODE_BREAK_CLOSE_PARENTHESIS")]
1393 CloseParenthesis,
1394 #[doc(alias = "G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER")]
1396 ConditionalJapaneseStarter,
1397 #[doc(alias = "G_UNICODE_BREAK_HEBREW_LETTER")]
1399 HebrewLetter,
1400 #[doc(alias = "G_UNICODE_BREAK_REGIONAL_INDICATOR")]
1402 RegionalIndicator,
1403 #[doc(alias = "G_UNICODE_BREAK_EMOJI_BASE")]
1405 EmojiBase,
1406 #[doc(alias = "G_UNICODE_BREAK_EMOJI_MODIFIER")]
1408 EmojiModifier,
1409 #[doc(alias = "G_UNICODE_BREAK_ZERO_WIDTH_JOINER")]
1411 ZeroWidthJoiner,
1412 #[cfg(feature = "v2_80")]
1414 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1415 #[doc(alias = "G_UNICODE_BREAK_AKSARA")]
1416 Aksara,
1417 #[cfg(feature = "v2_80")]
1419 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1420 #[doc(alias = "G_UNICODE_BREAK_AKSARA_PRE_BASE")]
1421 AksaraPreBase,
1422 #[cfg(feature = "v2_80")]
1424 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1425 #[doc(alias = "G_UNICODE_BREAK_AKSARA_START")]
1426 AksaraStart,
1427 #[cfg(feature = "v2_80")]
1429 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1430 #[doc(alias = "G_UNICODE_BREAK_VIRAMA_FINAL")]
1431 ViramaFinal,
1432 #[cfg(feature = "v2_80")]
1434 #[cfg_attr(docsrs, doc(cfg(feature = "v2_80")))]
1435 #[doc(alias = "G_UNICODE_BREAK_VIRAMA")]
1436 Virama,
1437 #[doc(hidden)]
1438 __Unknown(i32),
1439}
1440
1441#[doc(hidden)]
1442impl IntoGlib for UnicodeBreakType {
1443 type GlibType = ffi::GUnicodeBreakType;
1444
1445 fn into_glib(self) -> ffi::GUnicodeBreakType {
1446 match self {
1447 Self::Mandatory => ffi::G_UNICODE_BREAK_MANDATORY,
1448 Self::CarriageReturn => ffi::G_UNICODE_BREAK_CARRIAGE_RETURN,
1449 Self::LineFeed => ffi::G_UNICODE_BREAK_LINE_FEED,
1450 Self::CombiningMark => ffi::G_UNICODE_BREAK_COMBINING_MARK,
1451 Self::Surrogate => ffi::G_UNICODE_BREAK_SURROGATE,
1452 Self::ZeroWidthSpace => ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
1453 Self::Inseparable => ffi::G_UNICODE_BREAK_INSEPARABLE,
1454 Self::NonBreakingGlue => ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE,
1455 Self::Contingent => ffi::G_UNICODE_BREAK_CONTINGENT,
1456 Self::Space => ffi::G_UNICODE_BREAK_SPACE,
1457 Self::After => ffi::G_UNICODE_BREAK_AFTER,
1458 Self::Before => ffi::G_UNICODE_BREAK_BEFORE,
1459 Self::BeforeAndAfter => ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER,
1460 Self::Hyphen => ffi::G_UNICODE_BREAK_HYPHEN,
1461 Self::NonStarter => ffi::G_UNICODE_BREAK_NON_STARTER,
1462 Self::OpenPunctuation => ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION,
1463 Self::ClosePunctuation => ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION,
1464 Self::Quotation => ffi::G_UNICODE_BREAK_QUOTATION,
1465 Self::Exclamation => ffi::G_UNICODE_BREAK_EXCLAMATION,
1466 Self::Ideographic => ffi::G_UNICODE_BREAK_IDEOGRAPHIC,
1467 Self::Numeric => ffi::G_UNICODE_BREAK_NUMERIC,
1468 Self::InfixSeparator => ffi::G_UNICODE_BREAK_INFIX_SEPARATOR,
1469 Self::Symbol => ffi::G_UNICODE_BREAK_SYMBOL,
1470 Self::Alphabetic => ffi::G_UNICODE_BREAK_ALPHABETIC,
1471 Self::Prefix => ffi::G_UNICODE_BREAK_PREFIX,
1472 Self::Postfix => ffi::G_UNICODE_BREAK_POSTFIX,
1473 Self::ComplexContext => ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT,
1474 Self::Ambiguous => ffi::G_UNICODE_BREAK_AMBIGUOUS,
1475 Self::Unknown => ffi::G_UNICODE_BREAK_UNKNOWN,
1476 Self::NextLine => ffi::G_UNICODE_BREAK_NEXT_LINE,
1477 Self::WordJoiner => ffi::G_UNICODE_BREAK_WORD_JOINER,
1478 Self::HangulLJamo => ffi::G_UNICODE_BREAK_HANGUL_L_JAMO,
1479 Self::HangulVJamo => ffi::G_UNICODE_BREAK_HANGUL_V_JAMO,
1480 Self::HangulTJamo => ffi::G_UNICODE_BREAK_HANGUL_T_JAMO,
1481 Self::HangulLvSyllable => ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
1482 Self::HangulLvtSyllable => ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE,
1483 Self::CloseParenthesis => ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS,
1484 Self::ConditionalJapaneseStarter => ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER,
1485 Self::HebrewLetter => ffi::G_UNICODE_BREAK_HEBREW_LETTER,
1486 Self::RegionalIndicator => ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR,
1487 Self::EmojiBase => ffi::G_UNICODE_BREAK_EMOJI_BASE,
1488 Self::EmojiModifier => ffi::G_UNICODE_BREAK_EMOJI_MODIFIER,
1489 Self::ZeroWidthJoiner => ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER,
1490 #[cfg(feature = "v2_80")]
1491 Self::Aksara => ffi::G_UNICODE_BREAK_AKSARA,
1492 #[cfg(feature = "v2_80")]
1493 Self::AksaraPreBase => ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE,
1494 #[cfg(feature = "v2_80")]
1495 Self::AksaraStart => ffi::G_UNICODE_BREAK_AKSARA_START,
1496 #[cfg(feature = "v2_80")]
1497 Self::ViramaFinal => ffi::G_UNICODE_BREAK_VIRAMA_FINAL,
1498 #[cfg(feature = "v2_80")]
1499 Self::Virama => ffi::G_UNICODE_BREAK_VIRAMA,
1500 Self::__Unknown(value) => value,
1501 }
1502 }
1503}
1504
1505#[doc(hidden)]
1506impl FromGlib<ffi::GUnicodeBreakType> for UnicodeBreakType {
1507 unsafe fn from_glib(value: ffi::GUnicodeBreakType) -> Self {
1508 match value {
1509 ffi::G_UNICODE_BREAK_MANDATORY => Self::Mandatory,
1510 ffi::G_UNICODE_BREAK_CARRIAGE_RETURN => Self::CarriageReturn,
1511 ffi::G_UNICODE_BREAK_LINE_FEED => Self::LineFeed,
1512 ffi::G_UNICODE_BREAK_COMBINING_MARK => Self::CombiningMark,
1513 ffi::G_UNICODE_BREAK_SURROGATE => Self::Surrogate,
1514 ffi::G_UNICODE_BREAK_ZERO_WIDTH_SPACE => Self::ZeroWidthSpace,
1515 ffi::G_UNICODE_BREAK_INSEPARABLE => Self::Inseparable,
1516 ffi::G_UNICODE_BREAK_NON_BREAKING_GLUE => Self::NonBreakingGlue,
1517 ffi::G_UNICODE_BREAK_CONTINGENT => Self::Contingent,
1518 ffi::G_UNICODE_BREAK_SPACE => Self::Space,
1519 ffi::G_UNICODE_BREAK_AFTER => Self::After,
1520 ffi::G_UNICODE_BREAK_BEFORE => Self::Before,
1521 ffi::G_UNICODE_BREAK_BEFORE_AND_AFTER => Self::BeforeAndAfter,
1522 ffi::G_UNICODE_BREAK_HYPHEN => Self::Hyphen,
1523 ffi::G_UNICODE_BREAK_NON_STARTER => Self::NonStarter,
1524 ffi::G_UNICODE_BREAK_OPEN_PUNCTUATION => Self::OpenPunctuation,
1525 ffi::G_UNICODE_BREAK_CLOSE_PUNCTUATION => Self::ClosePunctuation,
1526 ffi::G_UNICODE_BREAK_QUOTATION => Self::Quotation,
1527 ffi::G_UNICODE_BREAK_EXCLAMATION => Self::Exclamation,
1528 ffi::G_UNICODE_BREAK_IDEOGRAPHIC => Self::Ideographic,
1529 ffi::G_UNICODE_BREAK_NUMERIC => Self::Numeric,
1530 ffi::G_UNICODE_BREAK_INFIX_SEPARATOR => Self::InfixSeparator,
1531 ffi::G_UNICODE_BREAK_SYMBOL => Self::Symbol,
1532 ffi::G_UNICODE_BREAK_ALPHABETIC => Self::Alphabetic,
1533 ffi::G_UNICODE_BREAK_PREFIX => Self::Prefix,
1534 ffi::G_UNICODE_BREAK_POSTFIX => Self::Postfix,
1535 ffi::G_UNICODE_BREAK_COMPLEX_CONTEXT => Self::ComplexContext,
1536 ffi::G_UNICODE_BREAK_AMBIGUOUS => Self::Ambiguous,
1537 ffi::G_UNICODE_BREAK_UNKNOWN => Self::Unknown,
1538 ffi::G_UNICODE_BREAK_NEXT_LINE => Self::NextLine,
1539 ffi::G_UNICODE_BREAK_WORD_JOINER => Self::WordJoiner,
1540 ffi::G_UNICODE_BREAK_HANGUL_L_JAMO => Self::HangulLJamo,
1541 ffi::G_UNICODE_BREAK_HANGUL_V_JAMO => Self::HangulVJamo,
1542 ffi::G_UNICODE_BREAK_HANGUL_T_JAMO => Self::HangulTJamo,
1543 ffi::G_UNICODE_BREAK_HANGUL_LV_SYLLABLE => Self::HangulLvSyllable,
1544 ffi::G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE => Self::HangulLvtSyllable,
1545 ffi::G_UNICODE_BREAK_CLOSE_PARENTHESIS => Self::CloseParenthesis,
1546 ffi::G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER => Self::ConditionalJapaneseStarter,
1547 ffi::G_UNICODE_BREAK_HEBREW_LETTER => Self::HebrewLetter,
1548 ffi::G_UNICODE_BREAK_REGIONAL_INDICATOR => Self::RegionalIndicator,
1549 ffi::G_UNICODE_BREAK_EMOJI_BASE => Self::EmojiBase,
1550 ffi::G_UNICODE_BREAK_EMOJI_MODIFIER => Self::EmojiModifier,
1551 ffi::G_UNICODE_BREAK_ZERO_WIDTH_JOINER => Self::ZeroWidthJoiner,
1552 #[cfg(feature = "v2_80")]
1553 ffi::G_UNICODE_BREAK_AKSARA => Self::Aksara,
1554 #[cfg(feature = "v2_80")]
1555 ffi::G_UNICODE_BREAK_AKSARA_PRE_BASE => Self::AksaraPreBase,
1556 #[cfg(feature = "v2_80")]
1557 ffi::G_UNICODE_BREAK_AKSARA_START => Self::AksaraStart,
1558 #[cfg(feature = "v2_80")]
1559 ffi::G_UNICODE_BREAK_VIRAMA_FINAL => Self::ViramaFinal,
1560 #[cfg(feature = "v2_80")]
1561 ffi::G_UNICODE_BREAK_VIRAMA => Self::Virama,
1562 value => Self::__Unknown(value),
1563 }
1564 }
1565}
1566
1567impl StaticType for UnicodeBreakType {
1568 #[inline]
1569 #[doc(alias = "g_unicode_break_type_get_type")]
1570 fn static_type() -> crate::Type {
1571 unsafe { from_glib(ffi::g_unicode_break_type_get_type()) }
1572 }
1573}
1574
1575impl crate::HasParamSpec for UnicodeBreakType {
1576 type ParamSpec = crate::ParamSpecEnum;
1577 type SetValue = Self;
1578 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
1579
1580 fn param_spec_builder() -> Self::BuilderFn {
1581 Self::ParamSpec::builder_with_default
1582 }
1583}
1584
1585impl crate::value::ValueType for UnicodeBreakType {
1586 type Type = Self;
1587}
1588
1589unsafe impl<'a> crate::value::FromValue<'a> for UnicodeBreakType {
1590 type Checker = crate::value::GenericValueTypeChecker<Self>;
1591
1592 #[inline]
1593 unsafe fn from_value(value: &'a crate::Value) -> Self {
1594 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1595 }
1596}
1597
1598impl ToValue for UnicodeBreakType {
1599 #[inline]
1600 fn to_value(&self) -> crate::Value {
1601 let mut value = crate::Value::for_value_type::<Self>();
1602 unsafe {
1603 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1604 }
1605 value
1606 }
1607
1608 #[inline]
1609 fn value_type(&self) -> crate::Type {
1610 Self::static_type()
1611 }
1612}
1613
1614impl From<UnicodeBreakType> for crate::Value {
1615 #[inline]
1616 fn from(v: UnicodeBreakType) -> Self {
1617 ToValue::to_value(&v)
1618 }
1619}
1620
1621#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1630#[non_exhaustive]
1631#[doc(alias = "GUnicodeScript")]
1632pub enum UnicodeScript {
1633 #[doc(alias = "G_UNICODE_SCRIPT_INVALID_CODE")]
1635 InvalidCode,
1636 #[doc(alias = "G_UNICODE_SCRIPT_COMMON")]
1638 Common,
1639 #[doc(alias = "G_UNICODE_SCRIPT_INHERITED")]
1642 Inherited,
1643 #[doc(alias = "G_UNICODE_SCRIPT_ARABIC")]
1645 Arabic,
1646 #[doc(alias = "G_UNICODE_SCRIPT_ARMENIAN")]
1648 Armenian,
1649 #[doc(alias = "G_UNICODE_SCRIPT_BENGALI")]
1651 Bengali,
1652 #[doc(alias = "G_UNICODE_SCRIPT_BOPOMOFO")]
1654 Bopomofo,
1655 #[doc(alias = "G_UNICODE_SCRIPT_CHEROKEE")]
1657 Cherokee,
1658 #[doc(alias = "G_UNICODE_SCRIPT_COPTIC")]
1660 Coptic,
1661 #[doc(alias = "G_UNICODE_SCRIPT_CYRILLIC")]
1663 Cyrillic,
1664 #[doc(alias = "G_UNICODE_SCRIPT_DESERET")]
1666 Deseret,
1667 #[doc(alias = "G_UNICODE_SCRIPT_DEVANAGARI")]
1669 Devanagari,
1670 #[doc(alias = "G_UNICODE_SCRIPT_ETHIOPIC")]
1672 Ethiopic,
1673 #[doc(alias = "G_UNICODE_SCRIPT_GEORGIAN")]
1675 Georgian,
1676 #[doc(alias = "G_UNICODE_SCRIPT_GOTHIC")]
1678 Gothic,
1679 #[doc(alias = "G_UNICODE_SCRIPT_GREEK")]
1681 Greek,
1682 #[doc(alias = "G_UNICODE_SCRIPT_GUJARATI")]
1684 Gujarati,
1685 #[doc(alias = "G_UNICODE_SCRIPT_GURMUKHI")]
1687 Gurmukhi,
1688 #[doc(alias = "G_UNICODE_SCRIPT_HAN")]
1690 Han,
1691 #[doc(alias = "G_UNICODE_SCRIPT_HANGUL")]
1693 Hangul,
1694 #[doc(alias = "G_UNICODE_SCRIPT_HEBREW")]
1696 Hebrew,
1697 #[doc(alias = "G_UNICODE_SCRIPT_HIRAGANA")]
1699 Hiragana,
1700 #[doc(alias = "G_UNICODE_SCRIPT_KANNADA")]
1702 Kannada,
1703 #[doc(alias = "G_UNICODE_SCRIPT_KATAKANA")]
1705 Katakana,
1706 #[doc(alias = "G_UNICODE_SCRIPT_KHMER")]
1708 Khmer,
1709 #[doc(alias = "G_UNICODE_SCRIPT_LAO")]
1711 Lao,
1712 #[doc(alias = "G_UNICODE_SCRIPT_LATIN")]
1714 Latin,
1715 #[doc(alias = "G_UNICODE_SCRIPT_MALAYALAM")]
1717 Malayalam,
1718 #[doc(alias = "G_UNICODE_SCRIPT_MONGOLIAN")]
1720 Mongolian,
1721 #[doc(alias = "G_UNICODE_SCRIPT_MYANMAR")]
1723 Myanmar,
1724 #[doc(alias = "G_UNICODE_SCRIPT_OGHAM")]
1726 Ogham,
1727 #[doc(alias = "G_UNICODE_SCRIPT_OLD_ITALIC")]
1729 OldItalic,
1730 #[doc(alias = "G_UNICODE_SCRIPT_ORIYA")]
1732 Oriya,
1733 #[doc(alias = "G_UNICODE_SCRIPT_RUNIC")]
1735 Runic,
1736 #[doc(alias = "G_UNICODE_SCRIPT_SINHALA")]
1738 Sinhala,
1739 #[doc(alias = "G_UNICODE_SCRIPT_SYRIAC")]
1741 Syriac,
1742 #[doc(alias = "G_UNICODE_SCRIPT_TAMIL")]
1744 Tamil,
1745 #[doc(alias = "G_UNICODE_SCRIPT_TELUGU")]
1747 Telugu,
1748 #[doc(alias = "G_UNICODE_SCRIPT_THAANA")]
1750 Thaana,
1751 #[doc(alias = "G_UNICODE_SCRIPT_THAI")]
1753 Thai,
1754 #[doc(alias = "G_UNICODE_SCRIPT_TIBETAN")]
1756 Tibetan,
1757 #[doc(alias = "G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL")]
1759 CanadianAboriginal,
1760 #[doc(alias = "G_UNICODE_SCRIPT_YI")]
1762 Yi,
1763 #[doc(alias = "G_UNICODE_SCRIPT_TAGALOG")]
1765 Tagalog,
1766 #[doc(alias = "G_UNICODE_SCRIPT_HANUNOO")]
1768 Hanunoo,
1769 #[doc(alias = "G_UNICODE_SCRIPT_BUHID")]
1771 Buhid,
1772 #[doc(alias = "G_UNICODE_SCRIPT_TAGBANWA")]
1774 Tagbanwa,
1775 #[doc(alias = "G_UNICODE_SCRIPT_BRAILLE")]
1777 Braille,
1778 #[doc(alias = "G_UNICODE_SCRIPT_CYPRIOT")]
1780 Cypriot,
1781 #[doc(alias = "G_UNICODE_SCRIPT_LIMBU")]
1783 Limbu,
1784 #[doc(alias = "G_UNICODE_SCRIPT_OSMANYA")]
1786 Osmanya,
1787 #[doc(alias = "G_UNICODE_SCRIPT_SHAVIAN")]
1789 Shavian,
1790 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_B")]
1792 LinearB,
1793 #[doc(alias = "G_UNICODE_SCRIPT_TAI_LE")]
1795 TaiLe,
1796 #[doc(alias = "G_UNICODE_SCRIPT_UGARITIC")]
1798 Ugaritic,
1799 #[doc(alias = "G_UNICODE_SCRIPT_NEW_TAI_LUE")]
1801 NewTaiLue,
1802 #[doc(alias = "G_UNICODE_SCRIPT_BUGINESE")]
1804 Buginese,
1805 #[doc(alias = "G_UNICODE_SCRIPT_GLAGOLITIC")]
1807 Glagolitic,
1808 #[doc(alias = "G_UNICODE_SCRIPT_TIFINAGH")]
1810 Tifinagh,
1811 #[doc(alias = "G_UNICODE_SCRIPT_SYLOTI_NAGRI")]
1813 SylotiNagri,
1814 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERSIAN")]
1816 OldPersian,
1817 #[doc(alias = "G_UNICODE_SCRIPT_KHAROSHTHI")]
1819 Kharoshthi,
1820 #[doc(alias = "G_UNICODE_SCRIPT_UNKNOWN")]
1822 Unknown,
1823 #[doc(alias = "G_UNICODE_SCRIPT_BALINESE")]
1825 Balinese,
1826 #[doc(alias = "G_UNICODE_SCRIPT_CUNEIFORM")]
1828 Cuneiform,
1829 #[doc(alias = "G_UNICODE_SCRIPT_PHOENICIAN")]
1831 Phoenician,
1832 #[doc(alias = "G_UNICODE_SCRIPT_PHAGS_PA")]
1834 PhagsPa,
1835 #[doc(alias = "G_UNICODE_SCRIPT_NKO")]
1837 Nko,
1838 #[doc(alias = "G_UNICODE_SCRIPT_KAYAH_LI")]
1840 KayahLi,
1841 #[doc(alias = "G_UNICODE_SCRIPT_LEPCHA")]
1843 Lepcha,
1844 #[doc(alias = "G_UNICODE_SCRIPT_REJANG")]
1846 Rejang,
1847 #[doc(alias = "G_UNICODE_SCRIPT_SUNDANESE")]
1849 Sundanese,
1850 #[doc(alias = "G_UNICODE_SCRIPT_SAURASHTRA")]
1852 Saurashtra,
1853 #[doc(alias = "G_UNICODE_SCRIPT_CHAM")]
1855 Cham,
1856 #[doc(alias = "G_UNICODE_SCRIPT_OL_CHIKI")]
1858 OlChiki,
1859 #[doc(alias = "G_UNICODE_SCRIPT_VAI")]
1861 Vai,
1862 #[doc(alias = "G_UNICODE_SCRIPT_CARIAN")]
1864 Carian,
1865 #[doc(alias = "G_UNICODE_SCRIPT_LYCIAN")]
1867 Lycian,
1868 #[doc(alias = "G_UNICODE_SCRIPT_LYDIAN")]
1870 Lydian,
1871 #[doc(alias = "G_UNICODE_SCRIPT_AVESTAN")]
1873 Avestan,
1874 #[doc(alias = "G_UNICODE_SCRIPT_BAMUM")]
1876 Bamum,
1877 #[doc(alias = "G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS")]
1879 EgyptianHieroglyphs,
1880 #[doc(alias = "G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC")]
1882 ImperialAramaic,
1883 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI")]
1885 InscriptionalPahlavi,
1886 #[doc(alias = "G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN")]
1888 InscriptionalParthian,
1889 #[doc(alias = "G_UNICODE_SCRIPT_JAVANESE")]
1891 Javanese,
1892 #[doc(alias = "G_UNICODE_SCRIPT_KAITHI")]
1894 Kaithi,
1895 #[doc(alias = "G_UNICODE_SCRIPT_LISU")]
1897 Lisu,
1898 #[doc(alias = "G_UNICODE_SCRIPT_MEETEI_MAYEK")]
1900 MeeteiMayek,
1901 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN")]
1903 OldSouthArabian,
1904 #[doc(alias = "G_UNICODE_SCRIPT_OLD_TURKIC")]
1906 OldTurkic,
1907 #[doc(alias = "G_UNICODE_SCRIPT_SAMARITAN")]
1909 Samaritan,
1910 #[doc(alias = "G_UNICODE_SCRIPT_TAI_THAM")]
1912 TaiTham,
1913 #[doc(alias = "G_UNICODE_SCRIPT_TAI_VIET")]
1915 TaiViet,
1916 #[doc(alias = "G_UNICODE_SCRIPT_BATAK")]
1918 Batak,
1919 #[doc(alias = "G_UNICODE_SCRIPT_BRAHMI")]
1921 Brahmi,
1922 #[doc(alias = "G_UNICODE_SCRIPT_MANDAIC")]
1924 Mandaic,
1925 #[doc(alias = "G_UNICODE_SCRIPT_CHAKMA")]
1927 Chakma,
1928 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_CURSIVE")]
1930 MeroiticCursive,
1931 #[doc(alias = "G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS")]
1933 MeroiticHieroglyphs,
1934 #[doc(alias = "G_UNICODE_SCRIPT_MIAO")]
1936 Miao,
1937 #[doc(alias = "G_UNICODE_SCRIPT_SHARADA")]
1939 Sharada,
1940 #[doc(alias = "G_UNICODE_SCRIPT_SORA_SOMPENG")]
1942 SoraSompeng,
1943 #[doc(alias = "G_UNICODE_SCRIPT_TAKRI")]
1945 Takri,
1946 #[doc(alias = "G_UNICODE_SCRIPT_BASSA_VAH")]
1948 BassaVah,
1949 #[doc(alias = "G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN")]
1951 CaucasianAlbanian,
1952 #[doc(alias = "G_UNICODE_SCRIPT_DUPLOYAN")]
1954 Duployan,
1955 #[doc(alias = "G_UNICODE_SCRIPT_ELBASAN")]
1957 Elbasan,
1958 #[doc(alias = "G_UNICODE_SCRIPT_GRANTHA")]
1960 Grantha,
1961 #[doc(alias = "G_UNICODE_SCRIPT_KHOJKI")]
1963 Khojki,
1964 #[doc(alias = "G_UNICODE_SCRIPT_KHUDAWADI")]
1966 Khudawadi,
1967 #[doc(alias = "G_UNICODE_SCRIPT_LINEAR_A")]
1969 LinearA,
1970 #[doc(alias = "G_UNICODE_SCRIPT_MAHAJANI")]
1972 Mahajani,
1973 #[doc(alias = "G_UNICODE_SCRIPT_MANICHAEAN")]
1975 Manichaean,
1976 #[doc(alias = "G_UNICODE_SCRIPT_MENDE_KIKAKUI")]
1978 MendeKikakui,
1979 #[doc(alias = "G_UNICODE_SCRIPT_MODI")]
1981 Modi,
1982 #[doc(alias = "G_UNICODE_SCRIPT_MRO")]
1984 Mro,
1985 #[doc(alias = "G_UNICODE_SCRIPT_NABATAEAN")]
1987 Nabataean,
1988 #[doc(alias = "G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN")]
1990 OldNorthArabian,
1991 #[doc(alias = "G_UNICODE_SCRIPT_OLD_PERMIC")]
1993 OldPermic,
1994 #[doc(alias = "G_UNICODE_SCRIPT_PAHAWH_HMONG")]
1996 PahawhHmong,
1997 #[doc(alias = "G_UNICODE_SCRIPT_PALMYRENE")]
1999 Palmyrene,
2000 #[doc(alias = "G_UNICODE_SCRIPT_PAU_CIN_HAU")]
2002 PauCinHau,
2003 #[doc(alias = "G_UNICODE_SCRIPT_PSALTER_PAHLAVI")]
2005 PsalterPahlavi,
2006 #[doc(alias = "G_UNICODE_SCRIPT_SIDDHAM")]
2008 Siddham,
2009 #[doc(alias = "G_UNICODE_SCRIPT_TIRHUTA")]
2011 Tirhuta,
2012 #[doc(alias = "G_UNICODE_SCRIPT_WARANG_CITI")]
2014 WarangCiti,
2015 #[doc(alias = "G_UNICODE_SCRIPT_AHOM")]
2017 Ahom,
2018 #[doc(alias = "G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS")]
2020 AnatolianHieroglyphs,
2021 #[doc(alias = "G_UNICODE_SCRIPT_HATRAN")]
2023 Hatran,
2024 #[doc(alias = "G_UNICODE_SCRIPT_MULTANI")]
2026 Multani,
2027 #[doc(alias = "G_UNICODE_SCRIPT_OLD_HUNGARIAN")]
2029 OldHungarian,
2030 #[doc(alias = "G_UNICODE_SCRIPT_SIGNWRITING")]
2032 Signwriting,
2033 #[doc(alias = "G_UNICODE_SCRIPT_ADLAM")]
2035 Adlam,
2036 #[doc(alias = "G_UNICODE_SCRIPT_BHAIKSUKI")]
2038 Bhaiksuki,
2039 #[doc(alias = "G_UNICODE_SCRIPT_MARCHEN")]
2041 Marchen,
2042 #[doc(alias = "G_UNICODE_SCRIPT_NEWA")]
2044 Newa,
2045 #[doc(alias = "G_UNICODE_SCRIPT_OSAGE")]
2047 Osage,
2048 #[doc(alias = "G_UNICODE_SCRIPT_TANGUT")]
2050 Tangut,
2051 #[doc(alias = "G_UNICODE_SCRIPT_MASARAM_GONDI")]
2053 MasaramGondi,
2054 #[doc(alias = "G_UNICODE_SCRIPT_NUSHU")]
2056 Nushu,
2057 #[doc(alias = "G_UNICODE_SCRIPT_SOYOMBO")]
2059 Soyombo,
2060 #[doc(alias = "G_UNICODE_SCRIPT_ZANABAZAR_SQUARE")]
2062 ZanabazarSquare,
2063 #[doc(alias = "G_UNICODE_SCRIPT_DOGRA")]
2065 Dogra,
2066 #[doc(alias = "G_UNICODE_SCRIPT_GUNJALA_GONDI")]
2068 GunjalaGondi,
2069 #[doc(alias = "G_UNICODE_SCRIPT_HANIFI_ROHINGYA")]
2071 HanifiRohingya,
2072 #[doc(alias = "G_UNICODE_SCRIPT_MAKASAR")]
2074 Makasar,
2075 #[doc(alias = "G_UNICODE_SCRIPT_MEDEFAIDRIN")]
2077 Medefaidrin,
2078 #[doc(alias = "G_UNICODE_SCRIPT_OLD_SOGDIAN")]
2080 OldSogdian,
2081 #[doc(alias = "G_UNICODE_SCRIPT_SOGDIAN")]
2083 Sogdian,
2084 #[doc(alias = "G_UNICODE_SCRIPT_ELYMAIC")]
2086 Elymaic,
2087 #[doc(alias = "G_UNICODE_SCRIPT_NANDINAGARI")]
2089 Nandinagari,
2090 #[doc(alias = "G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG")]
2092 NyiakengPuachueHmong,
2093 #[doc(alias = "G_UNICODE_SCRIPT_WANCHO")]
2095 Wancho,
2096 #[doc(alias = "G_UNICODE_SCRIPT_CHORASMIAN")]
2098 Chorasmian,
2099 #[doc(alias = "G_UNICODE_SCRIPT_DIVES_AKURU")]
2101 DivesAkuru,
2102 #[doc(alias = "G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT")]
2104 KhitanSmallScript,
2105 #[doc(alias = "G_UNICODE_SCRIPT_YEZIDI")]
2107 Yezidi,
2108 #[cfg(feature = "v2_72")]
2110 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2111 #[doc(alias = "G_UNICODE_SCRIPT_CYPRO_MINOAN")]
2112 CyproMinoan,
2113 #[cfg(feature = "v2_72")]
2115 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2116 #[doc(alias = "G_UNICODE_SCRIPT_OLD_UYGHUR")]
2117 OldUyghur,
2118 #[cfg(feature = "v2_72")]
2120 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2121 #[doc(alias = "G_UNICODE_SCRIPT_TANGSA")]
2122 Tangsa,
2123 #[cfg(feature = "v2_72")]
2125 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2126 #[doc(alias = "G_UNICODE_SCRIPT_TOTO")]
2127 Toto,
2128 #[cfg(feature = "v2_72")]
2130 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2131 #[doc(alias = "G_UNICODE_SCRIPT_VITHKUQI")]
2132 Vithkuqi,
2133 #[cfg(feature = "v2_72")]
2135 #[cfg_attr(docsrs, doc(cfg(feature = "v2_72")))]
2136 #[doc(alias = "G_UNICODE_SCRIPT_MATH")]
2137 Math,
2138 #[cfg(feature = "v2_74")]
2140 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
2141 #[doc(alias = "G_UNICODE_SCRIPT_KAWI")]
2142 Kawi,
2143 #[cfg(feature = "v2_74")]
2145 #[cfg_attr(docsrs, doc(cfg(feature = "v2_74")))]
2146 #[doc(alias = "G_UNICODE_SCRIPT_NAG_MUNDARI")]
2147 NagMundari,
2148 #[cfg(feature = "v2_84")]
2150 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2151 #[doc(alias = "G_UNICODE_SCRIPT_TODHRI")]
2152 Todhri,
2153 #[cfg(feature = "v2_84")]
2155 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2156 #[doc(alias = "G_UNICODE_SCRIPT_GARAY")]
2157 Garay,
2158 #[cfg(feature = "v2_84")]
2160 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2161 #[doc(alias = "G_UNICODE_SCRIPT_TULU_TIGALARI")]
2162 TuluTigalari,
2163 #[cfg(feature = "v2_84")]
2165 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2166 #[doc(alias = "G_UNICODE_SCRIPT_SUNUWAR")]
2167 Sunuwar,
2168 #[cfg(feature = "v2_84")]
2170 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2171 #[doc(alias = "G_UNICODE_SCRIPT_GURUNG_KHEMA")]
2172 GurungKhema,
2173 #[cfg(feature = "v2_84")]
2175 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2176 #[doc(alias = "G_UNICODE_SCRIPT_KIRAT_RAI")]
2177 KiratRai,
2178 #[cfg(feature = "v2_84")]
2180 #[cfg_attr(docsrs, doc(cfg(feature = "v2_84")))]
2181 #[doc(alias = "G_UNICODE_SCRIPT_OL_ONAL")]
2182 OlOnal,
2183 #[doc(hidden)]
2184 __Unknown(i32),
2185}
2186
2187impl UnicodeScript {
2188 #[doc(alias = "g_unicode_script_from_iso15924")]
2189 pub fn from_iso15924(iso15924: u32) -> UnicodeScript {
2190 unsafe { from_glib(ffi::g_unicode_script_from_iso15924(iso15924)) }
2191 }
2192
2193 #[doc(alias = "g_unicode_script_to_iso15924")]
2194 pub fn to_iso15924(self) -> u32 {
2195 unsafe { ffi::g_unicode_script_to_iso15924(self.into_glib()) }
2196 }
2197}
2198
2199#[doc(hidden)]
2200impl IntoGlib for UnicodeScript {
2201 type GlibType = ffi::GUnicodeScript;
2202
2203 fn into_glib(self) -> ffi::GUnicodeScript {
2204 match self {
2205 Self::InvalidCode => ffi::G_UNICODE_SCRIPT_INVALID_CODE,
2206 Self::Common => ffi::G_UNICODE_SCRIPT_COMMON,
2207 Self::Inherited => ffi::G_UNICODE_SCRIPT_INHERITED,
2208 Self::Arabic => ffi::G_UNICODE_SCRIPT_ARABIC,
2209 Self::Armenian => ffi::G_UNICODE_SCRIPT_ARMENIAN,
2210 Self::Bengali => ffi::G_UNICODE_SCRIPT_BENGALI,
2211 Self::Bopomofo => ffi::G_UNICODE_SCRIPT_BOPOMOFO,
2212 Self::Cherokee => ffi::G_UNICODE_SCRIPT_CHEROKEE,
2213 Self::Coptic => ffi::G_UNICODE_SCRIPT_COPTIC,
2214 Self::Cyrillic => ffi::G_UNICODE_SCRIPT_CYRILLIC,
2215 Self::Deseret => ffi::G_UNICODE_SCRIPT_DESERET,
2216 Self::Devanagari => ffi::G_UNICODE_SCRIPT_DEVANAGARI,
2217 Self::Ethiopic => ffi::G_UNICODE_SCRIPT_ETHIOPIC,
2218 Self::Georgian => ffi::G_UNICODE_SCRIPT_GEORGIAN,
2219 Self::Gothic => ffi::G_UNICODE_SCRIPT_GOTHIC,
2220 Self::Greek => ffi::G_UNICODE_SCRIPT_GREEK,
2221 Self::Gujarati => ffi::G_UNICODE_SCRIPT_GUJARATI,
2222 Self::Gurmukhi => ffi::G_UNICODE_SCRIPT_GURMUKHI,
2223 Self::Han => ffi::G_UNICODE_SCRIPT_HAN,
2224 Self::Hangul => ffi::G_UNICODE_SCRIPT_HANGUL,
2225 Self::Hebrew => ffi::G_UNICODE_SCRIPT_HEBREW,
2226 Self::Hiragana => ffi::G_UNICODE_SCRIPT_HIRAGANA,
2227 Self::Kannada => ffi::G_UNICODE_SCRIPT_KANNADA,
2228 Self::Katakana => ffi::G_UNICODE_SCRIPT_KATAKANA,
2229 Self::Khmer => ffi::G_UNICODE_SCRIPT_KHMER,
2230 Self::Lao => ffi::G_UNICODE_SCRIPT_LAO,
2231 Self::Latin => ffi::G_UNICODE_SCRIPT_LATIN,
2232 Self::Malayalam => ffi::G_UNICODE_SCRIPT_MALAYALAM,
2233 Self::Mongolian => ffi::G_UNICODE_SCRIPT_MONGOLIAN,
2234 Self::Myanmar => ffi::G_UNICODE_SCRIPT_MYANMAR,
2235 Self::Ogham => ffi::G_UNICODE_SCRIPT_OGHAM,
2236 Self::OldItalic => ffi::G_UNICODE_SCRIPT_OLD_ITALIC,
2237 Self::Oriya => ffi::G_UNICODE_SCRIPT_ORIYA,
2238 Self::Runic => ffi::G_UNICODE_SCRIPT_RUNIC,
2239 Self::Sinhala => ffi::G_UNICODE_SCRIPT_SINHALA,
2240 Self::Syriac => ffi::G_UNICODE_SCRIPT_SYRIAC,
2241 Self::Tamil => ffi::G_UNICODE_SCRIPT_TAMIL,
2242 Self::Telugu => ffi::G_UNICODE_SCRIPT_TELUGU,
2243 Self::Thaana => ffi::G_UNICODE_SCRIPT_THAANA,
2244 Self::Thai => ffi::G_UNICODE_SCRIPT_THAI,
2245 Self::Tibetan => ffi::G_UNICODE_SCRIPT_TIBETAN,
2246 Self::CanadianAboriginal => ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL,
2247 Self::Yi => ffi::G_UNICODE_SCRIPT_YI,
2248 Self::Tagalog => ffi::G_UNICODE_SCRIPT_TAGALOG,
2249 Self::Hanunoo => ffi::G_UNICODE_SCRIPT_HANUNOO,
2250 Self::Buhid => ffi::G_UNICODE_SCRIPT_BUHID,
2251 Self::Tagbanwa => ffi::G_UNICODE_SCRIPT_TAGBANWA,
2252 Self::Braille => ffi::G_UNICODE_SCRIPT_BRAILLE,
2253 Self::Cypriot => ffi::G_UNICODE_SCRIPT_CYPRIOT,
2254 Self::Limbu => ffi::G_UNICODE_SCRIPT_LIMBU,
2255 Self::Osmanya => ffi::G_UNICODE_SCRIPT_OSMANYA,
2256 Self::Shavian => ffi::G_UNICODE_SCRIPT_SHAVIAN,
2257 Self::LinearB => ffi::G_UNICODE_SCRIPT_LINEAR_B,
2258 Self::TaiLe => ffi::G_UNICODE_SCRIPT_TAI_LE,
2259 Self::Ugaritic => ffi::G_UNICODE_SCRIPT_UGARITIC,
2260 Self::NewTaiLue => ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE,
2261 Self::Buginese => ffi::G_UNICODE_SCRIPT_BUGINESE,
2262 Self::Glagolitic => ffi::G_UNICODE_SCRIPT_GLAGOLITIC,
2263 Self::Tifinagh => ffi::G_UNICODE_SCRIPT_TIFINAGH,
2264 Self::SylotiNagri => ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI,
2265 Self::OldPersian => ffi::G_UNICODE_SCRIPT_OLD_PERSIAN,
2266 Self::Kharoshthi => ffi::G_UNICODE_SCRIPT_KHAROSHTHI,
2267 Self::Unknown => ffi::G_UNICODE_SCRIPT_UNKNOWN,
2268 Self::Balinese => ffi::G_UNICODE_SCRIPT_BALINESE,
2269 Self::Cuneiform => ffi::G_UNICODE_SCRIPT_CUNEIFORM,
2270 Self::Phoenician => ffi::G_UNICODE_SCRIPT_PHOENICIAN,
2271 Self::PhagsPa => ffi::G_UNICODE_SCRIPT_PHAGS_PA,
2272 Self::Nko => ffi::G_UNICODE_SCRIPT_NKO,
2273 Self::KayahLi => ffi::G_UNICODE_SCRIPT_KAYAH_LI,
2274 Self::Lepcha => ffi::G_UNICODE_SCRIPT_LEPCHA,
2275 Self::Rejang => ffi::G_UNICODE_SCRIPT_REJANG,
2276 Self::Sundanese => ffi::G_UNICODE_SCRIPT_SUNDANESE,
2277 Self::Saurashtra => ffi::G_UNICODE_SCRIPT_SAURASHTRA,
2278 Self::Cham => ffi::G_UNICODE_SCRIPT_CHAM,
2279 Self::OlChiki => ffi::G_UNICODE_SCRIPT_OL_CHIKI,
2280 Self::Vai => ffi::G_UNICODE_SCRIPT_VAI,
2281 Self::Carian => ffi::G_UNICODE_SCRIPT_CARIAN,
2282 Self::Lycian => ffi::G_UNICODE_SCRIPT_LYCIAN,
2283 Self::Lydian => ffi::G_UNICODE_SCRIPT_LYDIAN,
2284 Self::Avestan => ffi::G_UNICODE_SCRIPT_AVESTAN,
2285 Self::Bamum => ffi::G_UNICODE_SCRIPT_BAMUM,
2286 Self::EgyptianHieroglyphs => ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS,
2287 Self::ImperialAramaic => ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC,
2288 Self::InscriptionalPahlavi => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI,
2289 Self::InscriptionalParthian => ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN,
2290 Self::Javanese => ffi::G_UNICODE_SCRIPT_JAVANESE,
2291 Self::Kaithi => ffi::G_UNICODE_SCRIPT_KAITHI,
2292 Self::Lisu => ffi::G_UNICODE_SCRIPT_LISU,
2293 Self::MeeteiMayek => ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK,
2294 Self::OldSouthArabian => ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN,
2295 Self::OldTurkic => ffi::G_UNICODE_SCRIPT_OLD_TURKIC,
2296 Self::Samaritan => ffi::G_UNICODE_SCRIPT_SAMARITAN,
2297 Self::TaiTham => ffi::G_UNICODE_SCRIPT_TAI_THAM,
2298 Self::TaiViet => ffi::G_UNICODE_SCRIPT_TAI_VIET,
2299 Self::Batak => ffi::G_UNICODE_SCRIPT_BATAK,
2300 Self::Brahmi => ffi::G_UNICODE_SCRIPT_BRAHMI,
2301 Self::Mandaic => ffi::G_UNICODE_SCRIPT_MANDAIC,
2302 Self::Chakma => ffi::G_UNICODE_SCRIPT_CHAKMA,
2303 Self::MeroiticCursive => ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE,
2304 Self::MeroiticHieroglyphs => ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS,
2305 Self::Miao => ffi::G_UNICODE_SCRIPT_MIAO,
2306 Self::Sharada => ffi::G_UNICODE_SCRIPT_SHARADA,
2307 Self::SoraSompeng => ffi::G_UNICODE_SCRIPT_SORA_SOMPENG,
2308 Self::Takri => ffi::G_UNICODE_SCRIPT_TAKRI,
2309 Self::BassaVah => ffi::G_UNICODE_SCRIPT_BASSA_VAH,
2310 Self::CaucasianAlbanian => ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN,
2311 Self::Duployan => ffi::G_UNICODE_SCRIPT_DUPLOYAN,
2312 Self::Elbasan => ffi::G_UNICODE_SCRIPT_ELBASAN,
2313 Self::Grantha => ffi::G_UNICODE_SCRIPT_GRANTHA,
2314 Self::Khojki => ffi::G_UNICODE_SCRIPT_KHOJKI,
2315 Self::Khudawadi => ffi::G_UNICODE_SCRIPT_KHUDAWADI,
2316 Self::LinearA => ffi::G_UNICODE_SCRIPT_LINEAR_A,
2317 Self::Mahajani => ffi::G_UNICODE_SCRIPT_MAHAJANI,
2318 Self::Manichaean => ffi::G_UNICODE_SCRIPT_MANICHAEAN,
2319 Self::MendeKikakui => ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI,
2320 Self::Modi => ffi::G_UNICODE_SCRIPT_MODI,
2321 Self::Mro => ffi::G_UNICODE_SCRIPT_MRO,
2322 Self::Nabataean => ffi::G_UNICODE_SCRIPT_NABATAEAN,
2323 Self::OldNorthArabian => ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN,
2324 Self::OldPermic => ffi::G_UNICODE_SCRIPT_OLD_PERMIC,
2325 Self::PahawhHmong => ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG,
2326 Self::Palmyrene => ffi::G_UNICODE_SCRIPT_PALMYRENE,
2327 Self::PauCinHau => ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU,
2328 Self::PsalterPahlavi => ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI,
2329 Self::Siddham => ffi::G_UNICODE_SCRIPT_SIDDHAM,
2330 Self::Tirhuta => ffi::G_UNICODE_SCRIPT_TIRHUTA,
2331 Self::WarangCiti => ffi::G_UNICODE_SCRIPT_WARANG_CITI,
2332 Self::Ahom => ffi::G_UNICODE_SCRIPT_AHOM,
2333 Self::AnatolianHieroglyphs => ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS,
2334 Self::Hatran => ffi::G_UNICODE_SCRIPT_HATRAN,
2335 Self::Multani => ffi::G_UNICODE_SCRIPT_MULTANI,
2336 Self::OldHungarian => ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN,
2337 Self::Signwriting => ffi::G_UNICODE_SCRIPT_SIGNWRITING,
2338 Self::Adlam => ffi::G_UNICODE_SCRIPT_ADLAM,
2339 Self::Bhaiksuki => ffi::G_UNICODE_SCRIPT_BHAIKSUKI,
2340 Self::Marchen => ffi::G_UNICODE_SCRIPT_MARCHEN,
2341 Self::Newa => ffi::G_UNICODE_SCRIPT_NEWA,
2342 Self::Osage => ffi::G_UNICODE_SCRIPT_OSAGE,
2343 Self::Tangut => ffi::G_UNICODE_SCRIPT_TANGUT,
2344 Self::MasaramGondi => ffi::G_UNICODE_SCRIPT_MASARAM_GONDI,
2345 Self::Nushu => ffi::G_UNICODE_SCRIPT_NUSHU,
2346 Self::Soyombo => ffi::G_UNICODE_SCRIPT_SOYOMBO,
2347 Self::ZanabazarSquare => ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE,
2348 Self::Dogra => ffi::G_UNICODE_SCRIPT_DOGRA,
2349 Self::GunjalaGondi => ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI,
2350 Self::HanifiRohingya => ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA,
2351 Self::Makasar => ffi::G_UNICODE_SCRIPT_MAKASAR,
2352 Self::Medefaidrin => ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN,
2353 Self::OldSogdian => ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN,
2354 Self::Sogdian => ffi::G_UNICODE_SCRIPT_SOGDIAN,
2355 Self::Elymaic => ffi::G_UNICODE_SCRIPT_ELYMAIC,
2356 Self::Nandinagari => ffi::G_UNICODE_SCRIPT_NANDINAGARI,
2357 Self::NyiakengPuachueHmong => ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG,
2358 Self::Wancho => ffi::G_UNICODE_SCRIPT_WANCHO,
2359 Self::Chorasmian => ffi::G_UNICODE_SCRIPT_CHORASMIAN,
2360 Self::DivesAkuru => ffi::G_UNICODE_SCRIPT_DIVES_AKURU,
2361 Self::KhitanSmallScript => ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT,
2362 Self::Yezidi => ffi::G_UNICODE_SCRIPT_YEZIDI,
2363 #[cfg(feature = "v2_72")]
2364 Self::CyproMinoan => ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN,
2365 #[cfg(feature = "v2_72")]
2366 Self::OldUyghur => ffi::G_UNICODE_SCRIPT_OLD_UYGHUR,
2367 #[cfg(feature = "v2_72")]
2368 Self::Tangsa => ffi::G_UNICODE_SCRIPT_TANGSA,
2369 #[cfg(feature = "v2_72")]
2370 Self::Toto => ffi::G_UNICODE_SCRIPT_TOTO,
2371 #[cfg(feature = "v2_72")]
2372 Self::Vithkuqi => ffi::G_UNICODE_SCRIPT_VITHKUQI,
2373 #[cfg(feature = "v2_72")]
2374 Self::Math => ffi::G_UNICODE_SCRIPT_MATH,
2375 #[cfg(feature = "v2_74")]
2376 Self::Kawi => ffi::G_UNICODE_SCRIPT_KAWI,
2377 #[cfg(feature = "v2_74")]
2378 Self::NagMundari => ffi::G_UNICODE_SCRIPT_NAG_MUNDARI,
2379 #[cfg(feature = "v2_84")]
2380 Self::Todhri => ffi::G_UNICODE_SCRIPT_TODHRI,
2381 #[cfg(feature = "v2_84")]
2382 Self::Garay => ffi::G_UNICODE_SCRIPT_GARAY,
2383 #[cfg(feature = "v2_84")]
2384 Self::TuluTigalari => ffi::G_UNICODE_SCRIPT_TULU_TIGALARI,
2385 #[cfg(feature = "v2_84")]
2386 Self::Sunuwar => ffi::G_UNICODE_SCRIPT_SUNUWAR,
2387 #[cfg(feature = "v2_84")]
2388 Self::GurungKhema => ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA,
2389 #[cfg(feature = "v2_84")]
2390 Self::KiratRai => ffi::G_UNICODE_SCRIPT_KIRAT_RAI,
2391 #[cfg(feature = "v2_84")]
2392 Self::OlOnal => ffi::G_UNICODE_SCRIPT_OL_ONAL,
2393 Self::__Unknown(value) => value,
2394 }
2395 }
2396}
2397
2398#[doc(hidden)]
2399impl FromGlib<ffi::GUnicodeScript> for UnicodeScript {
2400 unsafe fn from_glib(value: ffi::GUnicodeScript) -> Self {
2401 match value {
2402 ffi::G_UNICODE_SCRIPT_INVALID_CODE => Self::InvalidCode,
2403 ffi::G_UNICODE_SCRIPT_COMMON => Self::Common,
2404 ffi::G_UNICODE_SCRIPT_INHERITED => Self::Inherited,
2405 ffi::G_UNICODE_SCRIPT_ARABIC => Self::Arabic,
2406 ffi::G_UNICODE_SCRIPT_ARMENIAN => Self::Armenian,
2407 ffi::G_UNICODE_SCRIPT_BENGALI => Self::Bengali,
2408 ffi::G_UNICODE_SCRIPT_BOPOMOFO => Self::Bopomofo,
2409 ffi::G_UNICODE_SCRIPT_CHEROKEE => Self::Cherokee,
2410 ffi::G_UNICODE_SCRIPT_COPTIC => Self::Coptic,
2411 ffi::G_UNICODE_SCRIPT_CYRILLIC => Self::Cyrillic,
2412 ffi::G_UNICODE_SCRIPT_DESERET => Self::Deseret,
2413 ffi::G_UNICODE_SCRIPT_DEVANAGARI => Self::Devanagari,
2414 ffi::G_UNICODE_SCRIPT_ETHIOPIC => Self::Ethiopic,
2415 ffi::G_UNICODE_SCRIPT_GEORGIAN => Self::Georgian,
2416 ffi::G_UNICODE_SCRIPT_GOTHIC => Self::Gothic,
2417 ffi::G_UNICODE_SCRIPT_GREEK => Self::Greek,
2418 ffi::G_UNICODE_SCRIPT_GUJARATI => Self::Gujarati,
2419 ffi::G_UNICODE_SCRIPT_GURMUKHI => Self::Gurmukhi,
2420 ffi::G_UNICODE_SCRIPT_HAN => Self::Han,
2421 ffi::G_UNICODE_SCRIPT_HANGUL => Self::Hangul,
2422 ffi::G_UNICODE_SCRIPT_HEBREW => Self::Hebrew,
2423 ffi::G_UNICODE_SCRIPT_HIRAGANA => Self::Hiragana,
2424 ffi::G_UNICODE_SCRIPT_KANNADA => Self::Kannada,
2425 ffi::G_UNICODE_SCRIPT_KATAKANA => Self::Katakana,
2426 ffi::G_UNICODE_SCRIPT_KHMER => Self::Khmer,
2427 ffi::G_UNICODE_SCRIPT_LAO => Self::Lao,
2428 ffi::G_UNICODE_SCRIPT_LATIN => Self::Latin,
2429 ffi::G_UNICODE_SCRIPT_MALAYALAM => Self::Malayalam,
2430 ffi::G_UNICODE_SCRIPT_MONGOLIAN => Self::Mongolian,
2431 ffi::G_UNICODE_SCRIPT_MYANMAR => Self::Myanmar,
2432 ffi::G_UNICODE_SCRIPT_OGHAM => Self::Ogham,
2433 ffi::G_UNICODE_SCRIPT_OLD_ITALIC => Self::OldItalic,
2434 ffi::G_UNICODE_SCRIPT_ORIYA => Self::Oriya,
2435 ffi::G_UNICODE_SCRIPT_RUNIC => Self::Runic,
2436 ffi::G_UNICODE_SCRIPT_SINHALA => Self::Sinhala,
2437 ffi::G_UNICODE_SCRIPT_SYRIAC => Self::Syriac,
2438 ffi::G_UNICODE_SCRIPT_TAMIL => Self::Tamil,
2439 ffi::G_UNICODE_SCRIPT_TELUGU => Self::Telugu,
2440 ffi::G_UNICODE_SCRIPT_THAANA => Self::Thaana,
2441 ffi::G_UNICODE_SCRIPT_THAI => Self::Thai,
2442 ffi::G_UNICODE_SCRIPT_TIBETAN => Self::Tibetan,
2443 ffi::G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL => Self::CanadianAboriginal,
2444 ffi::G_UNICODE_SCRIPT_YI => Self::Yi,
2445 ffi::G_UNICODE_SCRIPT_TAGALOG => Self::Tagalog,
2446 ffi::G_UNICODE_SCRIPT_HANUNOO => Self::Hanunoo,
2447 ffi::G_UNICODE_SCRIPT_BUHID => Self::Buhid,
2448 ffi::G_UNICODE_SCRIPT_TAGBANWA => Self::Tagbanwa,
2449 ffi::G_UNICODE_SCRIPT_BRAILLE => Self::Braille,
2450 ffi::G_UNICODE_SCRIPT_CYPRIOT => Self::Cypriot,
2451 ffi::G_UNICODE_SCRIPT_LIMBU => Self::Limbu,
2452 ffi::G_UNICODE_SCRIPT_OSMANYA => Self::Osmanya,
2453 ffi::G_UNICODE_SCRIPT_SHAVIAN => Self::Shavian,
2454 ffi::G_UNICODE_SCRIPT_LINEAR_B => Self::LinearB,
2455 ffi::G_UNICODE_SCRIPT_TAI_LE => Self::TaiLe,
2456 ffi::G_UNICODE_SCRIPT_UGARITIC => Self::Ugaritic,
2457 ffi::G_UNICODE_SCRIPT_NEW_TAI_LUE => Self::NewTaiLue,
2458 ffi::G_UNICODE_SCRIPT_BUGINESE => Self::Buginese,
2459 ffi::G_UNICODE_SCRIPT_GLAGOLITIC => Self::Glagolitic,
2460 ffi::G_UNICODE_SCRIPT_TIFINAGH => Self::Tifinagh,
2461 ffi::G_UNICODE_SCRIPT_SYLOTI_NAGRI => Self::SylotiNagri,
2462 ffi::G_UNICODE_SCRIPT_OLD_PERSIAN => Self::OldPersian,
2463 ffi::G_UNICODE_SCRIPT_KHAROSHTHI => Self::Kharoshthi,
2464 ffi::G_UNICODE_SCRIPT_UNKNOWN => Self::Unknown,
2465 ffi::G_UNICODE_SCRIPT_BALINESE => Self::Balinese,
2466 ffi::G_UNICODE_SCRIPT_CUNEIFORM => Self::Cuneiform,
2467 ffi::G_UNICODE_SCRIPT_PHOENICIAN => Self::Phoenician,
2468 ffi::G_UNICODE_SCRIPT_PHAGS_PA => Self::PhagsPa,
2469 ffi::G_UNICODE_SCRIPT_NKO => Self::Nko,
2470 ffi::G_UNICODE_SCRIPT_KAYAH_LI => Self::KayahLi,
2471 ffi::G_UNICODE_SCRIPT_LEPCHA => Self::Lepcha,
2472 ffi::G_UNICODE_SCRIPT_REJANG => Self::Rejang,
2473 ffi::G_UNICODE_SCRIPT_SUNDANESE => Self::Sundanese,
2474 ffi::G_UNICODE_SCRIPT_SAURASHTRA => Self::Saurashtra,
2475 ffi::G_UNICODE_SCRIPT_CHAM => Self::Cham,
2476 ffi::G_UNICODE_SCRIPT_OL_CHIKI => Self::OlChiki,
2477 ffi::G_UNICODE_SCRIPT_VAI => Self::Vai,
2478 ffi::G_UNICODE_SCRIPT_CARIAN => Self::Carian,
2479 ffi::G_UNICODE_SCRIPT_LYCIAN => Self::Lycian,
2480 ffi::G_UNICODE_SCRIPT_LYDIAN => Self::Lydian,
2481 ffi::G_UNICODE_SCRIPT_AVESTAN => Self::Avestan,
2482 ffi::G_UNICODE_SCRIPT_BAMUM => Self::Bamum,
2483 ffi::G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS => Self::EgyptianHieroglyphs,
2484 ffi::G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC => Self::ImperialAramaic,
2485 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI => Self::InscriptionalPahlavi,
2486 ffi::G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN => Self::InscriptionalParthian,
2487 ffi::G_UNICODE_SCRIPT_JAVANESE => Self::Javanese,
2488 ffi::G_UNICODE_SCRIPT_KAITHI => Self::Kaithi,
2489 ffi::G_UNICODE_SCRIPT_LISU => Self::Lisu,
2490 ffi::G_UNICODE_SCRIPT_MEETEI_MAYEK => Self::MeeteiMayek,
2491 ffi::G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN => Self::OldSouthArabian,
2492 ffi::G_UNICODE_SCRIPT_OLD_TURKIC => Self::OldTurkic,
2493 ffi::G_UNICODE_SCRIPT_SAMARITAN => Self::Samaritan,
2494 ffi::G_UNICODE_SCRIPT_TAI_THAM => Self::TaiTham,
2495 ffi::G_UNICODE_SCRIPT_TAI_VIET => Self::TaiViet,
2496 ffi::G_UNICODE_SCRIPT_BATAK => Self::Batak,
2497 ffi::G_UNICODE_SCRIPT_BRAHMI => Self::Brahmi,
2498 ffi::G_UNICODE_SCRIPT_MANDAIC => Self::Mandaic,
2499 ffi::G_UNICODE_SCRIPT_CHAKMA => Self::Chakma,
2500 ffi::G_UNICODE_SCRIPT_MEROITIC_CURSIVE => Self::MeroiticCursive,
2501 ffi::G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS => Self::MeroiticHieroglyphs,
2502 ffi::G_UNICODE_SCRIPT_MIAO => Self::Miao,
2503 ffi::G_UNICODE_SCRIPT_SHARADA => Self::Sharada,
2504 ffi::G_UNICODE_SCRIPT_SORA_SOMPENG => Self::SoraSompeng,
2505 ffi::G_UNICODE_SCRIPT_TAKRI => Self::Takri,
2506 ffi::G_UNICODE_SCRIPT_BASSA_VAH => Self::BassaVah,
2507 ffi::G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN => Self::CaucasianAlbanian,
2508 ffi::G_UNICODE_SCRIPT_DUPLOYAN => Self::Duployan,
2509 ffi::G_UNICODE_SCRIPT_ELBASAN => Self::Elbasan,
2510 ffi::G_UNICODE_SCRIPT_GRANTHA => Self::Grantha,
2511 ffi::G_UNICODE_SCRIPT_KHOJKI => Self::Khojki,
2512 ffi::G_UNICODE_SCRIPT_KHUDAWADI => Self::Khudawadi,
2513 ffi::G_UNICODE_SCRIPT_LINEAR_A => Self::LinearA,
2514 ffi::G_UNICODE_SCRIPT_MAHAJANI => Self::Mahajani,
2515 ffi::G_UNICODE_SCRIPT_MANICHAEAN => Self::Manichaean,
2516 ffi::G_UNICODE_SCRIPT_MENDE_KIKAKUI => Self::MendeKikakui,
2517 ffi::G_UNICODE_SCRIPT_MODI => Self::Modi,
2518 ffi::G_UNICODE_SCRIPT_MRO => Self::Mro,
2519 ffi::G_UNICODE_SCRIPT_NABATAEAN => Self::Nabataean,
2520 ffi::G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN => Self::OldNorthArabian,
2521 ffi::G_UNICODE_SCRIPT_OLD_PERMIC => Self::OldPermic,
2522 ffi::G_UNICODE_SCRIPT_PAHAWH_HMONG => Self::PahawhHmong,
2523 ffi::G_UNICODE_SCRIPT_PALMYRENE => Self::Palmyrene,
2524 ffi::G_UNICODE_SCRIPT_PAU_CIN_HAU => Self::PauCinHau,
2525 ffi::G_UNICODE_SCRIPT_PSALTER_PAHLAVI => Self::PsalterPahlavi,
2526 ffi::G_UNICODE_SCRIPT_SIDDHAM => Self::Siddham,
2527 ffi::G_UNICODE_SCRIPT_TIRHUTA => Self::Tirhuta,
2528 ffi::G_UNICODE_SCRIPT_WARANG_CITI => Self::WarangCiti,
2529 ffi::G_UNICODE_SCRIPT_AHOM => Self::Ahom,
2530 ffi::G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS => Self::AnatolianHieroglyphs,
2531 ffi::G_UNICODE_SCRIPT_HATRAN => Self::Hatran,
2532 ffi::G_UNICODE_SCRIPT_MULTANI => Self::Multani,
2533 ffi::G_UNICODE_SCRIPT_OLD_HUNGARIAN => Self::OldHungarian,
2534 ffi::G_UNICODE_SCRIPT_SIGNWRITING => Self::Signwriting,
2535 ffi::G_UNICODE_SCRIPT_ADLAM => Self::Adlam,
2536 ffi::G_UNICODE_SCRIPT_BHAIKSUKI => Self::Bhaiksuki,
2537 ffi::G_UNICODE_SCRIPT_MARCHEN => Self::Marchen,
2538 ffi::G_UNICODE_SCRIPT_NEWA => Self::Newa,
2539 ffi::G_UNICODE_SCRIPT_OSAGE => Self::Osage,
2540 ffi::G_UNICODE_SCRIPT_TANGUT => Self::Tangut,
2541 ffi::G_UNICODE_SCRIPT_MASARAM_GONDI => Self::MasaramGondi,
2542 ffi::G_UNICODE_SCRIPT_NUSHU => Self::Nushu,
2543 ffi::G_UNICODE_SCRIPT_SOYOMBO => Self::Soyombo,
2544 ffi::G_UNICODE_SCRIPT_ZANABAZAR_SQUARE => Self::ZanabazarSquare,
2545 ffi::G_UNICODE_SCRIPT_DOGRA => Self::Dogra,
2546 ffi::G_UNICODE_SCRIPT_GUNJALA_GONDI => Self::GunjalaGondi,
2547 ffi::G_UNICODE_SCRIPT_HANIFI_ROHINGYA => Self::HanifiRohingya,
2548 ffi::G_UNICODE_SCRIPT_MAKASAR => Self::Makasar,
2549 ffi::G_UNICODE_SCRIPT_MEDEFAIDRIN => Self::Medefaidrin,
2550 ffi::G_UNICODE_SCRIPT_OLD_SOGDIAN => Self::OldSogdian,
2551 ffi::G_UNICODE_SCRIPT_SOGDIAN => Self::Sogdian,
2552 ffi::G_UNICODE_SCRIPT_ELYMAIC => Self::Elymaic,
2553 ffi::G_UNICODE_SCRIPT_NANDINAGARI => Self::Nandinagari,
2554 ffi::G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG => Self::NyiakengPuachueHmong,
2555 ffi::G_UNICODE_SCRIPT_WANCHO => Self::Wancho,
2556 ffi::G_UNICODE_SCRIPT_CHORASMIAN => Self::Chorasmian,
2557 ffi::G_UNICODE_SCRIPT_DIVES_AKURU => Self::DivesAkuru,
2558 ffi::G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT => Self::KhitanSmallScript,
2559 ffi::G_UNICODE_SCRIPT_YEZIDI => Self::Yezidi,
2560 #[cfg(feature = "v2_72")]
2561 ffi::G_UNICODE_SCRIPT_CYPRO_MINOAN => Self::CyproMinoan,
2562 #[cfg(feature = "v2_72")]
2563 ffi::G_UNICODE_SCRIPT_OLD_UYGHUR => Self::OldUyghur,
2564 #[cfg(feature = "v2_72")]
2565 ffi::G_UNICODE_SCRIPT_TANGSA => Self::Tangsa,
2566 #[cfg(feature = "v2_72")]
2567 ffi::G_UNICODE_SCRIPT_TOTO => Self::Toto,
2568 #[cfg(feature = "v2_72")]
2569 ffi::G_UNICODE_SCRIPT_VITHKUQI => Self::Vithkuqi,
2570 #[cfg(feature = "v2_72")]
2571 ffi::G_UNICODE_SCRIPT_MATH => Self::Math,
2572 #[cfg(feature = "v2_74")]
2573 ffi::G_UNICODE_SCRIPT_KAWI => Self::Kawi,
2574 #[cfg(feature = "v2_74")]
2575 ffi::G_UNICODE_SCRIPT_NAG_MUNDARI => Self::NagMundari,
2576 #[cfg(feature = "v2_84")]
2577 ffi::G_UNICODE_SCRIPT_TODHRI => Self::Todhri,
2578 #[cfg(feature = "v2_84")]
2579 ffi::G_UNICODE_SCRIPT_GARAY => Self::Garay,
2580 #[cfg(feature = "v2_84")]
2581 ffi::G_UNICODE_SCRIPT_TULU_TIGALARI => Self::TuluTigalari,
2582 #[cfg(feature = "v2_84")]
2583 ffi::G_UNICODE_SCRIPT_SUNUWAR => Self::Sunuwar,
2584 #[cfg(feature = "v2_84")]
2585 ffi::G_UNICODE_SCRIPT_GURUNG_KHEMA => Self::GurungKhema,
2586 #[cfg(feature = "v2_84")]
2587 ffi::G_UNICODE_SCRIPT_KIRAT_RAI => Self::KiratRai,
2588 #[cfg(feature = "v2_84")]
2589 ffi::G_UNICODE_SCRIPT_OL_ONAL => Self::OlOnal,
2590 value => Self::__Unknown(value),
2591 }
2592 }
2593}
2594
2595impl StaticType for UnicodeScript {
2596 #[inline]
2597 #[doc(alias = "g_unicode_script_get_type")]
2598 fn static_type() -> crate::Type {
2599 unsafe { from_glib(ffi::g_unicode_script_get_type()) }
2600 }
2601}
2602
2603impl crate::HasParamSpec for UnicodeScript {
2604 type ParamSpec = crate::ParamSpecEnum;
2605 type SetValue = Self;
2606 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2607
2608 fn param_spec_builder() -> Self::BuilderFn {
2609 Self::ParamSpec::builder_with_default
2610 }
2611}
2612
2613impl crate::value::ValueType for UnicodeScript {
2614 type Type = Self;
2615}
2616
2617unsafe impl<'a> crate::value::FromValue<'a> for UnicodeScript {
2618 type Checker = crate::value::GenericValueTypeChecker<Self>;
2619
2620 #[inline]
2621 unsafe fn from_value(value: &'a crate::Value) -> Self {
2622 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2623 }
2624}
2625
2626impl ToValue for UnicodeScript {
2627 #[inline]
2628 fn to_value(&self) -> crate::Value {
2629 let mut value = crate::Value::for_value_type::<Self>();
2630 unsafe {
2631 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2632 }
2633 value
2634 }
2635
2636 #[inline]
2637 fn value_type(&self) -> crate::Type {
2638 Self::static_type()
2639 }
2640}
2641
2642impl From<UnicodeScript> for crate::Value {
2643 #[inline]
2644 fn from(v: UnicodeScript) -> Self {
2645 ToValue::to_value(&v)
2646 }
2647}
2648
2649#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2653#[non_exhaustive]
2654#[doc(alias = "GUnicodeType")]
2655pub enum UnicodeType {
2656 #[doc(alias = "G_UNICODE_CONTROL")]
2658 Control,
2659 #[doc(alias = "G_UNICODE_FORMAT")]
2661 Format,
2662 #[doc(alias = "G_UNICODE_UNASSIGNED")]
2664 Unassigned,
2665 #[doc(alias = "G_UNICODE_PRIVATE_USE")]
2667 PrivateUse,
2668 #[doc(alias = "G_UNICODE_SURROGATE")]
2670 Surrogate,
2671 #[doc(alias = "G_UNICODE_LOWERCASE_LETTER")]
2673 LowercaseLetter,
2674 #[doc(alias = "G_UNICODE_MODIFIER_LETTER")]
2676 ModifierLetter,
2677 #[doc(alias = "G_UNICODE_OTHER_LETTER")]
2679 OtherLetter,
2680 #[doc(alias = "G_UNICODE_TITLECASE_LETTER")]
2682 TitlecaseLetter,
2683 #[doc(alias = "G_UNICODE_UPPERCASE_LETTER")]
2685 UppercaseLetter,
2686 #[doc(alias = "G_UNICODE_SPACING_MARK")]
2688 SpacingMark,
2689 #[doc(alias = "G_UNICODE_ENCLOSING_MARK")]
2691 EnclosingMark,
2692 #[doc(alias = "G_UNICODE_NON_SPACING_MARK")]
2694 NonSpacingMark,
2695 #[doc(alias = "G_UNICODE_DECIMAL_NUMBER")]
2697 DecimalNumber,
2698 #[doc(alias = "G_UNICODE_LETTER_NUMBER")]
2700 LetterNumber,
2701 #[doc(alias = "G_UNICODE_OTHER_NUMBER")]
2703 OtherNumber,
2704 #[doc(alias = "G_UNICODE_CONNECT_PUNCTUATION")]
2706 ConnectPunctuation,
2707 #[doc(alias = "G_UNICODE_DASH_PUNCTUATION")]
2709 DashPunctuation,
2710 #[doc(alias = "G_UNICODE_CLOSE_PUNCTUATION")]
2712 ClosePunctuation,
2713 #[doc(alias = "G_UNICODE_FINAL_PUNCTUATION")]
2715 FinalPunctuation,
2716 #[doc(alias = "G_UNICODE_INITIAL_PUNCTUATION")]
2718 InitialPunctuation,
2719 #[doc(alias = "G_UNICODE_OTHER_PUNCTUATION")]
2721 OtherPunctuation,
2722 #[doc(alias = "G_UNICODE_OPEN_PUNCTUATION")]
2724 OpenPunctuation,
2725 #[doc(alias = "G_UNICODE_CURRENCY_SYMBOL")]
2727 CurrencySymbol,
2728 #[doc(alias = "G_UNICODE_MODIFIER_SYMBOL")]
2730 ModifierSymbol,
2731 #[doc(alias = "G_UNICODE_MATH_SYMBOL")]
2733 MathSymbol,
2734 #[doc(alias = "G_UNICODE_OTHER_SYMBOL")]
2736 OtherSymbol,
2737 #[doc(alias = "G_UNICODE_LINE_SEPARATOR")]
2739 LineSeparator,
2740 #[doc(alias = "G_UNICODE_PARAGRAPH_SEPARATOR")]
2742 ParagraphSeparator,
2743 #[doc(alias = "G_UNICODE_SPACE_SEPARATOR")]
2745 SpaceSeparator,
2746 #[doc(hidden)]
2747 __Unknown(i32),
2748}
2749
2750#[doc(hidden)]
2751impl IntoGlib for UnicodeType {
2752 type GlibType = ffi::GUnicodeType;
2753
2754 fn into_glib(self) -> ffi::GUnicodeType {
2755 match self {
2756 Self::Control => ffi::G_UNICODE_CONTROL,
2757 Self::Format => ffi::G_UNICODE_FORMAT,
2758 Self::Unassigned => ffi::G_UNICODE_UNASSIGNED,
2759 Self::PrivateUse => ffi::G_UNICODE_PRIVATE_USE,
2760 Self::Surrogate => ffi::G_UNICODE_SURROGATE,
2761 Self::LowercaseLetter => ffi::G_UNICODE_LOWERCASE_LETTER,
2762 Self::ModifierLetter => ffi::G_UNICODE_MODIFIER_LETTER,
2763 Self::OtherLetter => ffi::G_UNICODE_OTHER_LETTER,
2764 Self::TitlecaseLetter => ffi::G_UNICODE_TITLECASE_LETTER,
2765 Self::UppercaseLetter => ffi::G_UNICODE_UPPERCASE_LETTER,
2766 Self::SpacingMark => ffi::G_UNICODE_SPACING_MARK,
2767 Self::EnclosingMark => ffi::G_UNICODE_ENCLOSING_MARK,
2768 Self::NonSpacingMark => ffi::G_UNICODE_NON_SPACING_MARK,
2769 Self::DecimalNumber => ffi::G_UNICODE_DECIMAL_NUMBER,
2770 Self::LetterNumber => ffi::G_UNICODE_LETTER_NUMBER,
2771 Self::OtherNumber => ffi::G_UNICODE_OTHER_NUMBER,
2772 Self::ConnectPunctuation => ffi::G_UNICODE_CONNECT_PUNCTUATION,
2773 Self::DashPunctuation => ffi::G_UNICODE_DASH_PUNCTUATION,
2774 Self::ClosePunctuation => ffi::G_UNICODE_CLOSE_PUNCTUATION,
2775 Self::FinalPunctuation => ffi::G_UNICODE_FINAL_PUNCTUATION,
2776 Self::InitialPunctuation => ffi::G_UNICODE_INITIAL_PUNCTUATION,
2777 Self::OtherPunctuation => ffi::G_UNICODE_OTHER_PUNCTUATION,
2778 Self::OpenPunctuation => ffi::G_UNICODE_OPEN_PUNCTUATION,
2779 Self::CurrencySymbol => ffi::G_UNICODE_CURRENCY_SYMBOL,
2780 Self::ModifierSymbol => ffi::G_UNICODE_MODIFIER_SYMBOL,
2781 Self::MathSymbol => ffi::G_UNICODE_MATH_SYMBOL,
2782 Self::OtherSymbol => ffi::G_UNICODE_OTHER_SYMBOL,
2783 Self::LineSeparator => ffi::G_UNICODE_LINE_SEPARATOR,
2784 Self::ParagraphSeparator => ffi::G_UNICODE_PARAGRAPH_SEPARATOR,
2785 Self::SpaceSeparator => ffi::G_UNICODE_SPACE_SEPARATOR,
2786 Self::__Unknown(value) => value,
2787 }
2788 }
2789}
2790
2791#[doc(hidden)]
2792impl FromGlib<ffi::GUnicodeType> for UnicodeType {
2793 unsafe fn from_glib(value: ffi::GUnicodeType) -> Self {
2794 match value {
2795 ffi::G_UNICODE_CONTROL => Self::Control,
2796 ffi::G_UNICODE_FORMAT => Self::Format,
2797 ffi::G_UNICODE_UNASSIGNED => Self::Unassigned,
2798 ffi::G_UNICODE_PRIVATE_USE => Self::PrivateUse,
2799 ffi::G_UNICODE_SURROGATE => Self::Surrogate,
2800 ffi::G_UNICODE_LOWERCASE_LETTER => Self::LowercaseLetter,
2801 ffi::G_UNICODE_MODIFIER_LETTER => Self::ModifierLetter,
2802 ffi::G_UNICODE_OTHER_LETTER => Self::OtherLetter,
2803 ffi::G_UNICODE_TITLECASE_LETTER => Self::TitlecaseLetter,
2804 ffi::G_UNICODE_UPPERCASE_LETTER => Self::UppercaseLetter,
2805 ffi::G_UNICODE_SPACING_MARK => Self::SpacingMark,
2806 ffi::G_UNICODE_ENCLOSING_MARK => Self::EnclosingMark,
2807 ffi::G_UNICODE_NON_SPACING_MARK => Self::NonSpacingMark,
2808 ffi::G_UNICODE_DECIMAL_NUMBER => Self::DecimalNumber,
2809 ffi::G_UNICODE_LETTER_NUMBER => Self::LetterNumber,
2810 ffi::G_UNICODE_OTHER_NUMBER => Self::OtherNumber,
2811 ffi::G_UNICODE_CONNECT_PUNCTUATION => Self::ConnectPunctuation,
2812 ffi::G_UNICODE_DASH_PUNCTUATION => Self::DashPunctuation,
2813 ffi::G_UNICODE_CLOSE_PUNCTUATION => Self::ClosePunctuation,
2814 ffi::G_UNICODE_FINAL_PUNCTUATION => Self::FinalPunctuation,
2815 ffi::G_UNICODE_INITIAL_PUNCTUATION => Self::InitialPunctuation,
2816 ffi::G_UNICODE_OTHER_PUNCTUATION => Self::OtherPunctuation,
2817 ffi::G_UNICODE_OPEN_PUNCTUATION => Self::OpenPunctuation,
2818 ffi::G_UNICODE_CURRENCY_SYMBOL => Self::CurrencySymbol,
2819 ffi::G_UNICODE_MODIFIER_SYMBOL => Self::ModifierSymbol,
2820 ffi::G_UNICODE_MATH_SYMBOL => Self::MathSymbol,
2821 ffi::G_UNICODE_OTHER_SYMBOL => Self::OtherSymbol,
2822 ffi::G_UNICODE_LINE_SEPARATOR => Self::LineSeparator,
2823 ffi::G_UNICODE_PARAGRAPH_SEPARATOR => Self::ParagraphSeparator,
2824 ffi::G_UNICODE_SPACE_SEPARATOR => Self::SpaceSeparator,
2825 value => Self::__Unknown(value),
2826 }
2827 }
2828}
2829
2830impl StaticType for UnicodeType {
2831 #[inline]
2832 #[doc(alias = "g_unicode_type_get_type")]
2833 fn static_type() -> crate::Type {
2834 unsafe { from_glib(ffi::g_unicode_type_get_type()) }
2835 }
2836}
2837
2838impl crate::HasParamSpec for UnicodeType {
2839 type ParamSpec = crate::ParamSpecEnum;
2840 type SetValue = Self;
2841 type BuilderFn = fn(&str, Self) -> crate::ParamSpecEnumBuilder<Self>;
2842
2843 fn param_spec_builder() -> Self::BuilderFn {
2844 Self::ParamSpec::builder_with_default
2845 }
2846}
2847
2848impl crate::value::ValueType for UnicodeType {
2849 type Type = Self;
2850}
2851
2852unsafe impl<'a> crate::value::FromValue<'a> for UnicodeType {
2853 type Checker = crate::value::GenericValueTypeChecker<Self>;
2854
2855 #[inline]
2856 unsafe fn from_value(value: &'a crate::Value) -> Self {
2857 from_glib(crate::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2858 }
2859}
2860
2861impl ToValue for UnicodeType {
2862 #[inline]
2863 fn to_value(&self) -> crate::Value {
2864 let mut value = crate::Value::for_value_type::<Self>();
2865 unsafe {
2866 crate::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2867 }
2868 value
2869 }
2870
2871 #[inline]
2872 fn value_type(&self) -> crate::Type {
2873 Self::static_type()
2874 }
2875}
2876
2877impl From<UnicodeType> for crate::Value {
2878 #[inline]
2879 fn from(v: UnicodeType) -> Self {
2880 ToValue::to_value(&v)
2881 }
2882}
2883
2884#[cfg(feature = "v2_66")]
2886#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2887#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2888#[non_exhaustive]
2889#[doc(alias = "GUriError")]
2890pub enum UriError {
2891 #[doc(alias = "G_URI_ERROR_FAILED")]
2894 Failed,
2895 #[doc(alias = "G_URI_ERROR_BAD_SCHEME")]
2897 BadScheme,
2898 #[doc(alias = "G_URI_ERROR_BAD_USER")]
2900 BadUser,
2901 #[doc(alias = "G_URI_ERROR_BAD_PASSWORD")]
2903 BadPassword,
2904 #[doc(alias = "G_URI_ERROR_BAD_AUTH_PARAMS")]
2906 BadAuthParams,
2907 #[doc(alias = "G_URI_ERROR_BAD_HOST")]
2909 BadHost,
2910 #[doc(alias = "G_URI_ERROR_BAD_PORT")]
2912 BadPort,
2913 #[doc(alias = "G_URI_ERROR_BAD_PATH")]
2915 BadPath,
2916 #[doc(alias = "G_URI_ERROR_BAD_QUERY")]
2918 BadQuery,
2919 #[doc(alias = "G_URI_ERROR_BAD_FRAGMENT")]
2921 BadFragment,
2922 #[doc(hidden)]
2923 __Unknown(i32),
2924}
2925
2926#[cfg(feature = "v2_66")]
2927#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2928#[doc(hidden)]
2929impl IntoGlib for UriError {
2930 type GlibType = ffi::GUriError;
2931
2932 #[inline]
2933 fn into_glib(self) -> ffi::GUriError {
2934 match self {
2935 Self::Failed => ffi::G_URI_ERROR_FAILED,
2936 Self::BadScheme => ffi::G_URI_ERROR_BAD_SCHEME,
2937 Self::BadUser => ffi::G_URI_ERROR_BAD_USER,
2938 Self::BadPassword => ffi::G_URI_ERROR_BAD_PASSWORD,
2939 Self::BadAuthParams => ffi::G_URI_ERROR_BAD_AUTH_PARAMS,
2940 Self::BadHost => ffi::G_URI_ERROR_BAD_HOST,
2941 Self::BadPort => ffi::G_URI_ERROR_BAD_PORT,
2942 Self::BadPath => ffi::G_URI_ERROR_BAD_PATH,
2943 Self::BadQuery => ffi::G_URI_ERROR_BAD_QUERY,
2944 Self::BadFragment => ffi::G_URI_ERROR_BAD_FRAGMENT,
2945 Self::__Unknown(value) => value,
2946 }
2947 }
2948}
2949
2950#[cfg(feature = "v2_66")]
2951#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2952#[doc(hidden)]
2953impl FromGlib<ffi::GUriError> for UriError {
2954 #[inline]
2955 unsafe fn from_glib(value: ffi::GUriError) -> Self {
2956 match value {
2957 ffi::G_URI_ERROR_FAILED => Self::Failed,
2958 ffi::G_URI_ERROR_BAD_SCHEME => Self::BadScheme,
2959 ffi::G_URI_ERROR_BAD_USER => Self::BadUser,
2960 ffi::G_URI_ERROR_BAD_PASSWORD => Self::BadPassword,
2961 ffi::G_URI_ERROR_BAD_AUTH_PARAMS => Self::BadAuthParams,
2962 ffi::G_URI_ERROR_BAD_HOST => Self::BadHost,
2963 ffi::G_URI_ERROR_BAD_PORT => Self::BadPort,
2964 ffi::G_URI_ERROR_BAD_PATH => Self::BadPath,
2965 ffi::G_URI_ERROR_BAD_QUERY => Self::BadQuery,
2966 ffi::G_URI_ERROR_BAD_FRAGMENT => Self::BadFragment,
2967 value => Self::__Unknown(value),
2968 }
2969 }
2970}
2971
2972#[cfg(feature = "v2_66")]
2973#[cfg_attr(docsrs, doc(cfg(feature = "v2_66")))]
2974impl crate::error::ErrorDomain for UriError {
2975 #[inline]
2976 fn domain() -> crate::Quark {
2977 unsafe { from_glib(ffi::g_uri_error_quark()) }
2978 }
2979
2980 #[inline]
2981 fn code(self) -> i32 {
2982 self.into_glib()
2983 }
2984
2985 #[inline]
2986 #[allow(clippy::match_single_binding)]
2987 fn from(code: i32) -> Option<Self> {
2988 match unsafe { from_glib(code) } {
2989 Self::__Unknown(_) => Some(Self::Failed),
2990 value => Some(value),
2991 }
2992 }
2993}
2994
2995#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2997#[non_exhaustive]
2998#[doc(alias = "GVariantClass")]
2999pub enum VariantClass {
3000 #[doc(alias = "G_VARIANT_CLASS_BOOLEAN")]
3002 Boolean,
3003 #[doc(alias = "G_VARIANT_CLASS_BYTE")]
3005 Byte,
3006 #[doc(alias = "G_VARIANT_CLASS_INT16")]
3008 Int16,
3009 #[doc(alias = "G_VARIANT_CLASS_UINT16")]
3011 Uint16,
3012 #[doc(alias = "G_VARIANT_CLASS_INT32")]
3014 Int32,
3015 #[doc(alias = "G_VARIANT_CLASS_UINT32")]
3017 Uint32,
3018 #[doc(alias = "G_VARIANT_CLASS_INT64")]
3020 Int64,
3021 #[doc(alias = "G_VARIANT_CLASS_UINT64")]
3023 Uint64,
3024 #[doc(alias = "G_VARIANT_CLASS_HANDLE")]
3026 Handle,
3027 #[doc(alias = "G_VARIANT_CLASS_DOUBLE")]
3030 Double,
3031 #[doc(alias = "G_VARIANT_CLASS_STRING")]
3033 String,
3034 #[doc(alias = "G_VARIANT_CLASS_OBJECT_PATH")]
3037 ObjectPath,
3038 #[doc(alias = "G_VARIANT_CLASS_SIGNATURE")]
3040 Signature,
3041 #[doc(alias = "G_VARIANT_CLASS_VARIANT")]
3043 Variant,
3044 #[doc(alias = "G_VARIANT_CLASS_MAYBE")]
3046 Maybe,
3047 #[doc(alias = "G_VARIANT_CLASS_ARRAY")]
3049 Array,
3050 #[doc(alias = "G_VARIANT_CLASS_TUPLE")]
3052 Tuple,
3053 #[doc(alias = "G_VARIANT_CLASS_DICT_ENTRY")]
3055 DictEntry,
3056 #[doc(hidden)]
3057 __Unknown(i32),
3058}
3059
3060#[doc(hidden)]
3061impl IntoGlib for VariantClass {
3062 type GlibType = ffi::GVariantClass;
3063
3064 fn into_glib(self) -> ffi::GVariantClass {
3065 match self {
3066 Self::Boolean => ffi::G_VARIANT_CLASS_BOOLEAN,
3067 Self::Byte => ffi::G_VARIANT_CLASS_BYTE,
3068 Self::Int16 => ffi::G_VARIANT_CLASS_INT16,
3069 Self::Uint16 => ffi::G_VARIANT_CLASS_UINT16,
3070 Self::Int32 => ffi::G_VARIANT_CLASS_INT32,
3071 Self::Uint32 => ffi::G_VARIANT_CLASS_UINT32,
3072 Self::Int64 => ffi::G_VARIANT_CLASS_INT64,
3073 Self::Uint64 => ffi::G_VARIANT_CLASS_UINT64,
3074 Self::Handle => ffi::G_VARIANT_CLASS_HANDLE,
3075 Self::Double => ffi::G_VARIANT_CLASS_DOUBLE,
3076 Self::String => ffi::G_VARIANT_CLASS_STRING,
3077 Self::ObjectPath => ffi::G_VARIANT_CLASS_OBJECT_PATH,
3078 Self::Signature => ffi::G_VARIANT_CLASS_SIGNATURE,
3079 Self::Variant => ffi::G_VARIANT_CLASS_VARIANT,
3080 Self::Maybe => ffi::G_VARIANT_CLASS_MAYBE,
3081 Self::Array => ffi::G_VARIANT_CLASS_ARRAY,
3082 Self::Tuple => ffi::G_VARIANT_CLASS_TUPLE,
3083 Self::DictEntry => ffi::G_VARIANT_CLASS_DICT_ENTRY,
3084 Self::__Unknown(value) => value,
3085 }
3086 }
3087}
3088
3089#[doc(hidden)]
3090impl FromGlib<ffi::GVariantClass> for VariantClass {
3091 unsafe fn from_glib(value: ffi::GVariantClass) -> Self {
3092 match value {
3093 ffi::G_VARIANT_CLASS_BOOLEAN => Self::Boolean,
3094 ffi::G_VARIANT_CLASS_BYTE => Self::Byte,
3095 ffi::G_VARIANT_CLASS_INT16 => Self::Int16,
3096 ffi::G_VARIANT_CLASS_UINT16 => Self::Uint16,
3097 ffi::G_VARIANT_CLASS_INT32 => Self::Int32,
3098 ffi::G_VARIANT_CLASS_UINT32 => Self::Uint32,
3099 ffi::G_VARIANT_CLASS_INT64 => Self::Int64,
3100 ffi::G_VARIANT_CLASS_UINT64 => Self::Uint64,
3101 ffi::G_VARIANT_CLASS_HANDLE => Self::Handle,
3102 ffi::G_VARIANT_CLASS_DOUBLE => Self::Double,
3103 ffi::G_VARIANT_CLASS_STRING => Self::String,
3104 ffi::G_VARIANT_CLASS_OBJECT_PATH => Self::ObjectPath,
3105 ffi::G_VARIANT_CLASS_SIGNATURE => Self::Signature,
3106 ffi::G_VARIANT_CLASS_VARIANT => Self::Variant,
3107 ffi::G_VARIANT_CLASS_MAYBE => Self::Maybe,
3108 ffi::G_VARIANT_CLASS_ARRAY => Self::Array,
3109 ffi::G_VARIANT_CLASS_TUPLE => Self::Tuple,
3110 ffi::G_VARIANT_CLASS_DICT_ENTRY => Self::DictEntry,
3111 value => Self::__Unknown(value),
3112 }
3113 }
3114}