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