1use glib::translate::*;
7use std::fmt;
8
9#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
10#[non_exhaustive]
11#[doc(alias = "JSCCheckSyntaxMode")]
12pub enum CheckSyntaxMode {
13 #[doc(alias = "JSC_CHECK_SYNTAX_MODE_SCRIPT")]
14 Script,
15 #[doc(alias = "JSC_CHECK_SYNTAX_MODE_MODULE")]
16 Module,
17 #[doc(hidden)]
18 __Unknown(i32),
19}
20
21impl fmt::Display for CheckSyntaxMode {
22 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23 write!(
24 f,
25 "CheckSyntaxMode::{}",
26 match *self {
27 Self::Script => "Script",
28 Self::Module => "Module",
29 _ => "Unknown",
30 }
31 )
32 }
33}
34
35#[doc(hidden)]
36impl IntoGlib for CheckSyntaxMode {
37 type GlibType = ffi::JSCCheckSyntaxMode;
38
39 #[inline]
40 fn into_glib(self) -> ffi::JSCCheckSyntaxMode {
41 match self {
42 Self::Script => ffi::JSC_CHECK_SYNTAX_MODE_SCRIPT,
43 Self::Module => ffi::JSC_CHECK_SYNTAX_MODE_MODULE,
44 Self::__Unknown(value) => value,
45 }
46 }
47}
48
49#[doc(hidden)]
50impl FromGlib<ffi::JSCCheckSyntaxMode> for CheckSyntaxMode {
51 #[inline]
52 unsafe fn from_glib(value: ffi::JSCCheckSyntaxMode) -> Self {
53 match value {
54 ffi::JSC_CHECK_SYNTAX_MODE_SCRIPT => Self::Script,
55 ffi::JSC_CHECK_SYNTAX_MODE_MODULE => Self::Module,
56 value => Self::__Unknown(value),
57 }
58 }
59}
60
61#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
62#[non_exhaustive]
63#[doc(alias = "JSCCheckSyntaxResult")]
64pub enum CheckSyntaxResult {
65 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_SUCCESS")]
66 Success,
67 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_RECOVERABLE_ERROR")]
68 RecoverableError,
69 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_IRRECOVERABLE_ERROR")]
70 IrrecoverableError,
71 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_UNTERMINATED_LITERAL_ERROR")]
72 UnterminatedLiteralError,
73 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_OUT_OF_MEMORY_ERROR")]
74 OutOfMemoryError,
75 #[doc(alias = "JSC_CHECK_SYNTAX_RESULT_STACK_OVERFLOW_ERROR")]
76 StackOverflowError,
77 #[doc(hidden)]
78 __Unknown(i32),
79}
80
81impl fmt::Display for CheckSyntaxResult {
82 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
83 write!(
84 f,
85 "CheckSyntaxResult::{}",
86 match *self {
87 Self::Success => "Success",
88 Self::RecoverableError => "RecoverableError",
89 Self::IrrecoverableError => "IrrecoverableError",
90 Self::UnterminatedLiteralError => "UnterminatedLiteralError",
91 Self::OutOfMemoryError => "OutOfMemoryError",
92 Self::StackOverflowError => "StackOverflowError",
93 _ => "Unknown",
94 }
95 )
96 }
97}
98
99#[doc(hidden)]
100impl IntoGlib for CheckSyntaxResult {
101 type GlibType = ffi::JSCCheckSyntaxResult;
102
103 #[inline]
104 fn into_glib(self) -> ffi::JSCCheckSyntaxResult {
105 match self {
106 Self::Success => ffi::JSC_CHECK_SYNTAX_RESULT_SUCCESS,
107 Self::RecoverableError => ffi::JSC_CHECK_SYNTAX_RESULT_RECOVERABLE_ERROR,
108 Self::IrrecoverableError => ffi::JSC_CHECK_SYNTAX_RESULT_IRRECOVERABLE_ERROR,
109 Self::UnterminatedLiteralError => {
110 ffi::JSC_CHECK_SYNTAX_RESULT_UNTERMINATED_LITERAL_ERROR
111 }
112 Self::OutOfMemoryError => ffi::JSC_CHECK_SYNTAX_RESULT_OUT_OF_MEMORY_ERROR,
113 Self::StackOverflowError => ffi::JSC_CHECK_SYNTAX_RESULT_STACK_OVERFLOW_ERROR,
114 Self::__Unknown(value) => value,
115 }
116 }
117}
118
119#[doc(hidden)]
120impl FromGlib<ffi::JSCCheckSyntaxResult> for CheckSyntaxResult {
121 #[inline]
122 unsafe fn from_glib(value: ffi::JSCCheckSyntaxResult) -> Self {
123 match value {
124 ffi::JSC_CHECK_SYNTAX_RESULT_SUCCESS => Self::Success,
125 ffi::JSC_CHECK_SYNTAX_RESULT_RECOVERABLE_ERROR => Self::RecoverableError,
126 ffi::JSC_CHECK_SYNTAX_RESULT_IRRECOVERABLE_ERROR => Self::IrrecoverableError,
127 ffi::JSC_CHECK_SYNTAX_RESULT_UNTERMINATED_LITERAL_ERROR => {
128 Self::UnterminatedLiteralError
129 }
130 ffi::JSC_CHECK_SYNTAX_RESULT_OUT_OF_MEMORY_ERROR => Self::OutOfMemoryError,
131 ffi::JSC_CHECK_SYNTAX_RESULT_STACK_OVERFLOW_ERROR => Self::StackOverflowError,
132 value => Self::__Unknown(value),
133 }
134 }
135}
136
137#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
138#[non_exhaustive]
139#[doc(alias = "JSCOptionType")]
140pub enum OptionType {
141 #[doc(alias = "JSC_OPTION_BOOLEAN")]
142 Boolean,
143 #[doc(alias = "JSC_OPTION_INT")]
144 Int,
145 #[doc(alias = "JSC_OPTION_UINT")]
146 Uint,
147 #[doc(alias = "JSC_OPTION_SIZE")]
148 Size,
149 #[doc(alias = "JSC_OPTION_DOUBLE")]
150 Double,
151 #[doc(alias = "JSC_OPTION_STRING")]
152 String,
153 #[doc(alias = "JSC_OPTION_RANGE_STRING")]
154 RangeString,
155 #[doc(hidden)]
156 __Unknown(i32),
157}
158
159impl fmt::Display for OptionType {
160 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
161 write!(
162 f,
163 "OptionType::{}",
164 match *self {
165 Self::Boolean => "Boolean",
166 Self::Int => "Int",
167 Self::Uint => "Uint",
168 Self::Size => "Size",
169 Self::Double => "Double",
170 Self::String => "String",
171 Self::RangeString => "RangeString",
172 _ => "Unknown",
173 }
174 )
175 }
176}
177
178#[doc(hidden)]
179impl IntoGlib for OptionType {
180 type GlibType = ffi::JSCOptionType;
181
182 #[inline]
183 fn into_glib(self) -> ffi::JSCOptionType {
184 match self {
185 Self::Boolean => ffi::JSC_OPTION_BOOLEAN,
186 Self::Int => ffi::JSC_OPTION_INT,
187 Self::Uint => ffi::JSC_OPTION_UINT,
188 Self::Size => ffi::JSC_OPTION_SIZE,
189 Self::Double => ffi::JSC_OPTION_DOUBLE,
190 Self::String => ffi::JSC_OPTION_STRING,
191 Self::RangeString => ffi::JSC_OPTION_RANGE_STRING,
192 Self::__Unknown(value) => value,
193 }
194 }
195}
196
197#[doc(hidden)]
198impl FromGlib<ffi::JSCOptionType> for OptionType {
199 #[inline]
200 unsafe fn from_glib(value: ffi::JSCOptionType) -> Self {
201 match value {
202 ffi::JSC_OPTION_BOOLEAN => Self::Boolean,
203 ffi::JSC_OPTION_INT => Self::Int,
204 ffi::JSC_OPTION_UINT => Self::Uint,
205 ffi::JSC_OPTION_SIZE => Self::Size,
206 ffi::JSC_OPTION_DOUBLE => Self::Double,
207 ffi::JSC_OPTION_STRING => Self::String,
208 ffi::JSC_OPTION_RANGE_STRING => Self::RangeString,
209 value => Self::__Unknown(value),
210 }
211 }
212}