@rusaint/react-native 0.10.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +15 -0
  3. package/android/CMakeLists.txt +78 -0
  4. package/android/build.gradle +143 -0
  5. package/android/cpp-adapter.cpp +63 -0
  6. package/android/generated/java/dev/eatsteak/rusaint/reactnative/NativeReactNativeSpec.java +41 -0
  7. package/android/generated/jni/CMakeLists.txt +36 -0
  8. package/android/generated/jni/RNReactNativeSpec-generated.cpp +38 -0
  9. package/android/generated/jni/RNReactNativeSpec.h +31 -0
  10. package/android/generated/jni/react/renderer/components/RNReactNativeSpec/RNReactNativeSpecJSI-generated.cpp +32 -0
  11. package/android/generated/jni/react/renderer/components/RNReactNativeSpec/RNReactNativeSpecJSI.h +80 -0
  12. package/android/gradle.properties +5 -0
  13. package/android/src/main/AndroidManifest.xml +5 -0
  14. package/android/src/main/java/dev/eatsteak/rusaint/reactnative/ReactNativeModule.kt +43 -0
  15. package/android/src/main/java/dev/eatsteak/rusaint/reactnative/ReactNativePackage.kt +34 -0
  16. package/android/src/main/jniLibs/arm64-v8a/librusaint_ffi.a +0 -0
  17. package/android/src/main/jniLibs/armeabi-v7a/librusaint_ffi.a +0 -0
  18. package/android/src/main/jniLibs/x86/librusaint_ffi.a +0 -0
  19. package/android/src/main/jniLibs/x86_64/librusaint_ffi.a +0 -0
  20. package/build/RusaintReactNativeFramework.xcframework/Info.plist +43 -0
  21. package/build/RusaintReactNativeFramework.xcframework/ios-arm64/librusaint_ffi.a +0 -0
  22. package/build/RusaintReactNativeFramework.xcframework/ios-arm64-simulator/librusaint_ffi.a +0 -0
  23. package/cpp/generated/rusaint.cpp +2485 -0
  24. package/cpp/generated/rusaint.hpp +168 -0
  25. package/cpp/generated/rusaint_ffi.cpp +7397 -0
  26. package/cpp/generated/rusaint_ffi.hpp +873 -0
  27. package/cpp/rusaint-react-native.cpp +18 -0
  28. package/cpp/rusaint-react-native.h +15 -0
  29. package/ios/ReactNative.h +16 -0
  30. package/ios/ReactNative.mm +66 -0
  31. package/ios/generated/RNReactNativeSpec/RNReactNativeSpec-generated.mm +46 -0
  32. package/ios/generated/RNReactNativeSpec/RNReactNativeSpec.h +63 -0
  33. package/ios/generated/RNReactNativeSpecJSI-generated.cpp +32 -0
  34. package/ios/generated/RNReactNativeSpecJSI.h +80 -0
  35. package/lib/commonjs/NativeReactNative.ts +10 -0
  36. package/lib/commonjs/generated/rusaint-ffi.js +44 -0
  37. package/lib/commonjs/generated/rusaint-ffi.js.map +1 -0
  38. package/lib/commonjs/generated/rusaint.js +3232 -0
  39. package/lib/commonjs/generated/rusaint.js.map +1 -0
  40. package/lib/commonjs/generated/rusaint_ffi-ffi.js +44 -0
  41. package/lib/commonjs/generated/rusaint_ffi-ffi.js.map +1 -0
  42. package/lib/commonjs/generated/rusaint_ffi.js +2493 -0
  43. package/lib/commonjs/generated/rusaint_ffi.js.map +1 -0
  44. package/lib/commonjs/index.js +68 -0
  45. package/lib/commonjs/index.js.map +1 -0
  46. package/lib/commonjs/package.json +1 -0
  47. package/lib/module/NativeReactNative.ts +10 -0
  48. package/lib/module/generated/rusaint-ffi.js +43 -0
  49. package/lib/module/generated/rusaint-ffi.js.map +1 -0
  50. package/lib/module/generated/rusaint.js +3226 -0
  51. package/lib/module/generated/rusaint.js.map +1 -0
  52. package/lib/module/generated/rusaint_ffi-ffi.js +43 -0
  53. package/lib/module/generated/rusaint_ffi-ffi.js.map +1 -0
  54. package/lib/module/generated/rusaint_ffi.js +2469 -0
  55. package/lib/module/generated/rusaint_ffi.js.map +1 -0
  56. package/lib/module/index.js +40 -0
  57. package/lib/module/index.js.map +1 -0
  58. package/lib/module/package.json +1 -0
  59. package/lib/typescript/commonjs/src/NativeReactNative.d.ts +8 -0
  60. package/lib/typescript/commonjs/src/NativeReactNative.d.ts.map +1 -0
  61. package/lib/typescript/commonjs/src/generated/rusaint-ffi.d.ts +109 -0
  62. package/lib/typescript/commonjs/src/generated/rusaint-ffi.d.ts.map +1 -0
  63. package/lib/typescript/commonjs/src/generated/rusaint.d.ts +2330 -0
  64. package/lib/typescript/commonjs/src/generated/rusaint.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/generated/rusaint_ffi-ffi.d.ts +300 -0
  66. package/lib/typescript/commonjs/src/generated/rusaint_ffi-ffi.d.ts.map +1 -0
  67. package/lib/typescript/commonjs/src/generated/rusaint_ffi.d.ts +1111 -0
  68. package/lib/typescript/commonjs/src/generated/rusaint_ffi.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/index.d.ts +10 -0
  70. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  71. package/package.json +185 -0
  72. package/react-native.config.js +12 -0
  73. package/rusaint-react-native.podspec +44 -0
  74. package/src/NativeReactNative.ts +10 -0
  75. package/src/generated/rusaint-ffi.ts +276 -0
  76. package/src/generated/rusaint.ts +4867 -0
  77. package/src/generated/rusaint_ffi-ffi.ts +832 -0
  78. package/src/generated/rusaint_ffi.ts +5519 -0
  79. package/src/index.tsx +38 -0
@@ -0,0 +1,4867 @@
1
+ // This file was autogenerated by some hot garbage in the `uniffi-bindgen-react-native` crate.
2
+ // Trust me, you don't want to mess with it!
3
+ import nativeModule, {
4
+ type UniffiRustFutureContinuationCallback,
5
+ type UniffiForeignFuture,
6
+ type UniffiForeignFutureStructU8,
7
+ type UniffiForeignFutureCompleteU8,
8
+ type UniffiForeignFutureStructI8,
9
+ type UniffiForeignFutureCompleteI8,
10
+ type UniffiForeignFutureStructU16,
11
+ type UniffiForeignFutureCompleteU16,
12
+ type UniffiForeignFutureStructI16,
13
+ type UniffiForeignFutureCompleteI16,
14
+ type UniffiForeignFutureStructU32,
15
+ type UniffiForeignFutureCompleteU32,
16
+ type UniffiForeignFutureStructI32,
17
+ type UniffiForeignFutureCompleteI32,
18
+ type UniffiForeignFutureStructU64,
19
+ type UniffiForeignFutureCompleteU64,
20
+ type UniffiForeignFutureStructI64,
21
+ type UniffiForeignFutureCompleteI64,
22
+ type UniffiForeignFutureStructF32,
23
+ type UniffiForeignFutureCompleteF32,
24
+ type UniffiForeignFutureStructF64,
25
+ type UniffiForeignFutureCompleteF64,
26
+ type UniffiForeignFutureStructPointer,
27
+ type UniffiForeignFutureCompletePointer,
28
+ type UniffiForeignFutureStructRustBuffer,
29
+ type UniffiForeignFutureCompleteRustBuffer,
30
+ type UniffiForeignFutureStructVoid,
31
+ type UniffiForeignFutureCompleteVoid,
32
+ } from './rusaint-ffi';
33
+ import {
34
+ type FfiConverter,
35
+ type UniffiByteArray,
36
+ type UniffiObjectFactory,
37
+ type UniffiRustArcPtr,
38
+ type UnsafeMutableRawPointer,
39
+ AbstractFfiConverterByteArray,
40
+ FfiConverterArray,
41
+ FfiConverterArrayBuffer,
42
+ FfiConverterBool,
43
+ FfiConverterFloat32,
44
+ FfiConverterInt32,
45
+ FfiConverterMap,
46
+ FfiConverterObject,
47
+ FfiConverterOptional,
48
+ FfiConverterUInt32,
49
+ FfiConverterUInt64,
50
+ RustBuffer,
51
+ UniffiAbstractObject,
52
+ UniffiEnum,
53
+ UniffiInternalError,
54
+ UniffiRustCaller,
55
+ destructorGuardSymbol,
56
+ pointerLiteralSymbol,
57
+ uniffiCreateFfiConverterString,
58
+ uniffiCreateRecord,
59
+ uniffiTypeNameSymbol,
60
+ } from 'uniffi-bindgen-react-native';
61
+
62
+ // Get converters from the other files, if any.
63
+ const uniffiCaller = new UniffiRustCaller();
64
+
65
+ const uniffiIsDebug =
66
+ // @ts-ignore -- The process global might not be defined
67
+ typeof process !== 'object' ||
68
+ // @ts-ignore -- The process global might not be defined
69
+ process?.env?.NODE_ENV !== 'production' ||
70
+ false;
71
+ // Public interface members begin here.
72
+
73
+ /**
74
+ * 채플 결석신청 정보
75
+ */
76
+ export type ChapelAbsenceRequest = {
77
+ year: /*u32*/ number;
78
+ semester: SemesterType;
79
+ absenceDetail: string;
80
+ absenceStart: string;
81
+ absenceEnd: string;
82
+ absenceReasonKr: string;
83
+ absenceReasonEn: string;
84
+ applicationDate: string;
85
+ approvalDate: string;
86
+ denialReason: string;
87
+ status: string;
88
+ };
89
+
90
+ /**
91
+ * Generated factory for {@link ChapelAbsenceRequest} record objects.
92
+ */
93
+ export const ChapelAbsenceRequest = (() => {
94
+ const defaults = () => ({});
95
+ const create = (() => {
96
+ return uniffiCreateRecord<
97
+ ChapelAbsenceRequest,
98
+ ReturnType<typeof defaults>
99
+ >(defaults);
100
+ })();
101
+ return Object.freeze({
102
+ /**
103
+ * Create a frozen instance of {@link ChapelAbsenceRequest}, with defaults specified
104
+ * in Rust, in the {@link rusaint} crate.
105
+ */
106
+ create,
107
+
108
+ /**
109
+ * Create a frozen instance of {@link ChapelAbsenceRequest}, with defaults specified
110
+ * in Rust, in the {@link rusaint} crate.
111
+ */
112
+ new: create,
113
+
114
+ /**
115
+ * Defaults specified in the {@link rusaint} crate.
116
+ */
117
+ defaults: () => Object.freeze(defaults()) as Partial<ChapelAbsenceRequest>,
118
+ });
119
+ })();
120
+
121
+ const FfiConverterTypeChapelAbsenceRequest = (() => {
122
+ type TypeName = ChapelAbsenceRequest;
123
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
124
+ read(from: RustBuffer): TypeName {
125
+ return {
126
+ year: FfiConverterUInt32.read(from),
127
+ semester: FfiConverterTypeSemesterType.read(from),
128
+ absenceDetail: FfiConverterString.read(from),
129
+ absenceStart: FfiConverterString.read(from),
130
+ absenceEnd: FfiConverterString.read(from),
131
+ absenceReasonKr: FfiConverterString.read(from),
132
+ absenceReasonEn: FfiConverterString.read(from),
133
+ applicationDate: FfiConverterString.read(from),
134
+ approvalDate: FfiConverterString.read(from),
135
+ denialReason: FfiConverterString.read(from),
136
+ status: FfiConverterString.read(from),
137
+ };
138
+ }
139
+ write(value: TypeName, into: RustBuffer): void {
140
+ FfiConverterUInt32.write(value.year, into);
141
+ FfiConverterTypeSemesterType.write(value.semester, into);
142
+ FfiConverterString.write(value.absenceDetail, into);
143
+ FfiConverterString.write(value.absenceStart, into);
144
+ FfiConverterString.write(value.absenceEnd, into);
145
+ FfiConverterString.write(value.absenceReasonKr, into);
146
+ FfiConverterString.write(value.absenceReasonEn, into);
147
+ FfiConverterString.write(value.applicationDate, into);
148
+ FfiConverterString.write(value.approvalDate, into);
149
+ FfiConverterString.write(value.denialReason, into);
150
+ FfiConverterString.write(value.status, into);
151
+ }
152
+ allocationSize(value: TypeName): number {
153
+ return (
154
+ FfiConverterUInt32.allocationSize(value.year) +
155
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
156
+ FfiConverterString.allocationSize(value.absenceDetail) +
157
+ FfiConverterString.allocationSize(value.absenceStart) +
158
+ FfiConverterString.allocationSize(value.absenceEnd) +
159
+ FfiConverterString.allocationSize(value.absenceReasonKr) +
160
+ FfiConverterString.allocationSize(value.absenceReasonEn) +
161
+ FfiConverterString.allocationSize(value.applicationDate) +
162
+ FfiConverterString.allocationSize(value.approvalDate) +
163
+ FfiConverterString.allocationSize(value.denialReason) +
164
+ FfiConverterString.allocationSize(value.status)
165
+ );
166
+ }
167
+ }
168
+ return new FFIConverter();
169
+ })();
170
+
171
+ /**
172
+ * 채플 수업별 출석정보
173
+ */
174
+ export type ChapelAttendance = {
175
+ division: /*u32*/ number;
176
+ classDate: string;
177
+ category: string;
178
+ instructor: string;
179
+ instructorDepartment: string;
180
+ title: string;
181
+ attendance: string;
182
+ result: string;
183
+ note: string;
184
+ };
185
+
186
+ /**
187
+ * Generated factory for {@link ChapelAttendance} record objects.
188
+ */
189
+ export const ChapelAttendance = (() => {
190
+ const defaults = () => ({});
191
+ const create = (() => {
192
+ return uniffiCreateRecord<ChapelAttendance, ReturnType<typeof defaults>>(
193
+ defaults
194
+ );
195
+ })();
196
+ return Object.freeze({
197
+ /**
198
+ * Create a frozen instance of {@link ChapelAttendance}, with defaults specified
199
+ * in Rust, in the {@link rusaint} crate.
200
+ */
201
+ create,
202
+
203
+ /**
204
+ * Create a frozen instance of {@link ChapelAttendance}, with defaults specified
205
+ * in Rust, in the {@link rusaint} crate.
206
+ */
207
+ new: create,
208
+
209
+ /**
210
+ * Defaults specified in the {@link rusaint} crate.
211
+ */
212
+ defaults: () => Object.freeze(defaults()) as Partial<ChapelAttendance>,
213
+ });
214
+ })();
215
+
216
+ const FfiConverterTypeChapelAttendance = (() => {
217
+ type TypeName = ChapelAttendance;
218
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
219
+ read(from: RustBuffer): TypeName {
220
+ return {
221
+ division: FfiConverterUInt32.read(from),
222
+ classDate: FfiConverterString.read(from),
223
+ category: FfiConverterString.read(from),
224
+ instructor: FfiConverterString.read(from),
225
+ instructorDepartment: FfiConverterString.read(from),
226
+ title: FfiConverterString.read(from),
227
+ attendance: FfiConverterString.read(from),
228
+ result: FfiConverterString.read(from),
229
+ note: FfiConverterString.read(from),
230
+ };
231
+ }
232
+ write(value: TypeName, into: RustBuffer): void {
233
+ FfiConverterUInt32.write(value.division, into);
234
+ FfiConverterString.write(value.classDate, into);
235
+ FfiConverterString.write(value.category, into);
236
+ FfiConverterString.write(value.instructor, into);
237
+ FfiConverterString.write(value.instructorDepartment, into);
238
+ FfiConverterString.write(value.title, into);
239
+ FfiConverterString.write(value.attendance, into);
240
+ FfiConverterString.write(value.result, into);
241
+ FfiConverterString.write(value.note, into);
242
+ }
243
+ allocationSize(value: TypeName): number {
244
+ return (
245
+ FfiConverterUInt32.allocationSize(value.division) +
246
+ FfiConverterString.allocationSize(value.classDate) +
247
+ FfiConverterString.allocationSize(value.category) +
248
+ FfiConverterString.allocationSize(value.instructor) +
249
+ FfiConverterString.allocationSize(value.instructorDepartment) +
250
+ FfiConverterString.allocationSize(value.title) +
251
+ FfiConverterString.allocationSize(value.attendance) +
252
+ FfiConverterString.allocationSize(value.result) +
253
+ FfiConverterString.allocationSize(value.note)
254
+ );
255
+ }
256
+ }
257
+ return new FFIConverter();
258
+ })();
259
+
260
+ /**
261
+ * 학기별 채플 정보
262
+ */
263
+ export type ChapelInformation = {
264
+ year: /*u32*/ number;
265
+ semester: SemesterType;
266
+ generalInformation: GeneralChapelInformation;
267
+ attendances: Array<ChapelAttendance>;
268
+ absenceRequests: Array<ChapelAbsenceRequest>;
269
+ };
270
+
271
+ /**
272
+ * Generated factory for {@link ChapelInformation} record objects.
273
+ */
274
+ export const ChapelInformation = (() => {
275
+ const defaults = () => ({});
276
+ const create = (() => {
277
+ return uniffiCreateRecord<ChapelInformation, ReturnType<typeof defaults>>(
278
+ defaults
279
+ );
280
+ })();
281
+ return Object.freeze({
282
+ /**
283
+ * Create a frozen instance of {@link ChapelInformation}, with defaults specified
284
+ * in Rust, in the {@link rusaint} crate.
285
+ */
286
+ create,
287
+
288
+ /**
289
+ * Create a frozen instance of {@link ChapelInformation}, with defaults specified
290
+ * in Rust, in the {@link rusaint} crate.
291
+ */
292
+ new: create,
293
+
294
+ /**
295
+ * Defaults specified in the {@link rusaint} crate.
296
+ */
297
+ defaults: () => Object.freeze(defaults()) as Partial<ChapelInformation>,
298
+ });
299
+ })();
300
+
301
+ const FfiConverterTypeChapelInformation = (() => {
302
+ type TypeName = ChapelInformation;
303
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
304
+ read(from: RustBuffer): TypeName {
305
+ return {
306
+ year: FfiConverterUInt32.read(from),
307
+ semester: FfiConverterTypeSemesterType.read(from),
308
+ generalInformation: FfiConverterTypeGeneralChapelInformation.read(from),
309
+ attendances: FfiConverterArrayTypeChapelAttendance.read(from),
310
+ absenceRequests: FfiConverterArrayTypeChapelAbsenceRequest.read(from),
311
+ };
312
+ }
313
+ write(value: TypeName, into: RustBuffer): void {
314
+ FfiConverterUInt32.write(value.year, into);
315
+ FfiConverterTypeSemesterType.write(value.semester, into);
316
+ FfiConverterTypeGeneralChapelInformation.write(
317
+ value.generalInformation,
318
+ into
319
+ );
320
+ FfiConverterArrayTypeChapelAttendance.write(value.attendances, into);
321
+ FfiConverterArrayTypeChapelAbsenceRequest.write(
322
+ value.absenceRequests,
323
+ into
324
+ );
325
+ }
326
+ allocationSize(value: TypeName): number {
327
+ return (
328
+ FfiConverterUInt32.allocationSize(value.year) +
329
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
330
+ FfiConverterTypeGeneralChapelInformation.allocationSize(
331
+ value.generalInformation
332
+ ) +
333
+ FfiConverterArrayTypeChapelAttendance.allocationSize(
334
+ value.attendances
335
+ ) +
336
+ FfiConverterArrayTypeChapelAbsenceRequest.allocationSize(
337
+ value.absenceRequests
338
+ )
339
+ );
340
+ }
341
+ }
342
+ return new FFIConverter();
343
+ })();
344
+
345
+ /**
346
+ * 과목별 성적
347
+ */
348
+ export type ClassGrade = {
349
+ /**
350
+ * 이수학년도
351
+ */
352
+ year: /*u32*/ number;
353
+ /**
354
+ * 이수학기
355
+ */
356
+ semester: SemesterType;
357
+ /**
358
+ * 과목코드
359
+ */
360
+ code: string;
361
+ /**
362
+ * 과목명
363
+ */
364
+ className: string;
365
+ /**
366
+ * 과목학점
367
+ */
368
+ gradePoints: /*f32*/ number;
369
+ /**
370
+ * 성적
371
+ */
372
+ score: ClassScore;
373
+ /**
374
+ * 등급
375
+ */
376
+ rank: string;
377
+ /**
378
+ * 교수명
379
+ */
380
+ professor: string;
381
+ /**
382
+ * 상세성적
383
+ */
384
+ detail: Map<string, /*f32*/ number> | undefined;
385
+ };
386
+
387
+ /**
388
+ * Generated factory for {@link ClassGrade} record objects.
389
+ */
390
+ export const ClassGrade = (() => {
391
+ const defaults = () => ({});
392
+ const create = (() => {
393
+ return uniffiCreateRecord<ClassGrade, ReturnType<typeof defaults>>(
394
+ defaults
395
+ );
396
+ })();
397
+ return Object.freeze({
398
+ /**
399
+ * Create a frozen instance of {@link ClassGrade}, with defaults specified
400
+ * in Rust, in the {@link rusaint} crate.
401
+ */
402
+ create,
403
+
404
+ /**
405
+ * Create a frozen instance of {@link ClassGrade}, with defaults specified
406
+ * in Rust, in the {@link rusaint} crate.
407
+ */
408
+ new: create,
409
+
410
+ /**
411
+ * Defaults specified in the {@link rusaint} crate.
412
+ */
413
+ defaults: () => Object.freeze(defaults()) as Partial<ClassGrade>,
414
+ });
415
+ })();
416
+
417
+ const FfiConverterTypeClassGrade = (() => {
418
+ type TypeName = ClassGrade;
419
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
420
+ read(from: RustBuffer): TypeName {
421
+ return {
422
+ year: FfiConverterUInt32.read(from),
423
+ semester: FfiConverterTypeSemesterType.read(from),
424
+ code: FfiConverterString.read(from),
425
+ className: FfiConverterString.read(from),
426
+ gradePoints: FfiConverterFloat32.read(from),
427
+ score: FfiConverterTypeClassScore.read(from),
428
+ rank: FfiConverterString.read(from),
429
+ professor: FfiConverterString.read(from),
430
+ detail: FfiConverterOptionalMapStringFloat32.read(from),
431
+ };
432
+ }
433
+ write(value: TypeName, into: RustBuffer): void {
434
+ FfiConverterUInt32.write(value.year, into);
435
+ FfiConverterTypeSemesterType.write(value.semester, into);
436
+ FfiConverterString.write(value.code, into);
437
+ FfiConverterString.write(value.className, into);
438
+ FfiConverterFloat32.write(value.gradePoints, into);
439
+ FfiConverterTypeClassScore.write(value.score, into);
440
+ FfiConverterString.write(value.rank, into);
441
+ FfiConverterString.write(value.professor, into);
442
+ FfiConverterOptionalMapStringFloat32.write(value.detail, into);
443
+ }
444
+ allocationSize(value: TypeName): number {
445
+ return (
446
+ FfiConverterUInt32.allocationSize(value.year) +
447
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
448
+ FfiConverterString.allocationSize(value.code) +
449
+ FfiConverterString.allocationSize(value.className) +
450
+ FfiConverterFloat32.allocationSize(value.gradePoints) +
451
+ FfiConverterTypeClassScore.allocationSize(value.score) +
452
+ FfiConverterString.allocationSize(value.rank) +
453
+ FfiConverterString.allocationSize(value.professor) +
454
+ FfiConverterOptionalMapStringFloat32.allocationSize(value.detail)
455
+ );
456
+ }
457
+ }
458
+ return new FFIConverter();
459
+ })();
460
+
461
+ /**
462
+ * 강의의 시간표 정보입니다.
463
+ */
464
+ export type CourseScheduleInformation = {
465
+ name: string;
466
+ professor: string;
467
+ time: string;
468
+ classroom: string;
469
+ };
470
+
471
+ /**
472
+ * Generated factory for {@link CourseScheduleInformation} record objects.
473
+ */
474
+ export const CourseScheduleInformation = (() => {
475
+ const defaults = () => ({});
476
+ const create = (() => {
477
+ return uniffiCreateRecord<
478
+ CourseScheduleInformation,
479
+ ReturnType<typeof defaults>
480
+ >(defaults);
481
+ })();
482
+ return Object.freeze({
483
+ /**
484
+ * Create a frozen instance of {@link CourseScheduleInformation}, with defaults specified
485
+ * in Rust, in the {@link rusaint} crate.
486
+ */
487
+ create,
488
+
489
+ /**
490
+ * Create a frozen instance of {@link CourseScheduleInformation}, with defaults specified
491
+ * in Rust, in the {@link rusaint} crate.
492
+ */
493
+ new: create,
494
+
495
+ /**
496
+ * Defaults specified in the {@link rusaint} crate.
497
+ */
498
+ defaults: () =>
499
+ Object.freeze(defaults()) as Partial<CourseScheduleInformation>,
500
+ });
501
+ })();
502
+
503
+ const FfiConverterTypeCourseScheduleInformation = (() => {
504
+ type TypeName = CourseScheduleInformation;
505
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
506
+ read(from: RustBuffer): TypeName {
507
+ return {
508
+ name: FfiConverterString.read(from),
509
+ professor: FfiConverterString.read(from),
510
+ time: FfiConverterString.read(from),
511
+ classroom: FfiConverterString.read(from),
512
+ };
513
+ }
514
+ write(value: TypeName, into: RustBuffer): void {
515
+ FfiConverterString.write(value.name, into);
516
+ FfiConverterString.write(value.professor, into);
517
+ FfiConverterString.write(value.time, into);
518
+ FfiConverterString.write(value.classroom, into);
519
+ }
520
+ allocationSize(value: TypeName): number {
521
+ return (
522
+ FfiConverterString.allocationSize(value.name) +
523
+ FfiConverterString.allocationSize(value.professor) +
524
+ FfiConverterString.allocationSize(value.time) +
525
+ FfiConverterString.allocationSize(value.classroom)
526
+ );
527
+ }
528
+ }
529
+ return new FFIConverter();
530
+ })();
531
+
532
+ /**
533
+ * 채플 기본 정보(좌석번호, 결석현황, 성적결과)
534
+ */
535
+ export type GeneralChapelInformation = {
536
+ division: /*u32*/ number;
537
+ chapelTime: string;
538
+ chapelRoom: string;
539
+ floorLevel: /*u32*/ number;
540
+ seatNumber: string;
541
+ absenceTime: /*u32*/ number;
542
+ result: string;
543
+ note: string;
544
+ };
545
+
546
+ /**
547
+ * Generated factory for {@link GeneralChapelInformation} record objects.
548
+ */
549
+ export const GeneralChapelInformation = (() => {
550
+ const defaults = () => ({});
551
+ const create = (() => {
552
+ return uniffiCreateRecord<
553
+ GeneralChapelInformation,
554
+ ReturnType<typeof defaults>
555
+ >(defaults);
556
+ })();
557
+ return Object.freeze({
558
+ /**
559
+ * Create a frozen instance of {@link GeneralChapelInformation}, with defaults specified
560
+ * in Rust, in the {@link rusaint} crate.
561
+ */
562
+ create,
563
+
564
+ /**
565
+ * Create a frozen instance of {@link GeneralChapelInformation}, with defaults specified
566
+ * in Rust, in the {@link rusaint} crate.
567
+ */
568
+ new: create,
569
+
570
+ /**
571
+ * Defaults specified in the {@link rusaint} crate.
572
+ */
573
+ defaults: () =>
574
+ Object.freeze(defaults()) as Partial<GeneralChapelInformation>,
575
+ });
576
+ })();
577
+
578
+ const FfiConverterTypeGeneralChapelInformation = (() => {
579
+ type TypeName = GeneralChapelInformation;
580
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
581
+ read(from: RustBuffer): TypeName {
582
+ return {
583
+ division: FfiConverterUInt32.read(from),
584
+ chapelTime: FfiConverterString.read(from),
585
+ chapelRoom: FfiConverterString.read(from),
586
+ floorLevel: FfiConverterUInt32.read(from),
587
+ seatNumber: FfiConverterString.read(from),
588
+ absenceTime: FfiConverterUInt32.read(from),
589
+ result: FfiConverterString.read(from),
590
+ note: FfiConverterString.read(from),
591
+ };
592
+ }
593
+ write(value: TypeName, into: RustBuffer): void {
594
+ FfiConverterUInt32.write(value.division, into);
595
+ FfiConverterString.write(value.chapelTime, into);
596
+ FfiConverterString.write(value.chapelRoom, into);
597
+ FfiConverterUInt32.write(value.floorLevel, into);
598
+ FfiConverterString.write(value.seatNumber, into);
599
+ FfiConverterUInt32.write(value.absenceTime, into);
600
+ FfiConverterString.write(value.result, into);
601
+ FfiConverterString.write(value.note, into);
602
+ }
603
+ allocationSize(value: TypeName): number {
604
+ return (
605
+ FfiConverterUInt32.allocationSize(value.division) +
606
+ FfiConverterString.allocationSize(value.chapelTime) +
607
+ FfiConverterString.allocationSize(value.chapelRoom) +
608
+ FfiConverterUInt32.allocationSize(value.floorLevel) +
609
+ FfiConverterString.allocationSize(value.seatNumber) +
610
+ FfiConverterUInt32.allocationSize(value.absenceTime) +
611
+ FfiConverterString.allocationSize(value.result) +
612
+ FfiConverterString.allocationSize(value.note)
613
+ );
614
+ }
615
+ }
616
+ return new FFIConverter();
617
+ })();
618
+
619
+ /**
620
+ * 전체 성적(학적부, 증명)
621
+ */
622
+ export type GradeSummary = {
623
+ /**
624
+ * 신청학점
625
+ */
626
+ attemptedCredits: /*f32*/ number;
627
+ /**
628
+ * 취득학점
629
+ */
630
+ earnedCredits: /*f32*/ number;
631
+ /**
632
+ * 평점계
633
+ */
634
+ gradePointsSum: /*f32*/ number;
635
+ /**
636
+ * 평점평균
637
+ */
638
+ gradePointsAverage: /*f32*/ number;
639
+ /**
640
+ * 산술평균
641
+ */
642
+ arithmeticMean: /*f32*/ number;
643
+ /**
644
+ * P/F 학점계
645
+ */
646
+ pfEarnedCredits: /*f32*/ number;
647
+ };
648
+
649
+ /**
650
+ * Generated factory for {@link GradeSummary} record objects.
651
+ */
652
+ export const GradeSummary = (() => {
653
+ const defaults = () => ({});
654
+ const create = (() => {
655
+ return uniffiCreateRecord<GradeSummary, ReturnType<typeof defaults>>(
656
+ defaults
657
+ );
658
+ })();
659
+ return Object.freeze({
660
+ /**
661
+ * Create a frozen instance of {@link GradeSummary}, with defaults specified
662
+ * in Rust, in the {@link rusaint} crate.
663
+ */
664
+ create,
665
+
666
+ /**
667
+ * Create a frozen instance of {@link GradeSummary}, with defaults specified
668
+ * in Rust, in the {@link rusaint} crate.
669
+ */
670
+ new: create,
671
+
672
+ /**
673
+ * Defaults specified in the {@link rusaint} crate.
674
+ */
675
+ defaults: () => Object.freeze(defaults()) as Partial<GradeSummary>,
676
+ });
677
+ })();
678
+
679
+ const FfiConverterTypeGradeSummary = (() => {
680
+ type TypeName = GradeSummary;
681
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
682
+ read(from: RustBuffer): TypeName {
683
+ return {
684
+ attemptedCredits: FfiConverterFloat32.read(from),
685
+ earnedCredits: FfiConverterFloat32.read(from),
686
+ gradePointsSum: FfiConverterFloat32.read(from),
687
+ gradePointsAverage: FfiConverterFloat32.read(from),
688
+ arithmeticMean: FfiConverterFloat32.read(from),
689
+ pfEarnedCredits: FfiConverterFloat32.read(from),
690
+ };
691
+ }
692
+ write(value: TypeName, into: RustBuffer): void {
693
+ FfiConverterFloat32.write(value.attemptedCredits, into);
694
+ FfiConverterFloat32.write(value.earnedCredits, into);
695
+ FfiConverterFloat32.write(value.gradePointsSum, into);
696
+ FfiConverterFloat32.write(value.gradePointsAverage, into);
697
+ FfiConverterFloat32.write(value.arithmeticMean, into);
698
+ FfiConverterFloat32.write(value.pfEarnedCredits, into);
699
+ }
700
+ allocationSize(value: TypeName): number {
701
+ return (
702
+ FfiConverterFloat32.allocationSize(value.attemptedCredits) +
703
+ FfiConverterFloat32.allocationSize(value.earnedCredits) +
704
+ FfiConverterFloat32.allocationSize(value.gradePointsSum) +
705
+ FfiConverterFloat32.allocationSize(value.gradePointsAverage) +
706
+ FfiConverterFloat32.allocationSize(value.arithmeticMean) +
707
+ FfiConverterFloat32.allocationSize(value.pfEarnedCredits)
708
+ );
709
+ }
710
+ }
711
+ return new FFIConverter();
712
+ })();
713
+
714
+ /**
715
+ * 졸업 요건
716
+ */
717
+ export type GraduationRequirement = {
718
+ name: string;
719
+ requirement: /*u32*/ number | undefined;
720
+ calcuation: /*f32*/ number | undefined;
721
+ difference: /*f32*/ number | undefined;
722
+ result: boolean;
723
+ category: string;
724
+ lectures: Array<string>;
725
+ };
726
+
727
+ /**
728
+ * Generated factory for {@link GraduationRequirement} record objects.
729
+ */
730
+ export const GraduationRequirement = (() => {
731
+ const defaults = () => ({});
732
+ const create = (() => {
733
+ return uniffiCreateRecord<
734
+ GraduationRequirement,
735
+ ReturnType<typeof defaults>
736
+ >(defaults);
737
+ })();
738
+ return Object.freeze({
739
+ /**
740
+ * Create a frozen instance of {@link GraduationRequirement}, with defaults specified
741
+ * in Rust, in the {@link rusaint} crate.
742
+ */
743
+ create,
744
+
745
+ /**
746
+ * Create a frozen instance of {@link GraduationRequirement}, with defaults specified
747
+ * in Rust, in the {@link rusaint} crate.
748
+ */
749
+ new: create,
750
+
751
+ /**
752
+ * Defaults specified in the {@link rusaint} crate.
753
+ */
754
+ defaults: () => Object.freeze(defaults()) as Partial<GraduationRequirement>,
755
+ });
756
+ })();
757
+
758
+ const FfiConverterTypeGraduationRequirement = (() => {
759
+ type TypeName = GraduationRequirement;
760
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
761
+ read(from: RustBuffer): TypeName {
762
+ return {
763
+ name: FfiConverterString.read(from),
764
+ requirement: FfiConverterOptionalUInt32.read(from),
765
+ calcuation: FfiConverterOptionalFloat32.read(from),
766
+ difference: FfiConverterOptionalFloat32.read(from),
767
+ result: FfiConverterBool.read(from),
768
+ category: FfiConverterString.read(from),
769
+ lectures: FfiConverterArrayString.read(from),
770
+ };
771
+ }
772
+ write(value: TypeName, into: RustBuffer): void {
773
+ FfiConverterString.write(value.name, into);
774
+ FfiConverterOptionalUInt32.write(value.requirement, into);
775
+ FfiConverterOptionalFloat32.write(value.calcuation, into);
776
+ FfiConverterOptionalFloat32.write(value.difference, into);
777
+ FfiConverterBool.write(value.result, into);
778
+ FfiConverterString.write(value.category, into);
779
+ FfiConverterArrayString.write(value.lectures, into);
780
+ }
781
+ allocationSize(value: TypeName): number {
782
+ return (
783
+ FfiConverterString.allocationSize(value.name) +
784
+ FfiConverterOptionalUInt32.allocationSize(value.requirement) +
785
+ FfiConverterOptionalFloat32.allocationSize(value.calcuation) +
786
+ FfiConverterOptionalFloat32.allocationSize(value.difference) +
787
+ FfiConverterBool.allocationSize(value.result) +
788
+ FfiConverterString.allocationSize(value.category) +
789
+ FfiConverterArrayString.allocationSize(value.lectures)
790
+ );
791
+ }
792
+ }
793
+ return new FFIConverter();
794
+ })();
795
+
796
+ /**
797
+ * 전체 졸업 요건 정보
798
+ */
799
+ export type GraduationRequirements = {
800
+ isGraduatable: boolean;
801
+ requirements: Map<string, GraduationRequirement>;
802
+ };
803
+
804
+ /**
805
+ * Generated factory for {@link GraduationRequirements} record objects.
806
+ */
807
+ export const GraduationRequirements = (() => {
808
+ const defaults = () => ({});
809
+ const create = (() => {
810
+ return uniffiCreateRecord<
811
+ GraduationRequirements,
812
+ ReturnType<typeof defaults>
813
+ >(defaults);
814
+ })();
815
+ return Object.freeze({
816
+ /**
817
+ * Create a frozen instance of {@link GraduationRequirements}, with defaults specified
818
+ * in Rust, in the {@link rusaint} crate.
819
+ */
820
+ create,
821
+
822
+ /**
823
+ * Create a frozen instance of {@link GraduationRequirements}, with defaults specified
824
+ * in Rust, in the {@link rusaint} crate.
825
+ */
826
+ new: create,
827
+
828
+ /**
829
+ * Defaults specified in the {@link rusaint} crate.
830
+ */
831
+ defaults: () =>
832
+ Object.freeze(defaults()) as Partial<GraduationRequirements>,
833
+ });
834
+ })();
835
+
836
+ const FfiConverterTypeGraduationRequirements = (() => {
837
+ type TypeName = GraduationRequirements;
838
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
839
+ read(from: RustBuffer): TypeName {
840
+ return {
841
+ isGraduatable: FfiConverterBool.read(from),
842
+ requirements: FfiConverterMapStringTypeGraduationRequirement.read(from),
843
+ };
844
+ }
845
+ write(value: TypeName, into: RustBuffer): void {
846
+ FfiConverterBool.write(value.isGraduatable, into);
847
+ FfiConverterMapStringTypeGraduationRequirement.write(
848
+ value.requirements,
849
+ into
850
+ );
851
+ }
852
+ allocationSize(value: TypeName): number {
853
+ return (
854
+ FfiConverterBool.allocationSize(value.isGraduatable) +
855
+ FfiConverterMapStringTypeGraduationRequirement.allocationSize(
856
+ value.requirements
857
+ )
858
+ );
859
+ }
860
+ }
861
+ return new FFIConverter();
862
+ })();
863
+
864
+ /**
865
+ * 졸업 학생 정보
866
+ */
867
+ export type GraduationStudent = {
868
+ number: /*u32*/ number;
869
+ name: string;
870
+ grade: /*u32*/ number;
871
+ semester: /*u32*/ number;
872
+ status: string;
873
+ applyYear: /*u32*/ number;
874
+ applyType: string;
875
+ department: string;
876
+ majors: Array<string>;
877
+ auditDate: string;
878
+ graduationPoints: /*f32*/ number;
879
+ completedPoints: /*f32*/ number;
880
+ };
881
+
882
+ /**
883
+ * Generated factory for {@link GraduationStudent} record objects.
884
+ */
885
+ export const GraduationStudent = (() => {
886
+ const defaults = () => ({});
887
+ const create = (() => {
888
+ return uniffiCreateRecord<GraduationStudent, ReturnType<typeof defaults>>(
889
+ defaults
890
+ );
891
+ })();
892
+ return Object.freeze({
893
+ /**
894
+ * Create a frozen instance of {@link GraduationStudent}, with defaults specified
895
+ * in Rust, in the {@link rusaint} crate.
896
+ */
897
+ create,
898
+
899
+ /**
900
+ * Create a frozen instance of {@link GraduationStudent}, with defaults specified
901
+ * in Rust, in the {@link rusaint} crate.
902
+ */
903
+ new: create,
904
+
905
+ /**
906
+ * Defaults specified in the {@link rusaint} crate.
907
+ */
908
+ defaults: () => Object.freeze(defaults()) as Partial<GraduationStudent>,
909
+ });
910
+ })();
911
+
912
+ const FfiConverterTypeGraduationStudent = (() => {
913
+ type TypeName = GraduationStudent;
914
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
915
+ read(from: RustBuffer): TypeName {
916
+ return {
917
+ number: FfiConverterUInt32.read(from),
918
+ name: FfiConverterString.read(from),
919
+ grade: FfiConverterUInt32.read(from),
920
+ semester: FfiConverterUInt32.read(from),
921
+ status: FfiConverterString.read(from),
922
+ applyYear: FfiConverterUInt32.read(from),
923
+ applyType: FfiConverterString.read(from),
924
+ department: FfiConverterString.read(from),
925
+ majors: FfiConverterArrayString.read(from),
926
+ auditDate: FfiConverterString.read(from),
927
+ graduationPoints: FfiConverterFloat32.read(from),
928
+ completedPoints: FfiConverterFloat32.read(from),
929
+ };
930
+ }
931
+ write(value: TypeName, into: RustBuffer): void {
932
+ FfiConverterUInt32.write(value.number, into);
933
+ FfiConverterString.write(value.name, into);
934
+ FfiConverterUInt32.write(value.grade, into);
935
+ FfiConverterUInt32.write(value.semester, into);
936
+ FfiConverterString.write(value.status, into);
937
+ FfiConverterUInt32.write(value.applyYear, into);
938
+ FfiConverterString.write(value.applyType, into);
939
+ FfiConverterString.write(value.department, into);
940
+ FfiConverterArrayString.write(value.majors, into);
941
+ FfiConverterString.write(value.auditDate, into);
942
+ FfiConverterFloat32.write(value.graduationPoints, into);
943
+ FfiConverterFloat32.write(value.completedPoints, into);
944
+ }
945
+ allocationSize(value: TypeName): number {
946
+ return (
947
+ FfiConverterUInt32.allocationSize(value.number) +
948
+ FfiConverterString.allocationSize(value.name) +
949
+ FfiConverterUInt32.allocationSize(value.grade) +
950
+ FfiConverterUInt32.allocationSize(value.semester) +
951
+ FfiConverterString.allocationSize(value.status) +
952
+ FfiConverterUInt32.allocationSize(value.applyYear) +
953
+ FfiConverterString.allocationSize(value.applyType) +
954
+ FfiConverterString.allocationSize(value.department) +
955
+ FfiConverterArrayString.allocationSize(value.majors) +
956
+ FfiConverterString.allocationSize(value.auditDate) +
957
+ FfiConverterFloat32.allocationSize(value.graduationPoints) +
958
+ FfiConverterFloat32.allocationSize(value.completedPoints)
959
+ );
960
+ }
961
+ }
962
+ return new FFIConverter();
963
+ })();
964
+
965
+ /**
966
+ * 과목 정보
967
+ */
968
+ export type Lecture = {
969
+ /**
970
+ * 계획
971
+ */
972
+ syllabus: string | undefined;
973
+ /**
974
+ * 이수구분(주전공)
975
+ */
976
+ category: string;
977
+ /**
978
+ * 이수구분(다전공)
979
+ */
980
+ subCategory: string | undefined;
981
+ /**
982
+ * 공학인증
983
+ */
984
+ abeekInfo: string | undefined;
985
+ /**
986
+ * 교과영역
987
+ */
988
+ field: string | undefined;
989
+ /**
990
+ * 과목번호
991
+ */
992
+ code: string;
993
+ /**
994
+ * 과목명
995
+ */
996
+ name: string;
997
+ /**
998
+ * 분반
999
+ */
1000
+ division: string | undefined;
1001
+ /**
1002
+ * 교수명
1003
+ */
1004
+ professor: string;
1005
+ /**
1006
+ * 개설학과
1007
+ */
1008
+ department: string;
1009
+ /**
1010
+ * 시간/학점(설계)
1011
+ */
1012
+ timePoints: string;
1013
+ /**
1014
+ * 수강인원
1015
+ */
1016
+ personeel: string;
1017
+ /**
1018
+ * 여석
1019
+ */
1020
+ remainingSeats: string;
1021
+ /**
1022
+ * 강의시간(강의실)
1023
+ */
1024
+ scheduleRoom: string;
1025
+ /**
1026
+ * 수강대상
1027
+ */
1028
+ target: string;
1029
+ };
1030
+
1031
+ /**
1032
+ * Generated factory for {@link Lecture} record objects.
1033
+ */
1034
+ export const Lecture = (() => {
1035
+ const defaults = () => ({});
1036
+ const create = (() => {
1037
+ return uniffiCreateRecord<Lecture, ReturnType<typeof defaults>>(defaults);
1038
+ })();
1039
+ return Object.freeze({
1040
+ /**
1041
+ * Create a frozen instance of {@link Lecture}, with defaults specified
1042
+ * in Rust, in the {@link rusaint} crate.
1043
+ */
1044
+ create,
1045
+
1046
+ /**
1047
+ * Create a frozen instance of {@link Lecture}, with defaults specified
1048
+ * in Rust, in the {@link rusaint} crate.
1049
+ */
1050
+ new: create,
1051
+
1052
+ /**
1053
+ * Defaults specified in the {@link rusaint} crate.
1054
+ */
1055
+ defaults: () => Object.freeze(defaults()) as Partial<Lecture>,
1056
+ });
1057
+ })();
1058
+
1059
+ const FfiConverterTypeLecture = (() => {
1060
+ type TypeName = Lecture;
1061
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1062
+ read(from: RustBuffer): TypeName {
1063
+ return {
1064
+ syllabus: FfiConverterOptionalString.read(from),
1065
+ category: FfiConverterString.read(from),
1066
+ subCategory: FfiConverterOptionalString.read(from),
1067
+ abeekInfo: FfiConverterOptionalString.read(from),
1068
+ field: FfiConverterOptionalString.read(from),
1069
+ code: FfiConverterString.read(from),
1070
+ name: FfiConverterString.read(from),
1071
+ division: FfiConverterOptionalString.read(from),
1072
+ professor: FfiConverterString.read(from),
1073
+ department: FfiConverterString.read(from),
1074
+ timePoints: FfiConverterString.read(from),
1075
+ personeel: FfiConverterString.read(from),
1076
+ remainingSeats: FfiConverterString.read(from),
1077
+ scheduleRoom: FfiConverterString.read(from),
1078
+ target: FfiConverterString.read(from),
1079
+ };
1080
+ }
1081
+ write(value: TypeName, into: RustBuffer): void {
1082
+ FfiConverterOptionalString.write(value.syllabus, into);
1083
+ FfiConverterString.write(value.category, into);
1084
+ FfiConverterOptionalString.write(value.subCategory, into);
1085
+ FfiConverterOptionalString.write(value.abeekInfo, into);
1086
+ FfiConverterOptionalString.write(value.field, into);
1087
+ FfiConverterString.write(value.code, into);
1088
+ FfiConverterString.write(value.name, into);
1089
+ FfiConverterOptionalString.write(value.division, into);
1090
+ FfiConverterString.write(value.professor, into);
1091
+ FfiConverterString.write(value.department, into);
1092
+ FfiConverterString.write(value.timePoints, into);
1093
+ FfiConverterString.write(value.personeel, into);
1094
+ FfiConverterString.write(value.remainingSeats, into);
1095
+ FfiConverterString.write(value.scheduleRoom, into);
1096
+ FfiConverterString.write(value.target, into);
1097
+ }
1098
+ allocationSize(value: TypeName): number {
1099
+ return (
1100
+ FfiConverterOptionalString.allocationSize(value.syllabus) +
1101
+ FfiConverterString.allocationSize(value.category) +
1102
+ FfiConverterOptionalString.allocationSize(value.subCategory) +
1103
+ FfiConverterOptionalString.allocationSize(value.abeekInfo) +
1104
+ FfiConverterOptionalString.allocationSize(value.field) +
1105
+ FfiConverterString.allocationSize(value.code) +
1106
+ FfiConverterString.allocationSize(value.name) +
1107
+ FfiConverterOptionalString.allocationSize(value.division) +
1108
+ FfiConverterString.allocationSize(value.professor) +
1109
+ FfiConverterString.allocationSize(value.department) +
1110
+ FfiConverterString.allocationSize(value.timePoints) +
1111
+ FfiConverterString.allocationSize(value.personeel) +
1112
+ FfiConverterString.allocationSize(value.remainingSeats) +
1113
+ FfiConverterString.allocationSize(value.scheduleRoom) +
1114
+ FfiConverterString.allocationSize(value.target)
1115
+ );
1116
+ }
1117
+ }
1118
+ return new FFIConverter();
1119
+ })();
1120
+
1121
+ /**
1122
+ * 강의평가 결과
1123
+ */
1124
+ export type LectureAssessmentResult = {
1125
+ year: string;
1126
+ semester: SemesterType;
1127
+ lectureCode: /*u32*/ number;
1128
+ lectureName: string;
1129
+ points: /*f32*/ number;
1130
+ professor: string;
1131
+ collage: string;
1132
+ department: string;
1133
+ position: string;
1134
+ score: /*f32*/ number;
1135
+ };
1136
+
1137
+ /**
1138
+ * Generated factory for {@link LectureAssessmentResult} record objects.
1139
+ */
1140
+ export const LectureAssessmentResult = (() => {
1141
+ const defaults = () => ({});
1142
+ const create = (() => {
1143
+ return uniffiCreateRecord<
1144
+ LectureAssessmentResult,
1145
+ ReturnType<typeof defaults>
1146
+ >(defaults);
1147
+ })();
1148
+ return Object.freeze({
1149
+ /**
1150
+ * Create a frozen instance of {@link LectureAssessmentResult}, with defaults specified
1151
+ * in Rust, in the {@link rusaint} crate.
1152
+ */
1153
+ create,
1154
+
1155
+ /**
1156
+ * Create a frozen instance of {@link LectureAssessmentResult}, with defaults specified
1157
+ * in Rust, in the {@link rusaint} crate.
1158
+ */
1159
+ new: create,
1160
+
1161
+ /**
1162
+ * Defaults specified in the {@link rusaint} crate.
1163
+ */
1164
+ defaults: () =>
1165
+ Object.freeze(defaults()) as Partial<LectureAssessmentResult>,
1166
+ });
1167
+ })();
1168
+
1169
+ const FfiConverterTypeLectureAssessmentResult = (() => {
1170
+ type TypeName = LectureAssessmentResult;
1171
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1172
+ read(from: RustBuffer): TypeName {
1173
+ return {
1174
+ year: FfiConverterString.read(from),
1175
+ semester: FfiConverterTypeSemesterType.read(from),
1176
+ lectureCode: FfiConverterUInt32.read(from),
1177
+ lectureName: FfiConverterString.read(from),
1178
+ points: FfiConverterFloat32.read(from),
1179
+ professor: FfiConverterString.read(from),
1180
+ collage: FfiConverterString.read(from),
1181
+ department: FfiConverterString.read(from),
1182
+ position: FfiConverterString.read(from),
1183
+ score: FfiConverterFloat32.read(from),
1184
+ };
1185
+ }
1186
+ write(value: TypeName, into: RustBuffer): void {
1187
+ FfiConverterString.write(value.year, into);
1188
+ FfiConverterTypeSemesterType.write(value.semester, into);
1189
+ FfiConverterUInt32.write(value.lectureCode, into);
1190
+ FfiConverterString.write(value.lectureName, into);
1191
+ FfiConverterFloat32.write(value.points, into);
1192
+ FfiConverterString.write(value.professor, into);
1193
+ FfiConverterString.write(value.collage, into);
1194
+ FfiConverterString.write(value.department, into);
1195
+ FfiConverterString.write(value.position, into);
1196
+ FfiConverterFloat32.write(value.score, into);
1197
+ }
1198
+ allocationSize(value: TypeName): number {
1199
+ return (
1200
+ FfiConverterString.allocationSize(value.year) +
1201
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
1202
+ FfiConverterUInt32.allocationSize(value.lectureCode) +
1203
+ FfiConverterString.allocationSize(value.lectureName) +
1204
+ FfiConverterFloat32.allocationSize(value.points) +
1205
+ FfiConverterString.allocationSize(value.professor) +
1206
+ FfiConverterString.allocationSize(value.collage) +
1207
+ FfiConverterString.allocationSize(value.department) +
1208
+ FfiConverterString.allocationSize(value.position) +
1209
+ FfiConverterFloat32.allocationSize(value.score)
1210
+ );
1211
+ }
1212
+ }
1213
+ return new FFIConverter();
1214
+ })();
1215
+
1216
+ /**
1217
+ * 개인의 수업 시간표 정보를 조회합니다.
1218
+ */
1219
+ export type PersonalCourseSchedule = {
1220
+ schedule: Map<Weekday, Array<CourseScheduleInformation>>;
1221
+ };
1222
+
1223
+ /**
1224
+ * Generated factory for {@link PersonalCourseSchedule} record objects.
1225
+ */
1226
+ export const PersonalCourseSchedule = (() => {
1227
+ const defaults = () => ({});
1228
+ const create = (() => {
1229
+ return uniffiCreateRecord<
1230
+ PersonalCourseSchedule,
1231
+ ReturnType<typeof defaults>
1232
+ >(defaults);
1233
+ })();
1234
+ return Object.freeze({
1235
+ /**
1236
+ * Create a frozen instance of {@link PersonalCourseSchedule}, with defaults specified
1237
+ * in Rust, in the {@link rusaint} crate.
1238
+ */
1239
+ create,
1240
+
1241
+ /**
1242
+ * Create a frozen instance of {@link PersonalCourseSchedule}, with defaults specified
1243
+ * in Rust, in the {@link rusaint} crate.
1244
+ */
1245
+ new: create,
1246
+
1247
+ /**
1248
+ * Defaults specified in the {@link rusaint} crate.
1249
+ */
1250
+ defaults: () =>
1251
+ Object.freeze(defaults()) as Partial<PersonalCourseSchedule>,
1252
+ });
1253
+ })();
1254
+
1255
+ const FfiConverterTypePersonalCourseSchedule = (() => {
1256
+ type TypeName = PersonalCourseSchedule;
1257
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1258
+ read(from: RustBuffer): TypeName {
1259
+ return {
1260
+ schedule:
1261
+ FfiConverterMapTypeWeekdayArrayTypeCourseScheduleInformation.read(
1262
+ from
1263
+ ),
1264
+ };
1265
+ }
1266
+ write(value: TypeName, into: RustBuffer): void {
1267
+ FfiConverterMapTypeWeekdayArrayTypeCourseScheduleInformation.write(
1268
+ value.schedule,
1269
+ into
1270
+ );
1271
+ }
1272
+ allocationSize(value: TypeName): number {
1273
+ return FfiConverterMapTypeWeekdayArrayTypeCourseScheduleInformation.allocationSize(
1274
+ value.schedule
1275
+ );
1276
+ }
1277
+ }
1278
+ return new FFIConverter();
1279
+ })();
1280
+
1281
+ /**
1282
+ * 수혜받은 장학금 정보
1283
+ */
1284
+ export type Scholarship = {
1285
+ year: /*u32*/ number;
1286
+ semester: SemesterType;
1287
+ name: string;
1288
+ receivedAmount: /*u64*/ bigint;
1289
+ receiveType: string;
1290
+ status: string;
1291
+ processedAt: string;
1292
+ selectedAmount: /*u64*/ bigint;
1293
+ refundedAmount: /*u64*/ bigint;
1294
+ replacedAmount: /*u64*/ bigint;
1295
+ replacedBy: string;
1296
+ dropReason: string;
1297
+ note: string;
1298
+ workedAt: string;
1299
+ };
1300
+
1301
+ /**
1302
+ * Generated factory for {@link Scholarship} record objects.
1303
+ */
1304
+ export const Scholarship = (() => {
1305
+ const defaults = () => ({});
1306
+ const create = (() => {
1307
+ return uniffiCreateRecord<Scholarship, ReturnType<typeof defaults>>(
1308
+ defaults
1309
+ );
1310
+ })();
1311
+ return Object.freeze({
1312
+ /**
1313
+ * Create a frozen instance of {@link Scholarship}, with defaults specified
1314
+ * in Rust, in the {@link rusaint} crate.
1315
+ */
1316
+ create,
1317
+
1318
+ /**
1319
+ * Create a frozen instance of {@link Scholarship}, with defaults specified
1320
+ * in Rust, in the {@link rusaint} crate.
1321
+ */
1322
+ new: create,
1323
+
1324
+ /**
1325
+ * Defaults specified in the {@link rusaint} crate.
1326
+ */
1327
+ defaults: () => Object.freeze(defaults()) as Partial<Scholarship>,
1328
+ });
1329
+ })();
1330
+
1331
+ const FfiConverterTypeScholarship = (() => {
1332
+ type TypeName = Scholarship;
1333
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1334
+ read(from: RustBuffer): TypeName {
1335
+ return {
1336
+ year: FfiConverterUInt32.read(from),
1337
+ semester: FfiConverterTypeSemesterType.read(from),
1338
+ name: FfiConverterString.read(from),
1339
+ receivedAmount: FfiConverterUInt64.read(from),
1340
+ receiveType: FfiConverterString.read(from),
1341
+ status: FfiConverterString.read(from),
1342
+ processedAt: FfiConverterString.read(from),
1343
+ selectedAmount: FfiConverterUInt64.read(from),
1344
+ refundedAmount: FfiConverterUInt64.read(from),
1345
+ replacedAmount: FfiConverterUInt64.read(from),
1346
+ replacedBy: FfiConverterString.read(from),
1347
+ dropReason: FfiConverterString.read(from),
1348
+ note: FfiConverterString.read(from),
1349
+ workedAt: FfiConverterString.read(from),
1350
+ };
1351
+ }
1352
+ write(value: TypeName, into: RustBuffer): void {
1353
+ FfiConverterUInt32.write(value.year, into);
1354
+ FfiConverterTypeSemesterType.write(value.semester, into);
1355
+ FfiConverterString.write(value.name, into);
1356
+ FfiConverterUInt64.write(value.receivedAmount, into);
1357
+ FfiConverterString.write(value.receiveType, into);
1358
+ FfiConverterString.write(value.status, into);
1359
+ FfiConverterString.write(value.processedAt, into);
1360
+ FfiConverterUInt64.write(value.selectedAmount, into);
1361
+ FfiConverterUInt64.write(value.refundedAmount, into);
1362
+ FfiConverterUInt64.write(value.replacedAmount, into);
1363
+ FfiConverterString.write(value.replacedBy, into);
1364
+ FfiConverterString.write(value.dropReason, into);
1365
+ FfiConverterString.write(value.note, into);
1366
+ FfiConverterString.write(value.workedAt, into);
1367
+ }
1368
+ allocationSize(value: TypeName): number {
1369
+ return (
1370
+ FfiConverterUInt32.allocationSize(value.year) +
1371
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
1372
+ FfiConverterString.allocationSize(value.name) +
1373
+ FfiConverterUInt64.allocationSize(value.receivedAmount) +
1374
+ FfiConverterString.allocationSize(value.receiveType) +
1375
+ FfiConverterString.allocationSize(value.status) +
1376
+ FfiConverterString.allocationSize(value.processedAt) +
1377
+ FfiConverterUInt64.allocationSize(value.selectedAmount) +
1378
+ FfiConverterUInt64.allocationSize(value.refundedAmount) +
1379
+ FfiConverterUInt64.allocationSize(value.replacedAmount) +
1380
+ FfiConverterString.allocationSize(value.replacedBy) +
1381
+ FfiConverterString.allocationSize(value.dropReason) +
1382
+ FfiConverterString.allocationSize(value.note) +
1383
+ FfiConverterString.allocationSize(value.workedAt)
1384
+ );
1385
+ }
1386
+ }
1387
+ return new FFIConverter();
1388
+ })();
1389
+
1390
+ /**
1391
+ * 학기별 성적
1392
+ */
1393
+ export type SemesterGrade = {
1394
+ /**
1395
+ * 학년도
1396
+ */
1397
+ year: /*u32*/ number;
1398
+ /**
1399
+ * 학기
1400
+ */
1401
+ semester: SemesterType;
1402
+ /**
1403
+ * 신청학점
1404
+ */
1405
+ attemptedCredits: /*f32*/ number;
1406
+ /**
1407
+ * 취득학점
1408
+ */
1409
+ earnedCredits: /*f32*/ number;
1410
+ /**
1411
+ * P/F학점
1412
+ */
1413
+ pfEarnedCredits: /*f32*/ number;
1414
+ /**
1415
+ * 평점평균
1416
+ */
1417
+ gradePointsAverage: /*f32*/ number;
1418
+ /**
1419
+ * 평점계
1420
+ */
1421
+ gradePointsSum: /*f32*/ number;
1422
+ /**
1423
+ * 산술평균
1424
+ */
1425
+ arithmeticMean: /*f32*/ number;
1426
+ /**
1427
+ * 학기별석차
1428
+ */
1429
+ semesterRank: U32Pair;
1430
+ /**
1431
+ * 전체석차
1432
+ */
1433
+ generalRank: U32Pair;
1434
+ /**
1435
+ * 학사경고
1436
+ */
1437
+ academicProbation: boolean;
1438
+ /**
1439
+ * 상담여부
1440
+ */
1441
+ consult: boolean;
1442
+ /**
1443
+ * 유급
1444
+ */
1445
+ flunked: boolean;
1446
+ };
1447
+
1448
+ /**
1449
+ * Generated factory for {@link SemesterGrade} record objects.
1450
+ */
1451
+ export const SemesterGrade = (() => {
1452
+ const defaults = () => ({});
1453
+ const create = (() => {
1454
+ return uniffiCreateRecord<SemesterGrade, ReturnType<typeof defaults>>(
1455
+ defaults
1456
+ );
1457
+ })();
1458
+ return Object.freeze({
1459
+ /**
1460
+ * Create a frozen instance of {@link SemesterGrade}, with defaults specified
1461
+ * in Rust, in the {@link rusaint} crate.
1462
+ */
1463
+ create,
1464
+
1465
+ /**
1466
+ * Create a frozen instance of {@link SemesterGrade}, with defaults specified
1467
+ * in Rust, in the {@link rusaint} crate.
1468
+ */
1469
+ new: create,
1470
+
1471
+ /**
1472
+ * Defaults specified in the {@link rusaint} crate.
1473
+ */
1474
+ defaults: () => Object.freeze(defaults()) as Partial<SemesterGrade>,
1475
+ });
1476
+ })();
1477
+
1478
+ const FfiConverterTypeSemesterGrade = (() => {
1479
+ type TypeName = SemesterGrade;
1480
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1481
+ read(from: RustBuffer): TypeName {
1482
+ return {
1483
+ year: FfiConverterUInt32.read(from),
1484
+ semester: FfiConverterTypeSemesterType.read(from),
1485
+ attemptedCredits: FfiConverterFloat32.read(from),
1486
+ earnedCredits: FfiConverterFloat32.read(from),
1487
+ pfEarnedCredits: FfiConverterFloat32.read(from),
1488
+ gradePointsAverage: FfiConverterFloat32.read(from),
1489
+ gradePointsSum: FfiConverterFloat32.read(from),
1490
+ arithmeticMean: FfiConverterFloat32.read(from),
1491
+ semesterRank: FfiConverterTypeU32Pair.read(from),
1492
+ generalRank: FfiConverterTypeU32Pair.read(from),
1493
+ academicProbation: FfiConverterBool.read(from),
1494
+ consult: FfiConverterBool.read(from),
1495
+ flunked: FfiConverterBool.read(from),
1496
+ };
1497
+ }
1498
+ write(value: TypeName, into: RustBuffer): void {
1499
+ FfiConverterUInt32.write(value.year, into);
1500
+ FfiConverterTypeSemesterType.write(value.semester, into);
1501
+ FfiConverterFloat32.write(value.attemptedCredits, into);
1502
+ FfiConverterFloat32.write(value.earnedCredits, into);
1503
+ FfiConverterFloat32.write(value.pfEarnedCredits, into);
1504
+ FfiConverterFloat32.write(value.gradePointsAverage, into);
1505
+ FfiConverterFloat32.write(value.gradePointsSum, into);
1506
+ FfiConverterFloat32.write(value.arithmeticMean, into);
1507
+ FfiConverterTypeU32Pair.write(value.semesterRank, into);
1508
+ FfiConverterTypeU32Pair.write(value.generalRank, into);
1509
+ FfiConverterBool.write(value.academicProbation, into);
1510
+ FfiConverterBool.write(value.consult, into);
1511
+ FfiConverterBool.write(value.flunked, into);
1512
+ }
1513
+ allocationSize(value: TypeName): number {
1514
+ return (
1515
+ FfiConverterUInt32.allocationSize(value.year) +
1516
+ FfiConverterTypeSemesterType.allocationSize(value.semester) +
1517
+ FfiConverterFloat32.allocationSize(value.attemptedCredits) +
1518
+ FfiConverterFloat32.allocationSize(value.earnedCredits) +
1519
+ FfiConverterFloat32.allocationSize(value.pfEarnedCredits) +
1520
+ FfiConverterFloat32.allocationSize(value.gradePointsAverage) +
1521
+ FfiConverterFloat32.allocationSize(value.gradePointsSum) +
1522
+ FfiConverterFloat32.allocationSize(value.arithmeticMean) +
1523
+ FfiConverterTypeU32Pair.allocationSize(value.semesterRank) +
1524
+ FfiConverterTypeU32Pair.allocationSize(value.generalRank) +
1525
+ FfiConverterBool.allocationSize(value.academicProbation) +
1526
+ FfiConverterBool.allocationSize(value.consult) +
1527
+ FfiConverterBool.allocationSize(value.flunked)
1528
+ );
1529
+ }
1530
+ }
1531
+ return new FFIConverter();
1532
+ })();
1533
+
1534
+ /**
1535
+ * 학생의 학적상태 기록
1536
+ */
1537
+ export type StudentAcademicRecord = {
1538
+ startDate: string;
1539
+ endDate: string;
1540
+ year: string;
1541
+ term: string;
1542
+ category: string;
1543
+ reason: string;
1544
+ processDate: string;
1545
+ };
1546
+
1547
+ /**
1548
+ * Generated factory for {@link StudentAcademicRecord} record objects.
1549
+ */
1550
+ export const StudentAcademicRecord = (() => {
1551
+ const defaults = () => ({});
1552
+ const create = (() => {
1553
+ return uniffiCreateRecord<
1554
+ StudentAcademicRecord,
1555
+ ReturnType<typeof defaults>
1556
+ >(defaults);
1557
+ })();
1558
+ return Object.freeze({
1559
+ /**
1560
+ * Create a frozen instance of {@link StudentAcademicRecord}, with defaults specified
1561
+ * in Rust, in the {@link rusaint} crate.
1562
+ */
1563
+ create,
1564
+
1565
+ /**
1566
+ * Create a frozen instance of {@link StudentAcademicRecord}, with defaults specified
1567
+ * in Rust, in the {@link rusaint} crate.
1568
+ */
1569
+ new: create,
1570
+
1571
+ /**
1572
+ * Defaults specified in the {@link rusaint} crate.
1573
+ */
1574
+ defaults: () => Object.freeze(defaults()) as Partial<StudentAcademicRecord>,
1575
+ });
1576
+ })();
1577
+
1578
+ const FfiConverterTypeStudentAcademicRecord = (() => {
1579
+ type TypeName = StudentAcademicRecord;
1580
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1581
+ read(from: RustBuffer): TypeName {
1582
+ return {
1583
+ startDate: FfiConverterString.read(from),
1584
+ endDate: FfiConverterString.read(from),
1585
+ year: FfiConverterString.read(from),
1586
+ term: FfiConverterString.read(from),
1587
+ category: FfiConverterString.read(from),
1588
+ reason: FfiConverterString.read(from),
1589
+ processDate: FfiConverterString.read(from),
1590
+ };
1591
+ }
1592
+ write(value: TypeName, into: RustBuffer): void {
1593
+ FfiConverterString.write(value.startDate, into);
1594
+ FfiConverterString.write(value.endDate, into);
1595
+ FfiConverterString.write(value.year, into);
1596
+ FfiConverterString.write(value.term, into);
1597
+ FfiConverterString.write(value.category, into);
1598
+ FfiConverterString.write(value.reason, into);
1599
+ FfiConverterString.write(value.processDate, into);
1600
+ }
1601
+ allocationSize(value: TypeName): number {
1602
+ return (
1603
+ FfiConverterString.allocationSize(value.startDate) +
1604
+ FfiConverterString.allocationSize(value.endDate) +
1605
+ FfiConverterString.allocationSize(value.year) +
1606
+ FfiConverterString.allocationSize(value.term) +
1607
+ FfiConverterString.allocationSize(value.category) +
1608
+ FfiConverterString.allocationSize(value.reason) +
1609
+ FfiConverterString.allocationSize(value.processDate)
1610
+ );
1611
+ }
1612
+ }
1613
+ return new FFIConverter();
1614
+ })();
1615
+
1616
+ /**
1617
+ * 학생의 학적상태 정보
1618
+ */
1619
+ export type StudentAcademicRecords = {
1620
+ records: Array<StudentAcademicRecord>;
1621
+ };
1622
+
1623
+ /**
1624
+ * Generated factory for {@link StudentAcademicRecords} record objects.
1625
+ */
1626
+ export const StudentAcademicRecords = (() => {
1627
+ const defaults = () => ({});
1628
+ const create = (() => {
1629
+ return uniffiCreateRecord<
1630
+ StudentAcademicRecords,
1631
+ ReturnType<typeof defaults>
1632
+ >(defaults);
1633
+ })();
1634
+ return Object.freeze({
1635
+ /**
1636
+ * Create a frozen instance of {@link StudentAcademicRecords}, with defaults specified
1637
+ * in Rust, in the {@link rusaint} crate.
1638
+ */
1639
+ create,
1640
+
1641
+ /**
1642
+ * Create a frozen instance of {@link StudentAcademicRecords}, with defaults specified
1643
+ * in Rust, in the {@link rusaint} crate.
1644
+ */
1645
+ new: create,
1646
+
1647
+ /**
1648
+ * Defaults specified in the {@link rusaint} crate.
1649
+ */
1650
+ defaults: () =>
1651
+ Object.freeze(defaults()) as Partial<StudentAcademicRecords>,
1652
+ });
1653
+ })();
1654
+
1655
+ const FfiConverterTypeStudentAcademicRecords = (() => {
1656
+ type TypeName = StudentAcademicRecords;
1657
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1658
+ read(from: RustBuffer): TypeName {
1659
+ return {
1660
+ records: FfiConverterArrayTypeStudentAcademicRecord.read(from),
1661
+ };
1662
+ }
1663
+ write(value: TypeName, into: RustBuffer): void {
1664
+ FfiConverterArrayTypeStudentAcademicRecord.write(value.records, into);
1665
+ }
1666
+ allocationSize(value: TypeName): number {
1667
+ return FfiConverterArrayTypeStudentAcademicRecord.allocationSize(
1668
+ value.records
1669
+ );
1670
+ }
1671
+ }
1672
+ return new FFIConverter();
1673
+ })();
1674
+
1675
+ /**
1676
+ * 학생의 은행 계좌 정보
1677
+ */
1678
+ export type StudentBankAccount = {
1679
+ bank: string | undefined;
1680
+ accountNumber: string | undefined;
1681
+ holder: string | undefined;
1682
+ };
1683
+
1684
+ /**
1685
+ * Generated factory for {@link StudentBankAccount} record objects.
1686
+ */
1687
+ export const StudentBankAccount = (() => {
1688
+ const defaults = () => ({});
1689
+ const create = (() => {
1690
+ return uniffiCreateRecord<StudentBankAccount, ReturnType<typeof defaults>>(
1691
+ defaults
1692
+ );
1693
+ })();
1694
+ return Object.freeze({
1695
+ /**
1696
+ * Create a frozen instance of {@link StudentBankAccount}, with defaults specified
1697
+ * in Rust, in the {@link rusaint} crate.
1698
+ */
1699
+ create,
1700
+
1701
+ /**
1702
+ * Create a frozen instance of {@link StudentBankAccount}, with defaults specified
1703
+ * in Rust, in the {@link rusaint} crate.
1704
+ */
1705
+ new: create,
1706
+
1707
+ /**
1708
+ * Defaults specified in the {@link rusaint} crate.
1709
+ */
1710
+ defaults: () => Object.freeze(defaults()) as Partial<StudentBankAccount>,
1711
+ });
1712
+ })();
1713
+
1714
+ const FfiConverterTypeStudentBankAccount = (() => {
1715
+ type TypeName = StudentBankAccount;
1716
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1717
+ read(from: RustBuffer): TypeName {
1718
+ return {
1719
+ bank: FfiConverterOptionalString.read(from),
1720
+ accountNumber: FfiConverterOptionalString.read(from),
1721
+ holder: FfiConverterOptionalString.read(from),
1722
+ };
1723
+ }
1724
+ write(value: TypeName, into: RustBuffer): void {
1725
+ FfiConverterOptionalString.write(value.bank, into);
1726
+ FfiConverterOptionalString.write(value.accountNumber, into);
1727
+ FfiConverterOptionalString.write(value.holder, into);
1728
+ }
1729
+ allocationSize(value: TypeName): number {
1730
+ return (
1731
+ FfiConverterOptionalString.allocationSize(value.bank) +
1732
+ FfiConverterOptionalString.allocationSize(value.accountNumber) +
1733
+ FfiConverterOptionalString.allocationSize(value.holder)
1734
+ );
1735
+ }
1736
+ }
1737
+ return new FFIConverter();
1738
+ })();
1739
+
1740
+ /**
1741
+ * 학생의 가족관계 정보
1742
+ */
1743
+ export type StudentFamily = {
1744
+ members: Array<StudentFamilyMember>;
1745
+ };
1746
+
1747
+ /**
1748
+ * Generated factory for {@link StudentFamily} record objects.
1749
+ */
1750
+ export const StudentFamily = (() => {
1751
+ const defaults = () => ({});
1752
+ const create = (() => {
1753
+ return uniffiCreateRecord<StudentFamily, ReturnType<typeof defaults>>(
1754
+ defaults
1755
+ );
1756
+ })();
1757
+ return Object.freeze({
1758
+ /**
1759
+ * Create a frozen instance of {@link StudentFamily}, with defaults specified
1760
+ * in Rust, in the {@link rusaint} crate.
1761
+ */
1762
+ create,
1763
+
1764
+ /**
1765
+ * Create a frozen instance of {@link StudentFamily}, with defaults specified
1766
+ * in Rust, in the {@link rusaint} crate.
1767
+ */
1768
+ new: create,
1769
+
1770
+ /**
1771
+ * Defaults specified in the {@link rusaint} crate.
1772
+ */
1773
+ defaults: () => Object.freeze(defaults()) as Partial<StudentFamily>,
1774
+ });
1775
+ })();
1776
+
1777
+ const FfiConverterTypeStudentFamily = (() => {
1778
+ type TypeName = StudentFamily;
1779
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1780
+ read(from: RustBuffer): TypeName {
1781
+ return {
1782
+ members: FfiConverterArrayTypeStudentFamilyMember.read(from),
1783
+ };
1784
+ }
1785
+ write(value: TypeName, into: RustBuffer): void {
1786
+ FfiConverterArrayTypeStudentFamilyMember.write(value.members, into);
1787
+ }
1788
+ allocationSize(value: TypeName): number {
1789
+ return FfiConverterArrayTypeStudentFamilyMember.allocationSize(
1790
+ value.members
1791
+ );
1792
+ }
1793
+ }
1794
+ return new FFIConverter();
1795
+ })();
1796
+
1797
+ /**
1798
+ * 학생의 가족 구성원
1799
+ */
1800
+ export type StudentFamilyMember = {
1801
+ relationType: string | undefined;
1802
+ telNumber: string | undefined;
1803
+ name: string | undefined;
1804
+ mobileNumber: string | undefined;
1805
+ office: string | undefined;
1806
+ job: string | undefined;
1807
+ position: string | undefined;
1808
+ isGuardian: boolean;
1809
+ isCohabit: boolean;
1810
+ };
1811
+
1812
+ /**
1813
+ * Generated factory for {@link StudentFamilyMember} record objects.
1814
+ */
1815
+ export const StudentFamilyMember = (() => {
1816
+ const defaults = () => ({});
1817
+ const create = (() => {
1818
+ return uniffiCreateRecord<StudentFamilyMember, ReturnType<typeof defaults>>(
1819
+ defaults
1820
+ );
1821
+ })();
1822
+ return Object.freeze({
1823
+ /**
1824
+ * Create a frozen instance of {@link StudentFamilyMember}, with defaults specified
1825
+ * in Rust, in the {@link rusaint} crate.
1826
+ */
1827
+ create,
1828
+
1829
+ /**
1830
+ * Create a frozen instance of {@link StudentFamilyMember}, with defaults specified
1831
+ * in Rust, in the {@link rusaint} crate.
1832
+ */
1833
+ new: create,
1834
+
1835
+ /**
1836
+ * Defaults specified in the {@link rusaint} crate.
1837
+ */
1838
+ defaults: () => Object.freeze(defaults()) as Partial<StudentFamilyMember>,
1839
+ });
1840
+ })();
1841
+
1842
+ const FfiConverterTypeStudentFamilyMember = (() => {
1843
+ type TypeName = StudentFamilyMember;
1844
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1845
+ read(from: RustBuffer): TypeName {
1846
+ return {
1847
+ relationType: FfiConverterOptionalString.read(from),
1848
+ telNumber: FfiConverterOptionalString.read(from),
1849
+ name: FfiConverterOptionalString.read(from),
1850
+ mobileNumber: FfiConverterOptionalString.read(from),
1851
+ office: FfiConverterOptionalString.read(from),
1852
+ job: FfiConverterOptionalString.read(from),
1853
+ position: FfiConverterOptionalString.read(from),
1854
+ isGuardian: FfiConverterBool.read(from),
1855
+ isCohabit: FfiConverterBool.read(from),
1856
+ };
1857
+ }
1858
+ write(value: TypeName, into: RustBuffer): void {
1859
+ FfiConverterOptionalString.write(value.relationType, into);
1860
+ FfiConverterOptionalString.write(value.telNumber, into);
1861
+ FfiConverterOptionalString.write(value.name, into);
1862
+ FfiConverterOptionalString.write(value.mobileNumber, into);
1863
+ FfiConverterOptionalString.write(value.office, into);
1864
+ FfiConverterOptionalString.write(value.job, into);
1865
+ FfiConverterOptionalString.write(value.position, into);
1866
+ FfiConverterBool.write(value.isGuardian, into);
1867
+ FfiConverterBool.write(value.isCohabit, into);
1868
+ }
1869
+ allocationSize(value: TypeName): number {
1870
+ return (
1871
+ FfiConverterOptionalString.allocationSize(value.relationType) +
1872
+ FfiConverterOptionalString.allocationSize(value.telNumber) +
1873
+ FfiConverterOptionalString.allocationSize(value.name) +
1874
+ FfiConverterOptionalString.allocationSize(value.mobileNumber) +
1875
+ FfiConverterOptionalString.allocationSize(value.office) +
1876
+ FfiConverterOptionalString.allocationSize(value.job) +
1877
+ FfiConverterOptionalString.allocationSize(value.position) +
1878
+ FfiConverterBool.allocationSize(value.isGuardian) +
1879
+ FfiConverterBool.allocationSize(value.isCohabit)
1880
+ );
1881
+ }
1882
+ }
1883
+ return new FFIConverter();
1884
+ })();
1885
+
1886
+ /**
1887
+ * 7+1 프로그램 정보를 반환합니다.
1888
+ */
1889
+ export type StudentForignStudyInformation = {
1890
+ approvalDate: string | undefined;
1891
+ authenticationNumber: string | undefined;
1892
+ issueDate: string | undefined;
1893
+ };
1894
+
1895
+ /**
1896
+ * Generated factory for {@link StudentForignStudyInformation} record objects.
1897
+ */
1898
+ export const StudentForignStudyInformation = (() => {
1899
+ const defaults = () => ({});
1900
+ const create = (() => {
1901
+ return uniffiCreateRecord<
1902
+ StudentForignStudyInformation,
1903
+ ReturnType<typeof defaults>
1904
+ >(defaults);
1905
+ })();
1906
+ return Object.freeze({
1907
+ /**
1908
+ * Create a frozen instance of {@link StudentForignStudyInformation}, with defaults specified
1909
+ * in Rust, in the {@link rusaint} crate.
1910
+ */
1911
+ create,
1912
+
1913
+ /**
1914
+ * Create a frozen instance of {@link StudentForignStudyInformation}, with defaults specified
1915
+ * in Rust, in the {@link rusaint} crate.
1916
+ */
1917
+ new: create,
1918
+
1919
+ /**
1920
+ * Defaults specified in the {@link rusaint} crate.
1921
+ */
1922
+ defaults: () =>
1923
+ Object.freeze(defaults()) as Partial<StudentForignStudyInformation>,
1924
+ });
1925
+ })();
1926
+
1927
+ const FfiConverterTypeStudentForignStudyInformation = (() => {
1928
+ type TypeName = StudentForignStudyInformation;
1929
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1930
+ read(from: RustBuffer): TypeName {
1931
+ return {
1932
+ approvalDate: FfiConverterOptionalString.read(from),
1933
+ authenticationNumber: FfiConverterOptionalString.read(from),
1934
+ issueDate: FfiConverterOptionalString.read(from),
1935
+ };
1936
+ }
1937
+ write(value: TypeName, into: RustBuffer): void {
1938
+ FfiConverterOptionalString.write(value.approvalDate, into);
1939
+ FfiConverterOptionalString.write(value.authenticationNumber, into);
1940
+ FfiConverterOptionalString.write(value.issueDate, into);
1941
+ }
1942
+ allocationSize(value: TypeName): number {
1943
+ return (
1944
+ FfiConverterOptionalString.allocationSize(value.approvalDate) +
1945
+ FfiConverterOptionalString.allocationSize(value.authenticationNumber) +
1946
+ FfiConverterOptionalString.allocationSize(value.issueDate)
1947
+ );
1948
+ }
1949
+ }
1950
+ return new FFIConverter();
1951
+ })();
1952
+
1953
+ /**
1954
+ * 학생의 졸업 정보를 반환합니다. 졸업하지 않았다면 반환되지 않습니다.
1955
+ */
1956
+ export type StudentGraduation = {
1957
+ graduationCardinal: /*u32*/ number;
1958
+ graduationCertificationNumber: /*u32*/ number;
1959
+ graduationYear: /*u32*/ number;
1960
+ graduationTerms: /*u32*/ number;
1961
+ graduationDate: string;
1962
+ academicDegreeNumber: /*u32*/ number;
1963
+ academicDegreeName: string;
1964
+ earlyGraduation: boolean;
1965
+ graduationRank: /*u32*/ number;
1966
+ graduationPersonnelNumber: /*u32*/ number;
1967
+ };
1968
+
1969
+ /**
1970
+ * Generated factory for {@link StudentGraduation} record objects.
1971
+ */
1972
+ export const StudentGraduation = (() => {
1973
+ const defaults = () => ({});
1974
+ const create = (() => {
1975
+ return uniffiCreateRecord<StudentGraduation, ReturnType<typeof defaults>>(
1976
+ defaults
1977
+ );
1978
+ })();
1979
+ return Object.freeze({
1980
+ /**
1981
+ * Create a frozen instance of {@link StudentGraduation}, with defaults specified
1982
+ * in Rust, in the {@link rusaint} crate.
1983
+ */
1984
+ create,
1985
+
1986
+ /**
1987
+ * Create a frozen instance of {@link StudentGraduation}, with defaults specified
1988
+ * in Rust, in the {@link rusaint} crate.
1989
+ */
1990
+ new: create,
1991
+
1992
+ /**
1993
+ * Defaults specified in the {@link rusaint} crate.
1994
+ */
1995
+ defaults: () => Object.freeze(defaults()) as Partial<StudentGraduation>,
1996
+ });
1997
+ })();
1998
+
1999
+ const FfiConverterTypeStudentGraduation = (() => {
2000
+ type TypeName = StudentGraduation;
2001
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2002
+ read(from: RustBuffer): TypeName {
2003
+ return {
2004
+ graduationCardinal: FfiConverterUInt32.read(from),
2005
+ graduationCertificationNumber: FfiConverterUInt32.read(from),
2006
+ graduationYear: FfiConverterUInt32.read(from),
2007
+ graduationTerms: FfiConverterUInt32.read(from),
2008
+ graduationDate: FfiConverterString.read(from),
2009
+ academicDegreeNumber: FfiConverterUInt32.read(from),
2010
+ academicDegreeName: FfiConverterString.read(from),
2011
+ earlyGraduation: FfiConverterBool.read(from),
2012
+ graduationRank: FfiConverterUInt32.read(from),
2013
+ graduationPersonnelNumber: FfiConverterUInt32.read(from),
2014
+ };
2015
+ }
2016
+ write(value: TypeName, into: RustBuffer): void {
2017
+ FfiConverterUInt32.write(value.graduationCardinal, into);
2018
+ FfiConverterUInt32.write(value.graduationCertificationNumber, into);
2019
+ FfiConverterUInt32.write(value.graduationYear, into);
2020
+ FfiConverterUInt32.write(value.graduationTerms, into);
2021
+ FfiConverterString.write(value.graduationDate, into);
2022
+ FfiConverterUInt32.write(value.academicDegreeNumber, into);
2023
+ FfiConverterString.write(value.academicDegreeName, into);
2024
+ FfiConverterBool.write(value.earlyGraduation, into);
2025
+ FfiConverterUInt32.write(value.graduationRank, into);
2026
+ FfiConverterUInt32.write(value.graduationPersonnelNumber, into);
2027
+ }
2028
+ allocationSize(value: TypeName): number {
2029
+ return (
2030
+ FfiConverterUInt32.allocationSize(value.graduationCardinal) +
2031
+ FfiConverterUInt32.allocationSize(value.graduationCertificationNumber) +
2032
+ FfiConverterUInt32.allocationSize(value.graduationYear) +
2033
+ FfiConverterUInt32.allocationSize(value.graduationTerms) +
2034
+ FfiConverterString.allocationSize(value.graduationDate) +
2035
+ FfiConverterUInt32.allocationSize(value.academicDegreeNumber) +
2036
+ FfiConverterString.allocationSize(value.academicDegreeName) +
2037
+ FfiConverterBool.allocationSize(value.earlyGraduation) +
2038
+ FfiConverterUInt32.allocationSize(value.graduationRank) +
2039
+ FfiConverterUInt32.allocationSize(value.graduationPersonnelNumber)
2040
+ );
2041
+ }
2042
+ }
2043
+ return new FFIConverter();
2044
+ })();
2045
+
2046
+ /**
2047
+ * 기본 학생 정보
2048
+ */
2049
+ export type StudentInformation = {
2050
+ applyYear: /*u32*/ number;
2051
+ studentNumber: /*u32*/ number;
2052
+ name: string;
2053
+ rrn: /*u32*/ number;
2054
+ collage: string;
2055
+ department: string;
2056
+ major: string | undefined;
2057
+ division: string | undefined;
2058
+ grade: /*u32*/ number;
2059
+ term: /*u32*/ number;
2060
+ image: ArrayBuffer;
2061
+ alias: string | undefined;
2062
+ kanjiName: string | undefined;
2063
+ email: string | undefined;
2064
+ telNumber: string | undefined;
2065
+ mobileNumber: string | undefined;
2066
+ postCode: string | undefined;
2067
+ address: string | undefined;
2068
+ specificAddress: string | undefined;
2069
+ isTransferStudent: boolean;
2070
+ applyDate: string;
2071
+ appliedCollage: string;
2072
+ appliedDepartment: string;
2073
+ pluralMajor: string | undefined;
2074
+ subMajor: string | undefined;
2075
+ connectedMajor: string | undefined;
2076
+ abeek: string | undefined;
2077
+ };
2078
+
2079
+ /**
2080
+ * Generated factory for {@link StudentInformation} record objects.
2081
+ */
2082
+ export const StudentInformation = (() => {
2083
+ const defaults = () => ({});
2084
+ const create = (() => {
2085
+ return uniffiCreateRecord<StudentInformation, ReturnType<typeof defaults>>(
2086
+ defaults
2087
+ );
2088
+ })();
2089
+ return Object.freeze({
2090
+ /**
2091
+ * Create a frozen instance of {@link StudentInformation}, with defaults specified
2092
+ * in Rust, in the {@link rusaint} crate.
2093
+ */
2094
+ create,
2095
+
2096
+ /**
2097
+ * Create a frozen instance of {@link StudentInformation}, with defaults specified
2098
+ * in Rust, in the {@link rusaint} crate.
2099
+ */
2100
+ new: create,
2101
+
2102
+ /**
2103
+ * Defaults specified in the {@link rusaint} crate.
2104
+ */
2105
+ defaults: () => Object.freeze(defaults()) as Partial<StudentInformation>,
2106
+ });
2107
+ })();
2108
+
2109
+ const FfiConverterTypeStudentInformation = (() => {
2110
+ type TypeName = StudentInformation;
2111
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2112
+ read(from: RustBuffer): TypeName {
2113
+ return {
2114
+ applyYear: FfiConverterUInt32.read(from),
2115
+ studentNumber: FfiConverterUInt32.read(from),
2116
+ name: FfiConverterString.read(from),
2117
+ rrn: FfiConverterUInt32.read(from),
2118
+ collage: FfiConverterString.read(from),
2119
+ department: FfiConverterString.read(from),
2120
+ major: FfiConverterOptionalString.read(from),
2121
+ division: FfiConverterOptionalString.read(from),
2122
+ grade: FfiConverterUInt32.read(from),
2123
+ term: FfiConverterUInt32.read(from),
2124
+ image: FfiConverterArrayBuffer.read(from),
2125
+ alias: FfiConverterOptionalString.read(from),
2126
+ kanjiName: FfiConverterOptionalString.read(from),
2127
+ email: FfiConverterOptionalString.read(from),
2128
+ telNumber: FfiConverterOptionalString.read(from),
2129
+ mobileNumber: FfiConverterOptionalString.read(from),
2130
+ postCode: FfiConverterOptionalString.read(from),
2131
+ address: FfiConverterOptionalString.read(from),
2132
+ specificAddress: FfiConverterOptionalString.read(from),
2133
+ isTransferStudent: FfiConverterBool.read(from),
2134
+ applyDate: FfiConverterString.read(from),
2135
+ appliedCollage: FfiConverterString.read(from),
2136
+ appliedDepartment: FfiConverterString.read(from),
2137
+ pluralMajor: FfiConverterOptionalString.read(from),
2138
+ subMajor: FfiConverterOptionalString.read(from),
2139
+ connectedMajor: FfiConverterOptionalString.read(from),
2140
+ abeek: FfiConverterOptionalString.read(from),
2141
+ };
2142
+ }
2143
+ write(value: TypeName, into: RustBuffer): void {
2144
+ FfiConverterUInt32.write(value.applyYear, into);
2145
+ FfiConverterUInt32.write(value.studentNumber, into);
2146
+ FfiConverterString.write(value.name, into);
2147
+ FfiConverterUInt32.write(value.rrn, into);
2148
+ FfiConverterString.write(value.collage, into);
2149
+ FfiConverterString.write(value.department, into);
2150
+ FfiConverterOptionalString.write(value.major, into);
2151
+ FfiConverterOptionalString.write(value.division, into);
2152
+ FfiConverterUInt32.write(value.grade, into);
2153
+ FfiConverterUInt32.write(value.term, into);
2154
+ FfiConverterArrayBuffer.write(value.image, into);
2155
+ FfiConverterOptionalString.write(value.alias, into);
2156
+ FfiConverterOptionalString.write(value.kanjiName, into);
2157
+ FfiConverterOptionalString.write(value.email, into);
2158
+ FfiConverterOptionalString.write(value.telNumber, into);
2159
+ FfiConverterOptionalString.write(value.mobileNumber, into);
2160
+ FfiConverterOptionalString.write(value.postCode, into);
2161
+ FfiConverterOptionalString.write(value.address, into);
2162
+ FfiConverterOptionalString.write(value.specificAddress, into);
2163
+ FfiConverterBool.write(value.isTransferStudent, into);
2164
+ FfiConverterString.write(value.applyDate, into);
2165
+ FfiConverterString.write(value.appliedCollage, into);
2166
+ FfiConverterString.write(value.appliedDepartment, into);
2167
+ FfiConverterOptionalString.write(value.pluralMajor, into);
2168
+ FfiConverterOptionalString.write(value.subMajor, into);
2169
+ FfiConverterOptionalString.write(value.connectedMajor, into);
2170
+ FfiConverterOptionalString.write(value.abeek, into);
2171
+ }
2172
+ allocationSize(value: TypeName): number {
2173
+ return (
2174
+ FfiConverterUInt32.allocationSize(value.applyYear) +
2175
+ FfiConverterUInt32.allocationSize(value.studentNumber) +
2176
+ FfiConverterString.allocationSize(value.name) +
2177
+ FfiConverterUInt32.allocationSize(value.rrn) +
2178
+ FfiConverterString.allocationSize(value.collage) +
2179
+ FfiConverterString.allocationSize(value.department) +
2180
+ FfiConverterOptionalString.allocationSize(value.major) +
2181
+ FfiConverterOptionalString.allocationSize(value.division) +
2182
+ FfiConverterUInt32.allocationSize(value.grade) +
2183
+ FfiConverterUInt32.allocationSize(value.term) +
2184
+ FfiConverterArrayBuffer.allocationSize(value.image) +
2185
+ FfiConverterOptionalString.allocationSize(value.alias) +
2186
+ FfiConverterOptionalString.allocationSize(value.kanjiName) +
2187
+ FfiConverterOptionalString.allocationSize(value.email) +
2188
+ FfiConverterOptionalString.allocationSize(value.telNumber) +
2189
+ FfiConverterOptionalString.allocationSize(value.mobileNumber) +
2190
+ FfiConverterOptionalString.allocationSize(value.postCode) +
2191
+ FfiConverterOptionalString.allocationSize(value.address) +
2192
+ FfiConverterOptionalString.allocationSize(value.specificAddress) +
2193
+ FfiConverterBool.allocationSize(value.isTransferStudent) +
2194
+ FfiConverterString.allocationSize(value.applyDate) +
2195
+ FfiConverterString.allocationSize(value.appliedCollage) +
2196
+ FfiConverterString.allocationSize(value.appliedDepartment) +
2197
+ FfiConverterOptionalString.allocationSize(value.pluralMajor) +
2198
+ FfiConverterOptionalString.allocationSize(value.subMajor) +
2199
+ FfiConverterOptionalString.allocationSize(value.connectedMajor) +
2200
+ FfiConverterOptionalString.allocationSize(value.abeek)
2201
+ );
2202
+ }
2203
+ }
2204
+ return new FFIConverter();
2205
+ })();
2206
+
2207
+ /**
2208
+ * 평생교육사 정보
2209
+ */
2210
+ export type StudentLifelongInformation = {
2211
+ applyDate: string | undefined;
2212
+ lifelongType: string | undefined;
2213
+ qualificationNumber: string | undefined;
2214
+ qualificationDate: string | undefined;
2215
+ };
2216
+
2217
+ /**
2218
+ * Generated factory for {@link StudentLifelongInformation} record objects.
2219
+ */
2220
+ export const StudentLifelongInformation = (() => {
2221
+ const defaults = () => ({});
2222
+ const create = (() => {
2223
+ return uniffiCreateRecord<
2224
+ StudentLifelongInformation,
2225
+ ReturnType<typeof defaults>
2226
+ >(defaults);
2227
+ })();
2228
+ return Object.freeze({
2229
+ /**
2230
+ * Create a frozen instance of {@link StudentLifelongInformation}, with defaults specified
2231
+ * in Rust, in the {@link rusaint} crate.
2232
+ */
2233
+ create,
2234
+
2235
+ /**
2236
+ * Create a frozen instance of {@link StudentLifelongInformation}, with defaults specified
2237
+ * in Rust, in the {@link rusaint} crate.
2238
+ */
2239
+ new: create,
2240
+
2241
+ /**
2242
+ * Defaults specified in the {@link rusaint} crate.
2243
+ */
2244
+ defaults: () =>
2245
+ Object.freeze(defaults()) as Partial<StudentLifelongInformation>,
2246
+ });
2247
+ })();
2248
+
2249
+ const FfiConverterTypeStudentLifelongInformation = (() => {
2250
+ type TypeName = StudentLifelongInformation;
2251
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2252
+ read(from: RustBuffer): TypeName {
2253
+ return {
2254
+ applyDate: FfiConverterOptionalString.read(from),
2255
+ lifelongType: FfiConverterOptionalString.read(from),
2256
+ qualificationNumber: FfiConverterOptionalString.read(from),
2257
+ qualificationDate: FfiConverterOptionalString.read(from),
2258
+ };
2259
+ }
2260
+ write(value: TypeName, into: RustBuffer): void {
2261
+ FfiConverterOptionalString.write(value.applyDate, into);
2262
+ FfiConverterOptionalString.write(value.lifelongType, into);
2263
+ FfiConverterOptionalString.write(value.qualificationNumber, into);
2264
+ FfiConverterOptionalString.write(value.qualificationDate, into);
2265
+ }
2266
+ allocationSize(value: TypeName): number {
2267
+ return (
2268
+ FfiConverterOptionalString.allocationSize(value.applyDate) +
2269
+ FfiConverterOptionalString.allocationSize(value.lifelongType) +
2270
+ FfiConverterOptionalString.allocationSize(value.qualificationNumber) +
2271
+ FfiConverterOptionalString.allocationSize(value.qualificationDate)
2272
+ );
2273
+ }
2274
+ }
2275
+ return new FFIConverter();
2276
+ })();
2277
+
2278
+ /**
2279
+ * 학생의 자격(교직이수, 평생교육사, 7+1 프로그램) 정보
2280
+ */
2281
+ export type StudentQualification = {
2282
+ teachingMajor: StudentTeachingMajorInformation | undefined;
2283
+ teachingPluralMajor: StudentTeachingPluralMajorInformation | undefined;
2284
+ lifelong: StudentLifelongInformation | undefined;
2285
+ forignStudy: StudentForignStudyInformation | undefined;
2286
+ };
2287
+
2288
+ /**
2289
+ * Generated factory for {@link StudentQualification} record objects.
2290
+ */
2291
+ export const StudentQualification = (() => {
2292
+ const defaults = () => ({});
2293
+ const create = (() => {
2294
+ return uniffiCreateRecord<
2295
+ StudentQualification,
2296
+ ReturnType<typeof defaults>
2297
+ >(defaults);
2298
+ })();
2299
+ return Object.freeze({
2300
+ /**
2301
+ * Create a frozen instance of {@link StudentQualification}, with defaults specified
2302
+ * in Rust, in the {@link rusaint} crate.
2303
+ */
2304
+ create,
2305
+
2306
+ /**
2307
+ * Create a frozen instance of {@link StudentQualification}, with defaults specified
2308
+ * in Rust, in the {@link rusaint} crate.
2309
+ */
2310
+ new: create,
2311
+
2312
+ /**
2313
+ * Defaults specified in the {@link rusaint} crate.
2314
+ */
2315
+ defaults: () => Object.freeze(defaults()) as Partial<StudentQualification>,
2316
+ });
2317
+ })();
2318
+
2319
+ const FfiConverterTypeStudentQualification = (() => {
2320
+ type TypeName = StudentQualification;
2321
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2322
+ read(from: RustBuffer): TypeName {
2323
+ return {
2324
+ teachingMajor:
2325
+ FfiConverterOptionalTypeStudentTeachingMajorInformation.read(from),
2326
+ teachingPluralMajor:
2327
+ FfiConverterOptionalTypeStudentTeachingPluralMajorInformation.read(
2328
+ from
2329
+ ),
2330
+ lifelong: FfiConverterOptionalTypeStudentLifelongInformation.read(from),
2331
+ forignStudy:
2332
+ FfiConverterOptionalTypeStudentForignStudyInformation.read(from),
2333
+ };
2334
+ }
2335
+ write(value: TypeName, into: RustBuffer): void {
2336
+ FfiConverterOptionalTypeStudentTeachingMajorInformation.write(
2337
+ value.teachingMajor,
2338
+ into
2339
+ );
2340
+ FfiConverterOptionalTypeStudentTeachingPluralMajorInformation.write(
2341
+ value.teachingPluralMajor,
2342
+ into
2343
+ );
2344
+ FfiConverterOptionalTypeStudentLifelongInformation.write(
2345
+ value.lifelong,
2346
+ into
2347
+ );
2348
+ FfiConverterOptionalTypeStudentForignStudyInformation.write(
2349
+ value.forignStudy,
2350
+ into
2351
+ );
2352
+ }
2353
+ allocationSize(value: TypeName): number {
2354
+ return (
2355
+ FfiConverterOptionalTypeStudentTeachingMajorInformation.allocationSize(
2356
+ value.teachingMajor
2357
+ ) +
2358
+ FfiConverterOptionalTypeStudentTeachingPluralMajorInformation.allocationSize(
2359
+ value.teachingPluralMajor
2360
+ ) +
2361
+ FfiConverterOptionalTypeStudentLifelongInformation.allocationSize(
2362
+ value.lifelong
2363
+ ) +
2364
+ FfiConverterOptionalTypeStudentForignStudyInformation.allocationSize(
2365
+ value.forignStudy
2366
+ )
2367
+ );
2368
+ }
2369
+ }
2370
+ return new FFIConverter();
2371
+ })();
2372
+
2373
+ /**
2374
+ * 학생의 종교 정보
2375
+ */
2376
+ export type StudentReligion = {
2377
+ religionType: string | undefined;
2378
+ startDate: string | undefined;
2379
+ church: string | undefined;
2380
+ churchMan: string | undefined;
2381
+ baptismLevel: string | undefined;
2382
+ baptismGrp: string | undefined;
2383
+ serviceDepartment: string | undefined;
2384
+ serviceDepartmentTitle: string | undefined;
2385
+ churchAddress: string | undefined;
2386
+ singeub: string | undefined;
2387
+ baptismDate: string | undefined;
2388
+ baptismChurch: string | undefined;
2389
+ baptismMan: string | undefined;
2390
+ churchGrp: string | undefined;
2391
+ };
2392
+
2393
+ /**
2394
+ * Generated factory for {@link StudentReligion} record objects.
2395
+ */
2396
+ export const StudentReligion = (() => {
2397
+ const defaults = () => ({});
2398
+ const create = (() => {
2399
+ return uniffiCreateRecord<StudentReligion, ReturnType<typeof defaults>>(
2400
+ defaults
2401
+ );
2402
+ })();
2403
+ return Object.freeze({
2404
+ /**
2405
+ * Create a frozen instance of {@link StudentReligion}, with defaults specified
2406
+ * in Rust, in the {@link rusaint} crate.
2407
+ */
2408
+ create,
2409
+
2410
+ /**
2411
+ * Create a frozen instance of {@link StudentReligion}, with defaults specified
2412
+ * in Rust, in the {@link rusaint} crate.
2413
+ */
2414
+ new: create,
2415
+
2416
+ /**
2417
+ * Defaults specified in the {@link rusaint} crate.
2418
+ */
2419
+ defaults: () => Object.freeze(defaults()) as Partial<StudentReligion>,
2420
+ });
2421
+ })();
2422
+
2423
+ const FfiConverterTypeStudentReligion = (() => {
2424
+ type TypeName = StudentReligion;
2425
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2426
+ read(from: RustBuffer): TypeName {
2427
+ return {
2428
+ religionType: FfiConverterOptionalString.read(from),
2429
+ startDate: FfiConverterOptionalString.read(from),
2430
+ church: FfiConverterOptionalString.read(from),
2431
+ churchMan: FfiConverterOptionalString.read(from),
2432
+ baptismLevel: FfiConverterOptionalString.read(from),
2433
+ baptismGrp: FfiConverterOptionalString.read(from),
2434
+ serviceDepartment: FfiConverterOptionalString.read(from),
2435
+ serviceDepartmentTitle: FfiConverterOptionalString.read(from),
2436
+ churchAddress: FfiConverterOptionalString.read(from),
2437
+ singeub: FfiConverterOptionalString.read(from),
2438
+ baptismDate: FfiConverterOptionalString.read(from),
2439
+ baptismChurch: FfiConverterOptionalString.read(from),
2440
+ baptismMan: FfiConverterOptionalString.read(from),
2441
+ churchGrp: FfiConverterOptionalString.read(from),
2442
+ };
2443
+ }
2444
+ write(value: TypeName, into: RustBuffer): void {
2445
+ FfiConverterOptionalString.write(value.religionType, into);
2446
+ FfiConverterOptionalString.write(value.startDate, into);
2447
+ FfiConverterOptionalString.write(value.church, into);
2448
+ FfiConverterOptionalString.write(value.churchMan, into);
2449
+ FfiConverterOptionalString.write(value.baptismLevel, into);
2450
+ FfiConverterOptionalString.write(value.baptismGrp, into);
2451
+ FfiConverterOptionalString.write(value.serviceDepartment, into);
2452
+ FfiConverterOptionalString.write(value.serviceDepartmentTitle, into);
2453
+ FfiConverterOptionalString.write(value.churchAddress, into);
2454
+ FfiConverterOptionalString.write(value.singeub, into);
2455
+ FfiConverterOptionalString.write(value.baptismDate, into);
2456
+ FfiConverterOptionalString.write(value.baptismChurch, into);
2457
+ FfiConverterOptionalString.write(value.baptismMan, into);
2458
+ FfiConverterOptionalString.write(value.churchGrp, into);
2459
+ }
2460
+ allocationSize(value: TypeName): number {
2461
+ return (
2462
+ FfiConverterOptionalString.allocationSize(value.religionType) +
2463
+ FfiConverterOptionalString.allocationSize(value.startDate) +
2464
+ FfiConverterOptionalString.allocationSize(value.church) +
2465
+ FfiConverterOptionalString.allocationSize(value.churchMan) +
2466
+ FfiConverterOptionalString.allocationSize(value.baptismLevel) +
2467
+ FfiConverterOptionalString.allocationSize(value.baptismGrp) +
2468
+ FfiConverterOptionalString.allocationSize(value.serviceDepartment) +
2469
+ FfiConverterOptionalString.allocationSize(
2470
+ value.serviceDepartmentTitle
2471
+ ) +
2472
+ FfiConverterOptionalString.allocationSize(value.churchAddress) +
2473
+ FfiConverterOptionalString.allocationSize(value.singeub) +
2474
+ FfiConverterOptionalString.allocationSize(value.baptismDate) +
2475
+ FfiConverterOptionalString.allocationSize(value.baptismChurch) +
2476
+ FfiConverterOptionalString.allocationSize(value.baptismMan) +
2477
+ FfiConverterOptionalString.allocationSize(value.churchGrp)
2478
+ );
2479
+ }
2480
+ }
2481
+ return new FFIConverter();
2482
+ })();
2483
+
2484
+ /**
2485
+ * 연구비 입금 계좌 정보
2486
+ */
2487
+ export type StudentResearchBankAccount = {
2488
+ bank: string | undefined;
2489
+ accountNumber: string | undefined;
2490
+ holder: string | undefined;
2491
+ };
2492
+
2493
+ /**
2494
+ * Generated factory for {@link StudentResearchBankAccount} record objects.
2495
+ */
2496
+ export const StudentResearchBankAccount = (() => {
2497
+ const defaults = () => ({});
2498
+ const create = (() => {
2499
+ return uniffiCreateRecord<
2500
+ StudentResearchBankAccount,
2501
+ ReturnType<typeof defaults>
2502
+ >(defaults);
2503
+ })();
2504
+ return Object.freeze({
2505
+ /**
2506
+ * Create a frozen instance of {@link StudentResearchBankAccount}, with defaults specified
2507
+ * in Rust, in the {@link rusaint} crate.
2508
+ */
2509
+ create,
2510
+
2511
+ /**
2512
+ * Create a frozen instance of {@link StudentResearchBankAccount}, with defaults specified
2513
+ * in Rust, in the {@link rusaint} crate.
2514
+ */
2515
+ new: create,
2516
+
2517
+ /**
2518
+ * Defaults specified in the {@link rusaint} crate.
2519
+ */
2520
+ defaults: () =>
2521
+ Object.freeze(defaults()) as Partial<StudentResearchBankAccount>,
2522
+ });
2523
+ })();
2524
+
2525
+ const FfiConverterTypeStudentResearchBankAccount = (() => {
2526
+ type TypeName = StudentResearchBankAccount;
2527
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2528
+ read(from: RustBuffer): TypeName {
2529
+ return {
2530
+ bank: FfiConverterOptionalString.read(from),
2531
+ accountNumber: FfiConverterOptionalString.read(from),
2532
+ holder: FfiConverterOptionalString.read(from),
2533
+ };
2534
+ }
2535
+ write(value: TypeName, into: RustBuffer): void {
2536
+ FfiConverterOptionalString.write(value.bank, into);
2537
+ FfiConverterOptionalString.write(value.accountNumber, into);
2538
+ FfiConverterOptionalString.write(value.holder, into);
2539
+ }
2540
+ allocationSize(value: TypeName): number {
2541
+ return (
2542
+ FfiConverterOptionalString.allocationSize(value.bank) +
2543
+ FfiConverterOptionalString.allocationSize(value.accountNumber) +
2544
+ FfiConverterOptionalString.allocationSize(value.holder)
2545
+ );
2546
+ }
2547
+ }
2548
+ return new FFIConverter();
2549
+ })();
2550
+
2551
+ /**
2552
+ * 교직이수(주전공) 정보
2553
+ */
2554
+ export type StudentTeachingMajorInformation = {
2555
+ majorName: string | undefined;
2556
+ qualificationNumber: string | undefined;
2557
+ initiationDate: string | undefined;
2558
+ qualificationDate: string | undefined;
2559
+ };
2560
+
2561
+ /**
2562
+ * Generated factory for {@link StudentTeachingMajorInformation} record objects.
2563
+ */
2564
+ export const StudentTeachingMajorInformation = (() => {
2565
+ const defaults = () => ({});
2566
+ const create = (() => {
2567
+ return uniffiCreateRecord<
2568
+ StudentTeachingMajorInformation,
2569
+ ReturnType<typeof defaults>
2570
+ >(defaults);
2571
+ })();
2572
+ return Object.freeze({
2573
+ /**
2574
+ * Create a frozen instance of {@link StudentTeachingMajorInformation}, with defaults specified
2575
+ * in Rust, in the {@link rusaint} crate.
2576
+ */
2577
+ create,
2578
+
2579
+ /**
2580
+ * Create a frozen instance of {@link StudentTeachingMajorInformation}, with defaults specified
2581
+ * in Rust, in the {@link rusaint} crate.
2582
+ */
2583
+ new: create,
2584
+
2585
+ /**
2586
+ * Defaults specified in the {@link rusaint} crate.
2587
+ */
2588
+ defaults: () =>
2589
+ Object.freeze(defaults()) as Partial<StudentTeachingMajorInformation>,
2590
+ });
2591
+ })();
2592
+
2593
+ const FfiConverterTypeStudentTeachingMajorInformation = (() => {
2594
+ type TypeName = StudentTeachingMajorInformation;
2595
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2596
+ read(from: RustBuffer): TypeName {
2597
+ return {
2598
+ majorName: FfiConverterOptionalString.read(from),
2599
+ qualificationNumber: FfiConverterOptionalString.read(from),
2600
+ initiationDate: FfiConverterOptionalString.read(from),
2601
+ qualificationDate: FfiConverterOptionalString.read(from),
2602
+ };
2603
+ }
2604
+ write(value: TypeName, into: RustBuffer): void {
2605
+ FfiConverterOptionalString.write(value.majorName, into);
2606
+ FfiConverterOptionalString.write(value.qualificationNumber, into);
2607
+ FfiConverterOptionalString.write(value.initiationDate, into);
2608
+ FfiConverterOptionalString.write(value.qualificationDate, into);
2609
+ }
2610
+ allocationSize(value: TypeName): number {
2611
+ return (
2612
+ FfiConverterOptionalString.allocationSize(value.majorName) +
2613
+ FfiConverterOptionalString.allocationSize(value.qualificationNumber) +
2614
+ FfiConverterOptionalString.allocationSize(value.initiationDate) +
2615
+ FfiConverterOptionalString.allocationSize(value.qualificationDate)
2616
+ );
2617
+ }
2618
+ }
2619
+ return new FFIConverter();
2620
+ })();
2621
+
2622
+ /**
2623
+ * 교직이수(복수전공) 정보
2624
+ */
2625
+ export type StudentTeachingPluralMajorInformation = {
2626
+ majorName: string | undefined;
2627
+ qualificationNumber: string | undefined;
2628
+ qualificationDate: string | undefined;
2629
+ };
2630
+
2631
+ /**
2632
+ * Generated factory for {@link StudentTeachingPluralMajorInformation} record objects.
2633
+ */
2634
+ export const StudentTeachingPluralMajorInformation = (() => {
2635
+ const defaults = () => ({});
2636
+ const create = (() => {
2637
+ return uniffiCreateRecord<
2638
+ StudentTeachingPluralMajorInformation,
2639
+ ReturnType<typeof defaults>
2640
+ >(defaults);
2641
+ })();
2642
+ return Object.freeze({
2643
+ /**
2644
+ * Create a frozen instance of {@link StudentTeachingPluralMajorInformation}, with defaults specified
2645
+ * in Rust, in the {@link rusaint} crate.
2646
+ */
2647
+ create,
2648
+
2649
+ /**
2650
+ * Create a frozen instance of {@link StudentTeachingPluralMajorInformation}, with defaults specified
2651
+ * in Rust, in the {@link rusaint} crate.
2652
+ */
2653
+ new: create,
2654
+
2655
+ /**
2656
+ * Defaults specified in the {@link rusaint} crate.
2657
+ */
2658
+ defaults: () =>
2659
+ Object.freeze(
2660
+ defaults()
2661
+ ) as Partial<StudentTeachingPluralMajorInformation>,
2662
+ });
2663
+ })();
2664
+
2665
+ const FfiConverterTypeStudentTeachingPluralMajorInformation = (() => {
2666
+ type TypeName = StudentTeachingPluralMajorInformation;
2667
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2668
+ read(from: RustBuffer): TypeName {
2669
+ return {
2670
+ majorName: FfiConverterOptionalString.read(from),
2671
+ qualificationNumber: FfiConverterOptionalString.read(from),
2672
+ qualificationDate: FfiConverterOptionalString.read(from),
2673
+ };
2674
+ }
2675
+ write(value: TypeName, into: RustBuffer): void {
2676
+ FfiConverterOptionalString.write(value.majorName, into);
2677
+ FfiConverterOptionalString.write(value.qualificationNumber, into);
2678
+ FfiConverterOptionalString.write(value.qualificationDate, into);
2679
+ }
2680
+ allocationSize(value: TypeName): number {
2681
+ return (
2682
+ FfiConverterOptionalString.allocationSize(value.majorName) +
2683
+ FfiConverterOptionalString.allocationSize(value.qualificationNumber) +
2684
+ FfiConverterOptionalString.allocationSize(value.qualificationDate)
2685
+ );
2686
+ }
2687
+ }
2688
+ return new FFIConverter();
2689
+ })();
2690
+
2691
+ /**
2692
+ * 편입정보 내 기록
2693
+ */
2694
+ export type StudentTransferRecord = {
2695
+ isTransfer: string;
2696
+ admissionDate: string;
2697
+ admissionGrade: string;
2698
+ admissionTerm: string;
2699
+ acceptedCredit: string;
2700
+ acceptedTerms: string;
2701
+ };
2702
+
2703
+ /**
2704
+ * Generated factory for {@link StudentTransferRecord} record objects.
2705
+ */
2706
+ export const StudentTransferRecord = (() => {
2707
+ const defaults = () => ({});
2708
+ const create = (() => {
2709
+ return uniffiCreateRecord<
2710
+ StudentTransferRecord,
2711
+ ReturnType<typeof defaults>
2712
+ >(defaults);
2713
+ })();
2714
+ return Object.freeze({
2715
+ /**
2716
+ * Create a frozen instance of {@link StudentTransferRecord}, with defaults specified
2717
+ * in Rust, in the {@link rusaint} crate.
2718
+ */
2719
+ create,
2720
+
2721
+ /**
2722
+ * Create a frozen instance of {@link StudentTransferRecord}, with defaults specified
2723
+ * in Rust, in the {@link rusaint} crate.
2724
+ */
2725
+ new: create,
2726
+
2727
+ /**
2728
+ * Defaults specified in the {@link rusaint} crate.
2729
+ */
2730
+ defaults: () => Object.freeze(defaults()) as Partial<StudentTransferRecord>,
2731
+ });
2732
+ })();
2733
+
2734
+ const FfiConverterTypeStudentTransferRecord = (() => {
2735
+ type TypeName = StudentTransferRecord;
2736
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2737
+ read(from: RustBuffer): TypeName {
2738
+ return {
2739
+ isTransfer: FfiConverterString.read(from),
2740
+ admissionDate: FfiConverterString.read(from),
2741
+ admissionGrade: FfiConverterString.read(from),
2742
+ admissionTerm: FfiConverterString.read(from),
2743
+ acceptedCredit: FfiConverterString.read(from),
2744
+ acceptedTerms: FfiConverterString.read(from),
2745
+ };
2746
+ }
2747
+ write(value: TypeName, into: RustBuffer): void {
2748
+ FfiConverterString.write(value.isTransfer, into);
2749
+ FfiConverterString.write(value.admissionDate, into);
2750
+ FfiConverterString.write(value.admissionGrade, into);
2751
+ FfiConverterString.write(value.admissionTerm, into);
2752
+ FfiConverterString.write(value.acceptedCredit, into);
2753
+ FfiConverterString.write(value.acceptedTerms, into);
2754
+ }
2755
+ allocationSize(value: TypeName): number {
2756
+ return (
2757
+ FfiConverterString.allocationSize(value.isTransfer) +
2758
+ FfiConverterString.allocationSize(value.admissionDate) +
2759
+ FfiConverterString.allocationSize(value.admissionGrade) +
2760
+ FfiConverterString.allocationSize(value.admissionTerm) +
2761
+ FfiConverterString.allocationSize(value.acceptedCredit) +
2762
+ FfiConverterString.allocationSize(value.acceptedTerms)
2763
+ );
2764
+ }
2765
+ }
2766
+ return new FFIConverter();
2767
+ })();
2768
+
2769
+ /**
2770
+ * 학생 편입 정보
2771
+ */
2772
+ export type StudentTransferRecords = {
2773
+ records: Array<StudentTransferRecord>;
2774
+ };
2775
+
2776
+ /**
2777
+ * Generated factory for {@link StudentTransferRecords} record objects.
2778
+ */
2779
+ export const StudentTransferRecords = (() => {
2780
+ const defaults = () => ({});
2781
+ const create = (() => {
2782
+ return uniffiCreateRecord<
2783
+ StudentTransferRecords,
2784
+ ReturnType<typeof defaults>
2785
+ >(defaults);
2786
+ })();
2787
+ return Object.freeze({
2788
+ /**
2789
+ * Create a frozen instance of {@link StudentTransferRecords}, with defaults specified
2790
+ * in Rust, in the {@link rusaint} crate.
2791
+ */
2792
+ create,
2793
+
2794
+ /**
2795
+ * Create a frozen instance of {@link StudentTransferRecords}, with defaults specified
2796
+ * in Rust, in the {@link rusaint} crate.
2797
+ */
2798
+ new: create,
2799
+
2800
+ /**
2801
+ * Defaults specified in the {@link rusaint} crate.
2802
+ */
2803
+ defaults: () =>
2804
+ Object.freeze(defaults()) as Partial<StudentTransferRecords>,
2805
+ });
2806
+ })();
2807
+
2808
+ const FfiConverterTypeStudentTransferRecords = (() => {
2809
+ type TypeName = StudentTransferRecords;
2810
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2811
+ read(from: RustBuffer): TypeName {
2812
+ return {
2813
+ records: FfiConverterArrayTypeStudentTransferRecord.read(from),
2814
+ };
2815
+ }
2816
+ write(value: TypeName, into: RustBuffer): void {
2817
+ FfiConverterArrayTypeStudentTransferRecord.write(value.records, into);
2818
+ }
2819
+ allocationSize(value: TypeName): number {
2820
+ return FfiConverterArrayTypeStudentTransferRecord.allocationSize(
2821
+ value.records
2822
+ );
2823
+ }
2824
+ }
2825
+ return new FFIConverter();
2826
+ })();
2827
+
2828
+ /**
2829
+ * 학생의 직업 정보
2830
+ */
2831
+ export type StudentWorkInformation = {
2832
+ job: string | undefined;
2833
+ publicOfficial: string | undefined;
2834
+ companyName: string | undefined;
2835
+ departmentName: string | undefined;
2836
+ title: string | undefined;
2837
+ zipCode: string | undefined;
2838
+ address: string | undefined;
2839
+ specificAddress: string | undefined;
2840
+ telNumber: string | undefined;
2841
+ faxNumber: string | undefined;
2842
+ };
2843
+
2844
+ /**
2845
+ * Generated factory for {@link StudentWorkInformation} record objects.
2846
+ */
2847
+ export const StudentWorkInformation = (() => {
2848
+ const defaults = () => ({});
2849
+ const create = (() => {
2850
+ return uniffiCreateRecord<
2851
+ StudentWorkInformation,
2852
+ ReturnType<typeof defaults>
2853
+ >(defaults);
2854
+ })();
2855
+ return Object.freeze({
2856
+ /**
2857
+ * Create a frozen instance of {@link StudentWorkInformation}, with defaults specified
2858
+ * in Rust, in the {@link rusaint} crate.
2859
+ */
2860
+ create,
2861
+
2862
+ /**
2863
+ * Create a frozen instance of {@link StudentWorkInformation}, with defaults specified
2864
+ * in Rust, in the {@link rusaint} crate.
2865
+ */
2866
+ new: create,
2867
+
2868
+ /**
2869
+ * Defaults specified in the {@link rusaint} crate.
2870
+ */
2871
+ defaults: () =>
2872
+ Object.freeze(defaults()) as Partial<StudentWorkInformation>,
2873
+ });
2874
+ })();
2875
+
2876
+ const FfiConverterTypeStudentWorkInformation = (() => {
2877
+ type TypeName = StudentWorkInformation;
2878
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2879
+ read(from: RustBuffer): TypeName {
2880
+ return {
2881
+ job: FfiConverterOptionalString.read(from),
2882
+ publicOfficial: FfiConverterOptionalString.read(from),
2883
+ companyName: FfiConverterOptionalString.read(from),
2884
+ departmentName: FfiConverterOptionalString.read(from),
2885
+ title: FfiConverterOptionalString.read(from),
2886
+ zipCode: FfiConverterOptionalString.read(from),
2887
+ address: FfiConverterOptionalString.read(from),
2888
+ specificAddress: FfiConverterOptionalString.read(from),
2889
+ telNumber: FfiConverterOptionalString.read(from),
2890
+ faxNumber: FfiConverterOptionalString.read(from),
2891
+ };
2892
+ }
2893
+ write(value: TypeName, into: RustBuffer): void {
2894
+ FfiConverterOptionalString.write(value.job, into);
2895
+ FfiConverterOptionalString.write(value.publicOfficial, into);
2896
+ FfiConverterOptionalString.write(value.companyName, into);
2897
+ FfiConverterOptionalString.write(value.departmentName, into);
2898
+ FfiConverterOptionalString.write(value.title, into);
2899
+ FfiConverterOptionalString.write(value.zipCode, into);
2900
+ FfiConverterOptionalString.write(value.address, into);
2901
+ FfiConverterOptionalString.write(value.specificAddress, into);
2902
+ FfiConverterOptionalString.write(value.telNumber, into);
2903
+ FfiConverterOptionalString.write(value.faxNumber, into);
2904
+ }
2905
+ allocationSize(value: TypeName): number {
2906
+ return (
2907
+ FfiConverterOptionalString.allocationSize(value.job) +
2908
+ FfiConverterOptionalString.allocationSize(value.publicOfficial) +
2909
+ FfiConverterOptionalString.allocationSize(value.companyName) +
2910
+ FfiConverterOptionalString.allocationSize(value.departmentName) +
2911
+ FfiConverterOptionalString.allocationSize(value.title) +
2912
+ FfiConverterOptionalString.allocationSize(value.zipCode) +
2913
+ FfiConverterOptionalString.allocationSize(value.address) +
2914
+ FfiConverterOptionalString.allocationSize(value.specificAddress) +
2915
+ FfiConverterOptionalString.allocationSize(value.telNumber) +
2916
+ FfiConverterOptionalString.allocationSize(value.faxNumber)
2917
+ );
2918
+ }
2919
+ }
2920
+ return new FFIConverter();
2921
+ })();
2922
+
2923
+ /**
2924
+ * uniffi 지원을 위한 u32 Pair입니다.
2925
+ */
2926
+ export type UnsignedIntPair = {
2927
+ first: /*u32*/ number;
2928
+ second: /*u32*/ number;
2929
+ };
2930
+
2931
+ /**
2932
+ * Generated factory for {@link UnsignedIntPair} record objects.
2933
+ */
2934
+ export const UnsignedIntPair = (() => {
2935
+ const defaults = () => ({});
2936
+ const create = (() => {
2937
+ return uniffiCreateRecord<UnsignedIntPair, ReturnType<typeof defaults>>(
2938
+ defaults
2939
+ );
2940
+ })();
2941
+ return Object.freeze({
2942
+ /**
2943
+ * Create a frozen instance of {@link UnsignedIntPair}, with defaults specified
2944
+ * in Rust, in the {@link rusaint} crate.
2945
+ */
2946
+ create,
2947
+
2948
+ /**
2949
+ * Create a frozen instance of {@link UnsignedIntPair}, with defaults specified
2950
+ * in Rust, in the {@link rusaint} crate.
2951
+ */
2952
+ new: create,
2953
+
2954
+ /**
2955
+ * Defaults specified in the {@link rusaint} crate.
2956
+ */
2957
+ defaults: () => Object.freeze(defaults()) as Partial<UnsignedIntPair>,
2958
+ });
2959
+ })();
2960
+
2961
+ const FfiConverterTypeUnsignedIntPair = (() => {
2962
+ type TypeName = UnsignedIntPair;
2963
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
2964
+ read(from: RustBuffer): TypeName {
2965
+ return {
2966
+ first: FfiConverterUInt32.read(from),
2967
+ second: FfiConverterUInt32.read(from),
2968
+ };
2969
+ }
2970
+ write(value: TypeName, into: RustBuffer): void {
2971
+ FfiConverterUInt32.write(value.first, into);
2972
+ FfiConverterUInt32.write(value.second, into);
2973
+ }
2974
+ allocationSize(value: TypeName): number {
2975
+ return (
2976
+ FfiConverterUInt32.allocationSize(value.first) +
2977
+ FfiConverterUInt32.allocationSize(value.second)
2978
+ );
2979
+ }
2980
+ }
2981
+ return new FFIConverter();
2982
+ })();
2983
+
2984
+ const stringConverter = {
2985
+ stringToBytes: (s: string) =>
2986
+ uniffiCaller.rustCall((status) =>
2987
+ nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_arraybuffer(
2988
+ s,
2989
+ status
2990
+ )
2991
+ ),
2992
+ bytesToString: (ab: UniffiByteArray) =>
2993
+ uniffiCaller.rustCall((status) =>
2994
+ nativeModule().ubrn_uniffi_internal_fn_func_ffi__arraybuffer_to_string(
2995
+ ab,
2996
+ status
2997
+ )
2998
+ ),
2999
+ stringByteLength: (s: string) =>
3000
+ uniffiCaller.rustCall((status) =>
3001
+ nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_byte_length(
3002
+ s,
3003
+ status
3004
+ )
3005
+ ),
3006
+ };
3007
+ const FfiConverterString = uniffiCreateFfiConverterString(stringConverter);
3008
+
3009
+ /**
3010
+ * Typealias from the type name used in the UDL file to the builtin type. This
3011
+ * is needed because the UDL type name is used in function/method signatures.
3012
+ */
3013
+ export type U32Pair = UnsignedIntPair;
3014
+ // FfiConverter for U32Pair, a type alias for UnsignedIntPair.
3015
+ const FfiConverterTypeU32Pair = FfiConverterTypeUnsignedIntPair;
3016
+
3017
+ // Enum: ClassScore
3018
+ export enum ClassScore_Tags {
3019
+ Pass = 'Pass',
3020
+ Failed = 'Failed',
3021
+ Score = 'Score',
3022
+ Empty = 'Empty',
3023
+ }
3024
+ /**
3025
+ * 과목 점수
3026
+ */
3027
+ export const ClassScore = (() => {
3028
+ type Pass__interface = {
3029
+ tag: ClassScore_Tags.Pass;
3030
+ };
3031
+
3032
+ /**
3033
+ * P/F 과목의 Pass
3034
+ */
3035
+ class Pass_ extends UniffiEnum implements Pass__interface {
3036
+ /**
3037
+ * @private
3038
+ * This field is private and should not be used, use `tag` instead.
3039
+ */
3040
+ readonly [uniffiTypeNameSymbol] = 'ClassScore';
3041
+ readonly tag = ClassScore_Tags.Pass;
3042
+ constructor() {
3043
+ super('ClassScore', 'Pass');
3044
+ }
3045
+
3046
+ static new(): Pass_ {
3047
+ return new Pass_();
3048
+ }
3049
+
3050
+ static instanceOf(obj: any): obj is Pass_ {
3051
+ return obj.tag === ClassScore_Tags.Pass;
3052
+ }
3053
+ }
3054
+
3055
+ type Failed__interface = {
3056
+ tag: ClassScore_Tags.Failed;
3057
+ };
3058
+
3059
+ /**
3060
+ * P/F 과목의 Failed
3061
+ */
3062
+ class Failed_ extends UniffiEnum implements Failed__interface {
3063
+ /**
3064
+ * @private
3065
+ * This field is private and should not be used, use `tag` instead.
3066
+ */
3067
+ readonly [uniffiTypeNameSymbol] = 'ClassScore';
3068
+ readonly tag = ClassScore_Tags.Failed;
3069
+ constructor() {
3070
+ super('ClassScore', 'Failed');
3071
+ }
3072
+
3073
+ static new(): Failed_ {
3074
+ return new Failed_();
3075
+ }
3076
+
3077
+ static instanceOf(obj: any): obj is Failed_ {
3078
+ return obj.tag === ClassScore_Tags.Failed;
3079
+ }
3080
+ }
3081
+
3082
+ type Score__interface = {
3083
+ tag: ClassScore_Tags.Score;
3084
+ inner: Readonly<[/*u32*/ number]>;
3085
+ };
3086
+
3087
+ /**
3088
+ * 일반 과목의 점수
3089
+ */
3090
+ class Score_ extends UniffiEnum implements Score__interface {
3091
+ /**
3092
+ * @private
3093
+ * This field is private and should not be used, use `tag` instead.
3094
+ */
3095
+ readonly [uniffiTypeNameSymbol] = 'ClassScore';
3096
+ readonly tag = ClassScore_Tags.Score;
3097
+ readonly inner: Readonly<[/*u32*/ number]>;
3098
+ constructor(v0: /*u32*/ number) {
3099
+ super('ClassScore', 'Score');
3100
+ this.inner = Object.freeze([v0]);
3101
+ }
3102
+
3103
+ static new(v0: /*u32*/ number): Score_ {
3104
+ return new Score_(v0);
3105
+ }
3106
+
3107
+ static instanceOf(obj: any): obj is Score_ {
3108
+ return obj.tag === ClassScore_Tags.Score;
3109
+ }
3110
+ }
3111
+
3112
+ type Empty__interface = {
3113
+ tag: ClassScore_Tags.Empty;
3114
+ };
3115
+
3116
+ /**
3117
+ * 성적 없음
3118
+ */
3119
+ class Empty_ extends UniffiEnum implements Empty__interface {
3120
+ /**
3121
+ * @private
3122
+ * This field is private and should not be used, use `tag` instead.
3123
+ */
3124
+ readonly [uniffiTypeNameSymbol] = 'ClassScore';
3125
+ readonly tag = ClassScore_Tags.Empty;
3126
+ constructor() {
3127
+ super('ClassScore', 'Empty');
3128
+ }
3129
+
3130
+ static new(): Empty_ {
3131
+ return new Empty_();
3132
+ }
3133
+
3134
+ static instanceOf(obj: any): obj is Empty_ {
3135
+ return obj.tag === ClassScore_Tags.Empty;
3136
+ }
3137
+ }
3138
+
3139
+ function instanceOf(obj: any): obj is ClassScore {
3140
+ return obj[uniffiTypeNameSymbol] === 'ClassScore';
3141
+ }
3142
+
3143
+ return Object.freeze({
3144
+ instanceOf,
3145
+ Pass: Pass_,
3146
+ Failed: Failed_,
3147
+ Score: Score_,
3148
+ Empty: Empty_,
3149
+ });
3150
+ })();
3151
+
3152
+ /**
3153
+ * 과목 점수
3154
+ */
3155
+
3156
+ export type ClassScore = InstanceType<
3157
+ (typeof ClassScore)[keyof Omit<typeof ClassScore, 'instanceOf'>]
3158
+ >;
3159
+
3160
+ // FfiConverter for enum ClassScore
3161
+ const FfiConverterTypeClassScore = (() => {
3162
+ const ordinalConverter = FfiConverterInt32;
3163
+ type TypeName = ClassScore;
3164
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
3165
+ read(from: RustBuffer): TypeName {
3166
+ switch (ordinalConverter.read(from)) {
3167
+ case 1:
3168
+ return new ClassScore.Pass();
3169
+ case 2:
3170
+ return new ClassScore.Failed();
3171
+ case 3:
3172
+ return new ClassScore.Score(FfiConverterUInt32.read(from));
3173
+ case 4:
3174
+ return new ClassScore.Empty();
3175
+ default:
3176
+ throw new UniffiInternalError.UnexpectedEnumCase();
3177
+ }
3178
+ }
3179
+ write(value: TypeName, into: RustBuffer): void {
3180
+ switch (value.tag) {
3181
+ case ClassScore_Tags.Pass: {
3182
+ ordinalConverter.write(1, into);
3183
+ return;
3184
+ }
3185
+ case ClassScore_Tags.Failed: {
3186
+ ordinalConverter.write(2, into);
3187
+ return;
3188
+ }
3189
+ case ClassScore_Tags.Score: {
3190
+ ordinalConverter.write(3, into);
3191
+ const inner = value.inner;
3192
+ FfiConverterUInt32.write(inner[0], into);
3193
+ return;
3194
+ }
3195
+ case ClassScore_Tags.Empty: {
3196
+ ordinalConverter.write(4, into);
3197
+ return;
3198
+ }
3199
+ default:
3200
+ // Throwing from here means that ClassScore_Tags hasn't matched an ordinal.
3201
+ throw new UniffiInternalError.UnexpectedEnumCase();
3202
+ }
3203
+ }
3204
+ allocationSize(value: TypeName): number {
3205
+ switch (value.tag) {
3206
+ case ClassScore_Tags.Pass: {
3207
+ return ordinalConverter.allocationSize(1);
3208
+ }
3209
+ case ClassScore_Tags.Failed: {
3210
+ return ordinalConverter.allocationSize(2);
3211
+ }
3212
+ case ClassScore_Tags.Score: {
3213
+ const inner = value.inner;
3214
+ let size = ordinalConverter.allocationSize(3);
3215
+ size += FfiConverterUInt32.allocationSize(inner[0]);
3216
+ return size;
3217
+ }
3218
+ case ClassScore_Tags.Empty: {
3219
+ return ordinalConverter.allocationSize(4);
3220
+ }
3221
+ default:
3222
+ throw new UniffiInternalError.UnexpectedEnumCase();
3223
+ }
3224
+ }
3225
+ }
3226
+ return new FFIConverter();
3227
+ })();
3228
+
3229
+ /**
3230
+ * 학위과정
3231
+ */
3232
+ export enum CourseType {
3233
+ /**
3234
+ * 박사과정
3235
+ */
3236
+ Phd,
3237
+ /**
3238
+ * 석사과정
3239
+ */
3240
+ Master,
3241
+ /**
3242
+ * 석박과정
3243
+ */
3244
+ PhdIntergrated,
3245
+ /**
3246
+ * 연구과정
3247
+ */
3248
+ Research,
3249
+ /**
3250
+ * 학사과정
3251
+ */
3252
+ Bachelor,
3253
+ }
3254
+
3255
+ const FfiConverterTypeCourseType = (() => {
3256
+ const ordinalConverter = FfiConverterInt32;
3257
+ type TypeName = CourseType;
3258
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
3259
+ read(from: RustBuffer): TypeName {
3260
+ switch (ordinalConverter.read(from)) {
3261
+ case 1:
3262
+ return CourseType.Phd;
3263
+ case 2:
3264
+ return CourseType.Master;
3265
+ case 3:
3266
+ return CourseType.PhdIntergrated;
3267
+ case 4:
3268
+ return CourseType.Research;
3269
+ case 5:
3270
+ return CourseType.Bachelor;
3271
+ default:
3272
+ throw new UniffiInternalError.UnexpectedEnumCase();
3273
+ }
3274
+ }
3275
+ write(value: TypeName, into: RustBuffer): void {
3276
+ switch (value) {
3277
+ case CourseType.Phd:
3278
+ return ordinalConverter.write(1, into);
3279
+ case CourseType.Master:
3280
+ return ordinalConverter.write(2, into);
3281
+ case CourseType.PhdIntergrated:
3282
+ return ordinalConverter.write(3, into);
3283
+ case CourseType.Research:
3284
+ return ordinalConverter.write(4, into);
3285
+ case CourseType.Bachelor:
3286
+ return ordinalConverter.write(5, into);
3287
+ }
3288
+ }
3289
+ allocationSize(value: TypeName): number {
3290
+ return ordinalConverter.allocationSize(0);
3291
+ }
3292
+ }
3293
+ return new FFIConverter();
3294
+ })();
3295
+
3296
+ // Enum: LectureCategory
3297
+ export enum LectureCategory_Tags {
3298
+ Major = 'Major',
3299
+ RequiredElective = 'RequiredElective',
3300
+ OptionalElective = 'OptionalElective',
3301
+ Chapel = 'Chapel',
3302
+ Education = 'Education',
3303
+ Graduated = 'Graduated',
3304
+ ConnectedMajor = 'ConnectedMajor',
3305
+ UnitedMajor = 'UnitedMajor',
3306
+ FindByProfessor = 'FindByProfessor',
3307
+ FindByLecture = 'FindByLecture',
3308
+ RecognizedOtherMajor = 'RecognizedOtherMajor',
3309
+ Cyber = 'Cyber',
3310
+ }
3311
+ /**
3312
+ * 강의를 찾을 때 사용하는 강의 카테고리
3313
+ */
3314
+ export const LectureCategory = (() => {
3315
+ type Major__interface = {
3316
+ tag: LectureCategory_Tags.Major;
3317
+ inner: Readonly<{
3318
+ collage: string;
3319
+ department: string;
3320
+ major: string | undefined;
3321
+ }>;
3322
+ };
3323
+
3324
+ /**
3325
+ * 전공 강의
3326
+ */
3327
+ class Major_ extends UniffiEnum implements Major__interface {
3328
+ /**
3329
+ * @private
3330
+ * This field is private and should not be used, use `tag` instead.
3331
+ */
3332
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3333
+ readonly tag = LectureCategory_Tags.Major;
3334
+ readonly inner: Readonly<{
3335
+ collage: string;
3336
+ department: string;
3337
+ major: string | undefined;
3338
+ }>;
3339
+ constructor(inner: {
3340
+ /**
3341
+ * 단과대명
3342
+ */ collage: string;
3343
+ /**
3344
+ * 학부명
3345
+ */ department: string;
3346
+ /**
3347
+ * 전공명
3348
+ */ major: string | undefined;
3349
+ }) {
3350
+ super('LectureCategory', 'Major');
3351
+ this.inner = Object.freeze(inner);
3352
+ }
3353
+
3354
+ static new(inner: {
3355
+ /**
3356
+ * 단과대명
3357
+ */ collage: string;
3358
+ /**
3359
+ * 학부명
3360
+ */ department: string;
3361
+ /**
3362
+ * 전공명
3363
+ */ major: string | undefined;
3364
+ }): Major_ {
3365
+ return new Major_(inner);
3366
+ }
3367
+
3368
+ static instanceOf(obj: any): obj is Major_ {
3369
+ return obj.tag === LectureCategory_Tags.Major;
3370
+ }
3371
+ }
3372
+
3373
+ type RequiredElective__interface = {
3374
+ tag: LectureCategory_Tags.RequiredElective;
3375
+ inner: Readonly<{ lectureName: string }>;
3376
+ };
3377
+
3378
+ /**
3379
+ * 교양필수
3380
+ */
3381
+ class RequiredElective_
3382
+ extends UniffiEnum
3383
+ implements RequiredElective__interface
3384
+ {
3385
+ /**
3386
+ * @private
3387
+ * This field is private and should not be used, use `tag` instead.
3388
+ */
3389
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3390
+ readonly tag = LectureCategory_Tags.RequiredElective;
3391
+ readonly inner: Readonly<{ lectureName: string }>;
3392
+ constructor(inner: {
3393
+ /**
3394
+ * 과목명
3395
+ */ lectureName: string;
3396
+ }) {
3397
+ super('LectureCategory', 'RequiredElective');
3398
+ this.inner = Object.freeze(inner);
3399
+ }
3400
+
3401
+ static new(inner: {
3402
+ /**
3403
+ * 과목명
3404
+ */ lectureName: string;
3405
+ }): RequiredElective_ {
3406
+ return new RequiredElective_(inner);
3407
+ }
3408
+
3409
+ static instanceOf(obj: any): obj is RequiredElective_ {
3410
+ return obj.tag === LectureCategory_Tags.RequiredElective;
3411
+ }
3412
+ }
3413
+
3414
+ type OptionalElective__interface = {
3415
+ tag: LectureCategory_Tags.OptionalElective;
3416
+ inner: Readonly<{ category: string }>;
3417
+ };
3418
+
3419
+ /**
3420
+ * 교양선택
3421
+ */
3422
+ class OptionalElective_
3423
+ extends UniffiEnum
3424
+ implements OptionalElective__interface
3425
+ {
3426
+ /**
3427
+ * @private
3428
+ * This field is private and should not be used, use `tag` instead.
3429
+ */
3430
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3431
+ readonly tag = LectureCategory_Tags.OptionalElective;
3432
+ readonly inner: Readonly<{ category: string }>;
3433
+ constructor(inner: {
3434
+ /**
3435
+ * 교양 분류
3436
+ */ category: string;
3437
+ }) {
3438
+ super('LectureCategory', 'OptionalElective');
3439
+ this.inner = Object.freeze(inner);
3440
+ }
3441
+
3442
+ static new(inner: {
3443
+ /**
3444
+ * 교양 분류
3445
+ */ category: string;
3446
+ }): OptionalElective_ {
3447
+ return new OptionalElective_(inner);
3448
+ }
3449
+
3450
+ static instanceOf(obj: any): obj is OptionalElective_ {
3451
+ return obj.tag === LectureCategory_Tags.OptionalElective;
3452
+ }
3453
+ }
3454
+
3455
+ type Chapel__interface = {
3456
+ tag: LectureCategory_Tags.Chapel;
3457
+ inner: Readonly<{ lectureName: string }>;
3458
+ };
3459
+
3460
+ /**
3461
+ * 채플
3462
+ */
3463
+ class Chapel_ extends UniffiEnum implements Chapel__interface {
3464
+ /**
3465
+ * @private
3466
+ * This field is private and should not be used, use `tag` instead.
3467
+ */
3468
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3469
+ readonly tag = LectureCategory_Tags.Chapel;
3470
+ readonly inner: Readonly<{ lectureName: string }>;
3471
+ constructor(inner: {
3472
+ /**
3473
+ * 과목명
3474
+ */ lectureName: string;
3475
+ }) {
3476
+ super('LectureCategory', 'Chapel');
3477
+ this.inner = Object.freeze(inner);
3478
+ }
3479
+
3480
+ static new(inner: {
3481
+ /**
3482
+ * 과목명
3483
+ */ lectureName: string;
3484
+ }): Chapel_ {
3485
+ return new Chapel_(inner);
3486
+ }
3487
+
3488
+ static instanceOf(obj: any): obj is Chapel_ {
3489
+ return obj.tag === LectureCategory_Tags.Chapel;
3490
+ }
3491
+ }
3492
+
3493
+ type Education__interface = {
3494
+ tag: LectureCategory_Tags.Education;
3495
+ };
3496
+
3497
+ /**
3498
+ * 교직
3499
+ */
3500
+ class Education_ extends UniffiEnum implements Education__interface {
3501
+ /**
3502
+ * @private
3503
+ * This field is private and should not be used, use `tag` instead.
3504
+ */
3505
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3506
+ readonly tag = LectureCategory_Tags.Education;
3507
+ constructor() {
3508
+ super('LectureCategory', 'Education');
3509
+ }
3510
+
3511
+ static new(): Education_ {
3512
+ return new Education_();
3513
+ }
3514
+
3515
+ static instanceOf(obj: any): obj is Education_ {
3516
+ return obj.tag === LectureCategory_Tags.Education;
3517
+ }
3518
+ }
3519
+
3520
+ type Graduated__interface = {
3521
+ tag: LectureCategory_Tags.Graduated;
3522
+ inner: Readonly<{ collage: string; department: string }>;
3523
+ };
3524
+
3525
+ /**
3526
+ * 대학원
3527
+ */
3528
+ class Graduated_ extends UniffiEnum implements Graduated__interface {
3529
+ /**
3530
+ * @private
3531
+ * This field is private and should not be used, use `tag` instead.
3532
+ */
3533
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3534
+ readonly tag = LectureCategory_Tags.Graduated;
3535
+ readonly inner: Readonly<{ collage: string; department: string }>;
3536
+ constructor(inner: {
3537
+ /**
3538
+ * 단과대명
3539
+ */ collage: string;
3540
+ /**
3541
+ * 학부명
3542
+ */ department: string;
3543
+ }) {
3544
+ super('LectureCategory', 'Graduated');
3545
+ this.inner = Object.freeze(inner);
3546
+ }
3547
+
3548
+ static new(inner: {
3549
+ /**
3550
+ * 단과대명
3551
+ */ collage: string;
3552
+ /**
3553
+ * 학부명
3554
+ */ department: string;
3555
+ }): Graduated_ {
3556
+ return new Graduated_(inner);
3557
+ }
3558
+
3559
+ static instanceOf(obj: any): obj is Graduated_ {
3560
+ return obj.tag === LectureCategory_Tags.Graduated;
3561
+ }
3562
+ }
3563
+
3564
+ type ConnectedMajor__interface = {
3565
+ tag: LectureCategory_Tags.ConnectedMajor;
3566
+ inner: Readonly<{ major: string }>;
3567
+ };
3568
+
3569
+ /**
3570
+ * 연계전공
3571
+ */
3572
+ class ConnectedMajor_
3573
+ extends UniffiEnum
3574
+ implements ConnectedMajor__interface
3575
+ {
3576
+ /**
3577
+ * @private
3578
+ * This field is private and should not be used, use `tag` instead.
3579
+ */
3580
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3581
+ readonly tag = LectureCategory_Tags.ConnectedMajor;
3582
+ readonly inner: Readonly<{ major: string }>;
3583
+ constructor(inner: {
3584
+ /**
3585
+ * 전공명
3586
+ */ major: string;
3587
+ }) {
3588
+ super('LectureCategory', 'ConnectedMajor');
3589
+ this.inner = Object.freeze(inner);
3590
+ }
3591
+
3592
+ static new(inner: {
3593
+ /**
3594
+ * 전공명
3595
+ */ major: string;
3596
+ }): ConnectedMajor_ {
3597
+ return new ConnectedMajor_(inner);
3598
+ }
3599
+
3600
+ static instanceOf(obj: any): obj is ConnectedMajor_ {
3601
+ return obj.tag === LectureCategory_Tags.ConnectedMajor;
3602
+ }
3603
+ }
3604
+
3605
+ type UnitedMajor__interface = {
3606
+ tag: LectureCategory_Tags.UnitedMajor;
3607
+ inner: Readonly<{ major: string }>;
3608
+ };
3609
+
3610
+ /**
3611
+ * 융합전공
3612
+ */
3613
+ class UnitedMajor_ extends UniffiEnum implements UnitedMajor__interface {
3614
+ /**
3615
+ * @private
3616
+ * This field is private and should not be used, use `tag` instead.
3617
+ */
3618
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3619
+ readonly tag = LectureCategory_Tags.UnitedMajor;
3620
+ readonly inner: Readonly<{ major: string }>;
3621
+ constructor(inner: {
3622
+ /**
3623
+ * 전공명
3624
+ */ major: string;
3625
+ }) {
3626
+ super('LectureCategory', 'UnitedMajor');
3627
+ this.inner = Object.freeze(inner);
3628
+ }
3629
+
3630
+ static new(inner: {
3631
+ /**
3632
+ * 전공명
3633
+ */ major: string;
3634
+ }): UnitedMajor_ {
3635
+ return new UnitedMajor_(inner);
3636
+ }
3637
+
3638
+ static instanceOf(obj: any): obj is UnitedMajor_ {
3639
+ return obj.tag === LectureCategory_Tags.UnitedMajor;
3640
+ }
3641
+ }
3642
+
3643
+ type FindByProfessor__interface = {
3644
+ tag: LectureCategory_Tags.FindByProfessor;
3645
+ inner: Readonly<{ keyword: string }>;
3646
+ };
3647
+
3648
+ /**
3649
+ * 교수명 검색
3650
+ */
3651
+ class FindByProfessor_
3652
+ extends UniffiEnum
3653
+ implements FindByProfessor__interface
3654
+ {
3655
+ /**
3656
+ * @private
3657
+ * This field is private and should not be used, use `tag` instead.
3658
+ */
3659
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3660
+ readonly tag = LectureCategory_Tags.FindByProfessor;
3661
+ readonly inner: Readonly<{ keyword: string }>;
3662
+ constructor(inner: {
3663
+ /**
3664
+ * 교수명
3665
+ */ keyword: string;
3666
+ }) {
3667
+ super('LectureCategory', 'FindByProfessor');
3668
+ this.inner = Object.freeze(inner);
3669
+ }
3670
+
3671
+ static new(inner: {
3672
+ /**
3673
+ * 교수명
3674
+ */ keyword: string;
3675
+ }): FindByProfessor_ {
3676
+ return new FindByProfessor_(inner);
3677
+ }
3678
+
3679
+ static instanceOf(obj: any): obj is FindByProfessor_ {
3680
+ return obj.tag === LectureCategory_Tags.FindByProfessor;
3681
+ }
3682
+ }
3683
+
3684
+ type FindByLecture__interface = {
3685
+ tag: LectureCategory_Tags.FindByLecture;
3686
+ inner: Readonly<{ keyword: string }>;
3687
+ };
3688
+
3689
+ /**
3690
+ * 과목명 검색
3691
+ */
3692
+ class FindByLecture_ extends UniffiEnum implements FindByLecture__interface {
3693
+ /**
3694
+ * @private
3695
+ * This field is private and should not be used, use `tag` instead.
3696
+ */
3697
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3698
+ readonly tag = LectureCategory_Tags.FindByLecture;
3699
+ readonly inner: Readonly<{ keyword: string }>;
3700
+ constructor(inner: {
3701
+ /**
3702
+ * 과목명
3703
+ */ keyword: string;
3704
+ }) {
3705
+ super('LectureCategory', 'FindByLecture');
3706
+ this.inner = Object.freeze(inner);
3707
+ }
3708
+
3709
+ static new(inner: {
3710
+ /**
3711
+ * 과목명
3712
+ */ keyword: string;
3713
+ }): FindByLecture_ {
3714
+ return new FindByLecture_(inner);
3715
+ }
3716
+
3717
+ static instanceOf(obj: any): obj is FindByLecture_ {
3718
+ return obj.tag === LectureCategory_Tags.FindByLecture;
3719
+ }
3720
+ }
3721
+
3722
+ type RecognizedOtherMajor__interface = {
3723
+ tag: LectureCategory_Tags.RecognizedOtherMajor;
3724
+ inner: Readonly<{
3725
+ collage: string;
3726
+ department: string;
3727
+ major: string | undefined;
3728
+ }>;
3729
+ };
3730
+
3731
+ /**
3732
+ * 타전공인정과목
3733
+ */
3734
+ class RecognizedOtherMajor_
3735
+ extends UniffiEnum
3736
+ implements RecognizedOtherMajor__interface
3737
+ {
3738
+ /**
3739
+ * @private
3740
+ * This field is private and should not be used, use `tag` instead.
3741
+ */
3742
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3743
+ readonly tag = LectureCategory_Tags.RecognizedOtherMajor;
3744
+ readonly inner: Readonly<{
3745
+ collage: string;
3746
+ department: string;
3747
+ major: string | undefined;
3748
+ }>;
3749
+ constructor(inner: {
3750
+ /**
3751
+ * 단과대명
3752
+ */ collage: string;
3753
+ /**
3754
+ * 학부명
3755
+ */ department: string;
3756
+ /**
3757
+ * 전공명
3758
+ */ major: string | undefined;
3759
+ }) {
3760
+ super('LectureCategory', 'RecognizedOtherMajor');
3761
+ this.inner = Object.freeze(inner);
3762
+ }
3763
+
3764
+ static new(inner: {
3765
+ /**
3766
+ * 단과대명
3767
+ */ collage: string;
3768
+ /**
3769
+ * 학부명
3770
+ */ department: string;
3771
+ /**
3772
+ * 전공명
3773
+ */ major: string | undefined;
3774
+ }): RecognizedOtherMajor_ {
3775
+ return new RecognizedOtherMajor_(inner);
3776
+ }
3777
+
3778
+ static instanceOf(obj: any): obj is RecognizedOtherMajor_ {
3779
+ return obj.tag === LectureCategory_Tags.RecognizedOtherMajor;
3780
+ }
3781
+ }
3782
+
3783
+ type Cyber__interface = {
3784
+ tag: LectureCategory_Tags.Cyber;
3785
+ };
3786
+
3787
+ /**
3788
+ * 숭실사이버대
3789
+ */
3790
+ class Cyber_ extends UniffiEnum implements Cyber__interface {
3791
+ /**
3792
+ * @private
3793
+ * This field is private and should not be used, use `tag` instead.
3794
+ */
3795
+ readonly [uniffiTypeNameSymbol] = 'LectureCategory';
3796
+ readonly tag = LectureCategory_Tags.Cyber;
3797
+ constructor() {
3798
+ super('LectureCategory', 'Cyber');
3799
+ }
3800
+
3801
+ static new(): Cyber_ {
3802
+ return new Cyber_();
3803
+ }
3804
+
3805
+ static instanceOf(obj: any): obj is Cyber_ {
3806
+ return obj.tag === LectureCategory_Tags.Cyber;
3807
+ }
3808
+ }
3809
+
3810
+ function instanceOf(obj: any): obj is LectureCategory {
3811
+ return obj[uniffiTypeNameSymbol] === 'LectureCategory';
3812
+ }
3813
+
3814
+ return Object.freeze({
3815
+ instanceOf,
3816
+ Major: Major_,
3817
+ RequiredElective: RequiredElective_,
3818
+ OptionalElective: OptionalElective_,
3819
+ Chapel: Chapel_,
3820
+ Education: Education_,
3821
+ Graduated: Graduated_,
3822
+ ConnectedMajor: ConnectedMajor_,
3823
+ UnitedMajor: UnitedMajor_,
3824
+ FindByProfessor: FindByProfessor_,
3825
+ FindByLecture: FindByLecture_,
3826
+ RecognizedOtherMajor: RecognizedOtherMajor_,
3827
+ Cyber: Cyber_,
3828
+ });
3829
+ })();
3830
+
3831
+ /**
3832
+ * 강의를 찾을 때 사용하는 강의 카테고리
3833
+ */
3834
+
3835
+ export type LectureCategory = InstanceType<
3836
+ (typeof LectureCategory)[keyof Omit<typeof LectureCategory, 'instanceOf'>]
3837
+ >;
3838
+
3839
+ // FfiConverter for enum LectureCategory
3840
+ const FfiConverterTypeLectureCategory = (() => {
3841
+ const ordinalConverter = FfiConverterInt32;
3842
+ type TypeName = LectureCategory;
3843
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
3844
+ read(from: RustBuffer): TypeName {
3845
+ switch (ordinalConverter.read(from)) {
3846
+ case 1:
3847
+ return new LectureCategory.Major({
3848
+ collage: FfiConverterString.read(from),
3849
+ department: FfiConverterString.read(from),
3850
+ major: FfiConverterOptionalString.read(from),
3851
+ });
3852
+ case 2:
3853
+ return new LectureCategory.RequiredElective({
3854
+ lectureName: FfiConverterString.read(from),
3855
+ });
3856
+ case 3:
3857
+ return new LectureCategory.OptionalElective({
3858
+ category: FfiConverterString.read(from),
3859
+ });
3860
+ case 4:
3861
+ return new LectureCategory.Chapel({
3862
+ lectureName: FfiConverterString.read(from),
3863
+ });
3864
+ case 5:
3865
+ return new LectureCategory.Education();
3866
+ case 6:
3867
+ return new LectureCategory.Graduated({
3868
+ collage: FfiConverterString.read(from),
3869
+ department: FfiConverterString.read(from),
3870
+ });
3871
+ case 7:
3872
+ return new LectureCategory.ConnectedMajor({
3873
+ major: FfiConverterString.read(from),
3874
+ });
3875
+ case 8:
3876
+ return new LectureCategory.UnitedMajor({
3877
+ major: FfiConverterString.read(from),
3878
+ });
3879
+ case 9:
3880
+ return new LectureCategory.FindByProfessor({
3881
+ keyword: FfiConverterString.read(from),
3882
+ });
3883
+ case 10:
3884
+ return new LectureCategory.FindByLecture({
3885
+ keyword: FfiConverterString.read(from),
3886
+ });
3887
+ case 11:
3888
+ return new LectureCategory.RecognizedOtherMajor({
3889
+ collage: FfiConverterString.read(from),
3890
+ department: FfiConverterString.read(from),
3891
+ major: FfiConverterOptionalString.read(from),
3892
+ });
3893
+ case 12:
3894
+ return new LectureCategory.Cyber();
3895
+ default:
3896
+ throw new UniffiInternalError.UnexpectedEnumCase();
3897
+ }
3898
+ }
3899
+ write(value: TypeName, into: RustBuffer): void {
3900
+ switch (value.tag) {
3901
+ case LectureCategory_Tags.Major: {
3902
+ ordinalConverter.write(1, into);
3903
+ const inner = value.inner;
3904
+ FfiConverterString.write(inner.collage, into);
3905
+ FfiConverterString.write(inner.department, into);
3906
+ FfiConverterOptionalString.write(inner.major, into);
3907
+ return;
3908
+ }
3909
+ case LectureCategory_Tags.RequiredElective: {
3910
+ ordinalConverter.write(2, into);
3911
+ const inner = value.inner;
3912
+ FfiConverterString.write(inner.lectureName, into);
3913
+ return;
3914
+ }
3915
+ case LectureCategory_Tags.OptionalElective: {
3916
+ ordinalConverter.write(3, into);
3917
+ const inner = value.inner;
3918
+ FfiConverterString.write(inner.category, into);
3919
+ return;
3920
+ }
3921
+ case LectureCategory_Tags.Chapel: {
3922
+ ordinalConverter.write(4, into);
3923
+ const inner = value.inner;
3924
+ FfiConverterString.write(inner.lectureName, into);
3925
+ return;
3926
+ }
3927
+ case LectureCategory_Tags.Education: {
3928
+ ordinalConverter.write(5, into);
3929
+ return;
3930
+ }
3931
+ case LectureCategory_Tags.Graduated: {
3932
+ ordinalConverter.write(6, into);
3933
+ const inner = value.inner;
3934
+ FfiConverterString.write(inner.collage, into);
3935
+ FfiConverterString.write(inner.department, into);
3936
+ return;
3937
+ }
3938
+ case LectureCategory_Tags.ConnectedMajor: {
3939
+ ordinalConverter.write(7, into);
3940
+ const inner = value.inner;
3941
+ FfiConverterString.write(inner.major, into);
3942
+ return;
3943
+ }
3944
+ case LectureCategory_Tags.UnitedMajor: {
3945
+ ordinalConverter.write(8, into);
3946
+ const inner = value.inner;
3947
+ FfiConverterString.write(inner.major, into);
3948
+ return;
3949
+ }
3950
+ case LectureCategory_Tags.FindByProfessor: {
3951
+ ordinalConverter.write(9, into);
3952
+ const inner = value.inner;
3953
+ FfiConverterString.write(inner.keyword, into);
3954
+ return;
3955
+ }
3956
+ case LectureCategory_Tags.FindByLecture: {
3957
+ ordinalConverter.write(10, into);
3958
+ const inner = value.inner;
3959
+ FfiConverterString.write(inner.keyword, into);
3960
+ return;
3961
+ }
3962
+ case LectureCategory_Tags.RecognizedOtherMajor: {
3963
+ ordinalConverter.write(11, into);
3964
+ const inner = value.inner;
3965
+ FfiConverterString.write(inner.collage, into);
3966
+ FfiConverterString.write(inner.department, into);
3967
+ FfiConverterOptionalString.write(inner.major, into);
3968
+ return;
3969
+ }
3970
+ case LectureCategory_Tags.Cyber: {
3971
+ ordinalConverter.write(12, into);
3972
+ return;
3973
+ }
3974
+ default:
3975
+ // Throwing from here means that LectureCategory_Tags hasn't matched an ordinal.
3976
+ throw new UniffiInternalError.UnexpectedEnumCase();
3977
+ }
3978
+ }
3979
+ allocationSize(value: TypeName): number {
3980
+ switch (value.tag) {
3981
+ case LectureCategory_Tags.Major: {
3982
+ const inner = value.inner;
3983
+ let size = ordinalConverter.allocationSize(1);
3984
+ size += FfiConverterString.allocationSize(inner.collage);
3985
+ size += FfiConverterString.allocationSize(inner.department);
3986
+ size += FfiConverterOptionalString.allocationSize(inner.major);
3987
+ return size;
3988
+ }
3989
+ case LectureCategory_Tags.RequiredElective: {
3990
+ const inner = value.inner;
3991
+ let size = ordinalConverter.allocationSize(2);
3992
+ size += FfiConverterString.allocationSize(inner.lectureName);
3993
+ return size;
3994
+ }
3995
+ case LectureCategory_Tags.OptionalElective: {
3996
+ const inner = value.inner;
3997
+ let size = ordinalConverter.allocationSize(3);
3998
+ size += FfiConverterString.allocationSize(inner.category);
3999
+ return size;
4000
+ }
4001
+ case LectureCategory_Tags.Chapel: {
4002
+ const inner = value.inner;
4003
+ let size = ordinalConverter.allocationSize(4);
4004
+ size += FfiConverterString.allocationSize(inner.lectureName);
4005
+ return size;
4006
+ }
4007
+ case LectureCategory_Tags.Education: {
4008
+ return ordinalConverter.allocationSize(5);
4009
+ }
4010
+ case LectureCategory_Tags.Graduated: {
4011
+ const inner = value.inner;
4012
+ let size = ordinalConverter.allocationSize(6);
4013
+ size += FfiConverterString.allocationSize(inner.collage);
4014
+ size += FfiConverterString.allocationSize(inner.department);
4015
+ return size;
4016
+ }
4017
+ case LectureCategory_Tags.ConnectedMajor: {
4018
+ const inner = value.inner;
4019
+ let size = ordinalConverter.allocationSize(7);
4020
+ size += FfiConverterString.allocationSize(inner.major);
4021
+ return size;
4022
+ }
4023
+ case LectureCategory_Tags.UnitedMajor: {
4024
+ const inner = value.inner;
4025
+ let size = ordinalConverter.allocationSize(8);
4026
+ size += FfiConverterString.allocationSize(inner.major);
4027
+ return size;
4028
+ }
4029
+ case LectureCategory_Tags.FindByProfessor: {
4030
+ const inner = value.inner;
4031
+ let size = ordinalConverter.allocationSize(9);
4032
+ size += FfiConverterString.allocationSize(inner.keyword);
4033
+ return size;
4034
+ }
4035
+ case LectureCategory_Tags.FindByLecture: {
4036
+ const inner = value.inner;
4037
+ let size = ordinalConverter.allocationSize(10);
4038
+ size += FfiConverterString.allocationSize(inner.keyword);
4039
+ return size;
4040
+ }
4041
+ case LectureCategory_Tags.RecognizedOtherMajor: {
4042
+ const inner = value.inner;
4043
+ let size = ordinalConverter.allocationSize(11);
4044
+ size += FfiConverterString.allocationSize(inner.collage);
4045
+ size += FfiConverterString.allocationSize(inner.department);
4046
+ size += FfiConverterOptionalString.allocationSize(inner.major);
4047
+ return size;
4048
+ }
4049
+ case LectureCategory_Tags.Cyber: {
4050
+ return ordinalConverter.allocationSize(12);
4051
+ }
4052
+ default:
4053
+ throw new UniffiInternalError.UnexpectedEnumCase();
4054
+ }
4055
+ }
4056
+ }
4057
+ return new FFIConverter();
4058
+ })();
4059
+
4060
+ /**
4061
+ * 학기 종류
4062
+ *
4063
+ * 각 애플리케이션에서의 변환은 애플리케이션 내에서 직접 처리하여야 합니다.
4064
+ */
4065
+ export enum SemesterType {
4066
+ /**
4067
+ * 1학기
4068
+ */
4069
+ One,
4070
+ /**
4071
+ * 여름학기
4072
+ */
4073
+ Summer,
4074
+ /**
4075
+ * 2학기
4076
+ */
4077
+ Two,
4078
+ /**
4079
+ * 겨울학기
4080
+ */
4081
+ Winter,
4082
+ }
4083
+
4084
+ const FfiConverterTypeSemesterType = (() => {
4085
+ const ordinalConverter = FfiConverterInt32;
4086
+ type TypeName = SemesterType;
4087
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
4088
+ read(from: RustBuffer): TypeName {
4089
+ switch (ordinalConverter.read(from)) {
4090
+ case 1:
4091
+ return SemesterType.One;
4092
+ case 2:
4093
+ return SemesterType.Summer;
4094
+ case 3:
4095
+ return SemesterType.Two;
4096
+ case 4:
4097
+ return SemesterType.Winter;
4098
+ default:
4099
+ throw new UniffiInternalError.UnexpectedEnumCase();
4100
+ }
4101
+ }
4102
+ write(value: TypeName, into: RustBuffer): void {
4103
+ switch (value) {
4104
+ case SemesterType.One:
4105
+ return ordinalConverter.write(1, into);
4106
+ case SemesterType.Summer:
4107
+ return ordinalConverter.write(2, into);
4108
+ case SemesterType.Two:
4109
+ return ordinalConverter.write(3, into);
4110
+ case SemesterType.Winter:
4111
+ return ordinalConverter.write(4, into);
4112
+ }
4113
+ }
4114
+ allocationSize(value: TypeName): number {
4115
+ return ordinalConverter.allocationSize(0);
4116
+ }
4117
+ }
4118
+ return new FFIConverter();
4119
+ })();
4120
+
4121
+ /**
4122
+ * 한 주의 요일을 표현합니다.
4123
+ */
4124
+ export enum Weekday {
4125
+ /**
4126
+ * 월요일
4127
+ */
4128
+ Mon,
4129
+ /**
4130
+ * 화요일
4131
+ */
4132
+ Tue,
4133
+ /**
4134
+ * 수요일
4135
+ */
4136
+ Wed,
4137
+ /**
4138
+ * 목요일
4139
+ */
4140
+ Thu,
4141
+ /**
4142
+ * 금요일
4143
+ */
4144
+ Fri,
4145
+ /**
4146
+ * 토요일
4147
+ */
4148
+ Sat,
4149
+ /**
4150
+ * 일요일
4151
+ */
4152
+ Sun,
4153
+ }
4154
+
4155
+ const FfiConverterTypeWeekday = (() => {
4156
+ const ordinalConverter = FfiConverterInt32;
4157
+ type TypeName = Weekday;
4158
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
4159
+ read(from: RustBuffer): TypeName {
4160
+ switch (ordinalConverter.read(from)) {
4161
+ case 1:
4162
+ return Weekday.Mon;
4163
+ case 2:
4164
+ return Weekday.Tue;
4165
+ case 3:
4166
+ return Weekday.Wed;
4167
+ case 4:
4168
+ return Weekday.Thu;
4169
+ case 5:
4170
+ return Weekday.Fri;
4171
+ case 6:
4172
+ return Weekday.Sat;
4173
+ case 7:
4174
+ return Weekday.Sun;
4175
+ default:
4176
+ throw new UniffiInternalError.UnexpectedEnumCase();
4177
+ }
4178
+ }
4179
+ write(value: TypeName, into: RustBuffer): void {
4180
+ switch (value) {
4181
+ case Weekday.Mon:
4182
+ return ordinalConverter.write(1, into);
4183
+ case Weekday.Tue:
4184
+ return ordinalConverter.write(2, into);
4185
+ case Weekday.Wed:
4186
+ return ordinalConverter.write(3, into);
4187
+ case Weekday.Thu:
4188
+ return ordinalConverter.write(4, into);
4189
+ case Weekday.Fri:
4190
+ return ordinalConverter.write(5, into);
4191
+ case Weekday.Sat:
4192
+ return ordinalConverter.write(6, into);
4193
+ case Weekday.Sun:
4194
+ return ordinalConverter.write(7, into);
4195
+ }
4196
+ }
4197
+ allocationSize(value: TypeName): number {
4198
+ return ordinalConverter.allocationSize(0);
4199
+ }
4200
+ }
4201
+ return new FFIConverter();
4202
+ })();
4203
+
4204
+ // FfiConverter for Map<string, /*f32*/number>
4205
+ const FfiConverterMapStringFloat32 = new FfiConverterMap(
4206
+ FfiConverterString,
4207
+ FfiConverterFloat32
4208
+ );
4209
+
4210
+ // FfiConverter for Map<string, GraduationRequirement>
4211
+ const FfiConverterMapStringTypeGraduationRequirement = new FfiConverterMap(
4212
+ FfiConverterString,
4213
+ FfiConverterTypeGraduationRequirement
4214
+ );
4215
+
4216
+ /**
4217
+ * 새로운 `LectureCategory`를 만드는 빌더입니다.
4218
+ */
4219
+ export interface LectureCategoryBuilderInterface {
4220
+ /**
4221
+ * 채플 분류의 [`LectureCategory`]를 만듭니다.
4222
+ */
4223
+ chapel(lectureName: string): LectureCategory;
4224
+ /**
4225
+ * 연계전공 분류의 [`LectureCategory`]를 만듭니다.
4226
+ */
4227
+ connectedMajor(major: string): LectureCategory;
4228
+ /**
4229
+ * 숭실사이버대 분류의 [`LectureCategory`]를 만듭니다.
4230
+ */
4231
+ cyber(): LectureCategory;
4232
+ /**
4233
+ * 교직 분류의 [`LectureCategory`]를 만듭니다.
4234
+ */
4235
+ education(): LectureCategory;
4236
+ /**
4237
+ * 과목명으로 찾기 위한 [`LectureCategory`]를 만듭니다.
4238
+ */
4239
+ findByLecture(keyword: string): LectureCategory;
4240
+ /**
4241
+ * 교수명으로 찾기 위한 [`LectureCategory`]를 만듭니다.
4242
+ */
4243
+ findByProfessor(keyword: string): LectureCategory;
4244
+ /**
4245
+ * 대학원 분류의 [`LectureCategory`]를 만듭니다.
4246
+ */
4247
+ graduated(collage: string, department: string): LectureCategory;
4248
+ /**
4249
+ * 전공과목 분류의 [`LectureCategory`]를 만듭니다.
4250
+ */
4251
+ major(
4252
+ collage: string,
4253
+ department: string,
4254
+ major: string | undefined
4255
+ ): LectureCategory;
4256
+ /**
4257
+ * 교양선택 분류의 [`LectureCategory`]를 만듭니다.
4258
+ */
4259
+ optionalElective(category: string): LectureCategory;
4260
+ /**
4261
+ * 타전공인정과목 분류의 [`LectureCategory`]를 만듭니다.
4262
+ */
4263
+ recognizedOtherMajor(
4264
+ collage: string,
4265
+ department: string,
4266
+ major: string | undefined
4267
+ ): LectureCategory;
4268
+ /**
4269
+ * 교양필수 분류의 [`LectureCategory`]를 만듭니다.
4270
+ */
4271
+ requiredElective(lectureName: string): LectureCategory;
4272
+ /**
4273
+ * 융합전공 분류의 [`LectureCategory`]를 만듭니다.
4274
+ */
4275
+ unitedMajor(major: string): LectureCategory;
4276
+ }
4277
+
4278
+ /**
4279
+ * 새로운 `LectureCategory`를 만드는 빌더입니다.
4280
+ */
4281
+ export class LectureCategoryBuilder
4282
+ extends UniffiAbstractObject
4283
+ implements LectureCategoryBuilderInterface
4284
+ {
4285
+ readonly [uniffiTypeNameSymbol] = 'LectureCategoryBuilder';
4286
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
4287
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
4288
+ /**
4289
+ * `LectureCategoryBuilder`를 만듭니다.
4290
+ */
4291
+ constructor() {
4292
+ super();
4293
+ const pointer = uniffiCaller.rustCall(
4294
+ /*caller:*/ (callStatus) => {
4295
+ return nativeModule().ubrn_uniffi_rusaint_fn_constructor_lecturecategorybuilder_new(
4296
+ callStatus
4297
+ );
4298
+ },
4299
+ /*liftString:*/ FfiConverterString.lift
4300
+ );
4301
+ this[pointerLiteralSymbol] = pointer;
4302
+ this[destructorGuardSymbol] =
4303
+ uniffiTypeLectureCategoryBuilderObjectFactory.bless(pointer);
4304
+ }
4305
+
4306
+ /**
4307
+ * 채플 분류의 [`LectureCategory`]를 만듭니다.
4308
+ */
4309
+ public chapel(lectureName: string): LectureCategory {
4310
+ return FfiConverterTypeLectureCategory.lift(
4311
+ uniffiCaller.rustCall(
4312
+ /*caller:*/ (callStatus) => {
4313
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_chapel(
4314
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4315
+ FfiConverterString.lower(lectureName),
4316
+ callStatus
4317
+ );
4318
+ },
4319
+ /*liftString:*/ FfiConverterString.lift
4320
+ )
4321
+ );
4322
+ }
4323
+
4324
+ /**
4325
+ * 연계전공 분류의 [`LectureCategory`]를 만듭니다.
4326
+ */
4327
+ public connectedMajor(major: string): LectureCategory {
4328
+ return FfiConverterTypeLectureCategory.lift(
4329
+ uniffiCaller.rustCall(
4330
+ /*caller:*/ (callStatus) => {
4331
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_connected_major(
4332
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4333
+ FfiConverterString.lower(major),
4334
+ callStatus
4335
+ );
4336
+ },
4337
+ /*liftString:*/ FfiConverterString.lift
4338
+ )
4339
+ );
4340
+ }
4341
+
4342
+ /**
4343
+ * 숭실사이버대 분류의 [`LectureCategory`]를 만듭니다.
4344
+ */
4345
+ public cyber(): LectureCategory {
4346
+ return FfiConverterTypeLectureCategory.lift(
4347
+ uniffiCaller.rustCall(
4348
+ /*caller:*/ (callStatus) => {
4349
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_cyber(
4350
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4351
+ callStatus
4352
+ );
4353
+ },
4354
+ /*liftString:*/ FfiConverterString.lift
4355
+ )
4356
+ );
4357
+ }
4358
+
4359
+ /**
4360
+ * 교직 분류의 [`LectureCategory`]를 만듭니다.
4361
+ */
4362
+ public education(): LectureCategory {
4363
+ return FfiConverterTypeLectureCategory.lift(
4364
+ uniffiCaller.rustCall(
4365
+ /*caller:*/ (callStatus) => {
4366
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_education(
4367
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4368
+ callStatus
4369
+ );
4370
+ },
4371
+ /*liftString:*/ FfiConverterString.lift
4372
+ )
4373
+ );
4374
+ }
4375
+
4376
+ /**
4377
+ * 과목명으로 찾기 위한 [`LectureCategory`]를 만듭니다.
4378
+ */
4379
+ public findByLecture(keyword: string): LectureCategory {
4380
+ return FfiConverterTypeLectureCategory.lift(
4381
+ uniffiCaller.rustCall(
4382
+ /*caller:*/ (callStatus) => {
4383
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_find_by_lecture(
4384
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4385
+ FfiConverterString.lower(keyword),
4386
+ callStatus
4387
+ );
4388
+ },
4389
+ /*liftString:*/ FfiConverterString.lift
4390
+ )
4391
+ );
4392
+ }
4393
+
4394
+ /**
4395
+ * 교수명으로 찾기 위한 [`LectureCategory`]를 만듭니다.
4396
+ */
4397
+ public findByProfessor(keyword: string): LectureCategory {
4398
+ return FfiConverterTypeLectureCategory.lift(
4399
+ uniffiCaller.rustCall(
4400
+ /*caller:*/ (callStatus) => {
4401
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_find_by_professor(
4402
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4403
+ FfiConverterString.lower(keyword),
4404
+ callStatus
4405
+ );
4406
+ },
4407
+ /*liftString:*/ FfiConverterString.lift
4408
+ )
4409
+ );
4410
+ }
4411
+
4412
+ /**
4413
+ * 대학원 분류의 [`LectureCategory`]를 만듭니다.
4414
+ */
4415
+ public graduated(collage: string, department: string): LectureCategory {
4416
+ return FfiConverterTypeLectureCategory.lift(
4417
+ uniffiCaller.rustCall(
4418
+ /*caller:*/ (callStatus) => {
4419
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_graduated(
4420
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4421
+ FfiConverterString.lower(collage),
4422
+ FfiConverterString.lower(department),
4423
+ callStatus
4424
+ );
4425
+ },
4426
+ /*liftString:*/ FfiConverterString.lift
4427
+ )
4428
+ );
4429
+ }
4430
+
4431
+ /**
4432
+ * 전공과목 분류의 [`LectureCategory`]를 만듭니다.
4433
+ */
4434
+ public major(
4435
+ collage: string,
4436
+ department: string,
4437
+ major: string | undefined
4438
+ ): LectureCategory {
4439
+ return FfiConverterTypeLectureCategory.lift(
4440
+ uniffiCaller.rustCall(
4441
+ /*caller:*/ (callStatus) => {
4442
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_major(
4443
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4444
+ FfiConverterString.lower(collage),
4445
+ FfiConverterString.lower(department),
4446
+ FfiConverterOptionalString.lower(major),
4447
+ callStatus
4448
+ );
4449
+ },
4450
+ /*liftString:*/ FfiConverterString.lift
4451
+ )
4452
+ );
4453
+ }
4454
+
4455
+ /**
4456
+ * 교양선택 분류의 [`LectureCategory`]를 만듭니다.
4457
+ */
4458
+ public optionalElective(category: string): LectureCategory {
4459
+ return FfiConverterTypeLectureCategory.lift(
4460
+ uniffiCaller.rustCall(
4461
+ /*caller:*/ (callStatus) => {
4462
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_optional_elective(
4463
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4464
+ FfiConverterString.lower(category),
4465
+ callStatus
4466
+ );
4467
+ },
4468
+ /*liftString:*/ FfiConverterString.lift
4469
+ )
4470
+ );
4471
+ }
4472
+
4473
+ /**
4474
+ * 타전공인정과목 분류의 [`LectureCategory`]를 만듭니다.
4475
+ */
4476
+ public recognizedOtherMajor(
4477
+ collage: string,
4478
+ department: string,
4479
+ major: string | undefined
4480
+ ): LectureCategory {
4481
+ return FfiConverterTypeLectureCategory.lift(
4482
+ uniffiCaller.rustCall(
4483
+ /*caller:*/ (callStatus) => {
4484
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_recognized_other_major(
4485
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4486
+ FfiConverterString.lower(collage),
4487
+ FfiConverterString.lower(department),
4488
+ FfiConverterOptionalString.lower(major),
4489
+ callStatus
4490
+ );
4491
+ },
4492
+ /*liftString:*/ FfiConverterString.lift
4493
+ )
4494
+ );
4495
+ }
4496
+
4497
+ /**
4498
+ * 교양필수 분류의 [`LectureCategory`]를 만듭니다.
4499
+ */
4500
+ public requiredElective(lectureName: string): LectureCategory {
4501
+ return FfiConverterTypeLectureCategory.lift(
4502
+ uniffiCaller.rustCall(
4503
+ /*caller:*/ (callStatus) => {
4504
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_required_elective(
4505
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4506
+ FfiConverterString.lower(lectureName),
4507
+ callStatus
4508
+ );
4509
+ },
4510
+ /*liftString:*/ FfiConverterString.lift
4511
+ )
4512
+ );
4513
+ }
4514
+
4515
+ /**
4516
+ * 융합전공 분류의 [`LectureCategory`]를 만듭니다.
4517
+ */
4518
+ public unitedMajor(major: string): LectureCategory {
4519
+ return FfiConverterTypeLectureCategory.lift(
4520
+ uniffiCaller.rustCall(
4521
+ /*caller:*/ (callStatus) => {
4522
+ return nativeModule().ubrn_uniffi_rusaint_fn_method_lecturecategorybuilder_united_major(
4523
+ uniffiTypeLectureCategoryBuilderObjectFactory.clonePointer(this),
4524
+ FfiConverterString.lower(major),
4525
+ callStatus
4526
+ );
4527
+ },
4528
+ /*liftString:*/ FfiConverterString.lift
4529
+ )
4530
+ );
4531
+ }
4532
+
4533
+ /**
4534
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
4535
+ */
4536
+ uniffiDestroy(): void {
4537
+ const ptr = (this as any)[destructorGuardSymbol];
4538
+ if (ptr !== undefined) {
4539
+ const pointer =
4540
+ uniffiTypeLectureCategoryBuilderObjectFactory.pointer(this);
4541
+ uniffiTypeLectureCategoryBuilderObjectFactory.freePointer(pointer);
4542
+ uniffiTypeLectureCategoryBuilderObjectFactory.unbless(ptr);
4543
+ delete (this as any)[destructorGuardSymbol];
4544
+ }
4545
+ }
4546
+
4547
+ static instanceOf(obj: any): obj is LectureCategoryBuilder {
4548
+ return uniffiTypeLectureCategoryBuilderObjectFactory.isConcreteType(obj);
4549
+ }
4550
+ }
4551
+
4552
+ const uniffiTypeLectureCategoryBuilderObjectFactory: UniffiObjectFactory<LectureCategoryBuilderInterface> =
4553
+ {
4554
+ create(pointer: UnsafeMutableRawPointer): LectureCategoryBuilderInterface {
4555
+ const instance = Object.create(LectureCategoryBuilder.prototype);
4556
+ instance[pointerLiteralSymbol] = pointer;
4557
+ instance[destructorGuardSymbol] = this.bless(pointer);
4558
+ instance[uniffiTypeNameSymbol] = 'LectureCategoryBuilder';
4559
+ return instance;
4560
+ },
4561
+
4562
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
4563
+ return uniffiCaller.rustCall(
4564
+ /*caller:*/ (status) =>
4565
+ nativeModule().ubrn_uniffi_internal_fn_method_lecturecategorybuilder_ffi__bless_pointer(
4566
+ p,
4567
+ status
4568
+ ),
4569
+ /*liftString:*/ FfiConverterString.lift
4570
+ );
4571
+ },
4572
+
4573
+ unbless(ptr: UniffiRustArcPtr) {
4574
+ ptr.markDestroyed();
4575
+ },
4576
+
4577
+ pointer(obj: LectureCategoryBuilderInterface): UnsafeMutableRawPointer {
4578
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
4579
+ throw new UniffiInternalError.UnexpectedNullPointer();
4580
+ }
4581
+ return (obj as any)[pointerLiteralSymbol];
4582
+ },
4583
+
4584
+ clonePointer(
4585
+ obj: LectureCategoryBuilderInterface
4586
+ ): UnsafeMutableRawPointer {
4587
+ const pointer = this.pointer(obj);
4588
+ return uniffiCaller.rustCall(
4589
+ /*caller:*/ (callStatus) =>
4590
+ nativeModule().ubrn_uniffi_rusaint_fn_clone_lecturecategorybuilder(
4591
+ pointer,
4592
+ callStatus
4593
+ ),
4594
+ /*liftString:*/ FfiConverterString.lift
4595
+ );
4596
+ },
4597
+
4598
+ freePointer(pointer: UnsafeMutableRawPointer): void {
4599
+ uniffiCaller.rustCall(
4600
+ /*caller:*/ (callStatus) =>
4601
+ nativeModule().ubrn_uniffi_rusaint_fn_free_lecturecategorybuilder(
4602
+ pointer,
4603
+ callStatus
4604
+ ),
4605
+ /*liftString:*/ FfiConverterString.lift
4606
+ );
4607
+ },
4608
+
4609
+ isConcreteType(obj: any): obj is LectureCategoryBuilderInterface {
4610
+ return (
4611
+ obj[destructorGuardSymbol] &&
4612
+ obj[uniffiTypeNameSymbol] === 'LectureCategoryBuilder'
4613
+ );
4614
+ },
4615
+ };
4616
+ // FfiConverter for LectureCategoryBuilderInterface
4617
+ const FfiConverterTypeLectureCategoryBuilder = new FfiConverterObject(
4618
+ uniffiTypeLectureCategoryBuilderObjectFactory
4619
+ );
4620
+
4621
+ // FfiConverter for /*f32*/number | undefined
4622
+ const FfiConverterOptionalFloat32 = new FfiConverterOptional(
4623
+ FfiConverterFloat32
4624
+ );
4625
+
4626
+ // FfiConverter for StudentForignStudyInformation | undefined
4627
+ const FfiConverterOptionalTypeStudentForignStudyInformation =
4628
+ new FfiConverterOptional(FfiConverterTypeStudentForignStudyInformation);
4629
+
4630
+ // FfiConverter for StudentLifelongInformation | undefined
4631
+ const FfiConverterOptionalTypeStudentLifelongInformation =
4632
+ new FfiConverterOptional(FfiConverterTypeStudentLifelongInformation);
4633
+
4634
+ // FfiConverter for StudentTeachingMajorInformation | undefined
4635
+ const FfiConverterOptionalTypeStudentTeachingMajorInformation =
4636
+ new FfiConverterOptional(FfiConverterTypeStudentTeachingMajorInformation);
4637
+
4638
+ // FfiConverter for StudentTeachingPluralMajorInformation | undefined
4639
+ const FfiConverterOptionalTypeStudentTeachingPluralMajorInformation =
4640
+ new FfiConverterOptional(
4641
+ FfiConverterTypeStudentTeachingPluralMajorInformation
4642
+ );
4643
+
4644
+ // FfiConverter for string | undefined
4645
+ const FfiConverterOptionalString = new FfiConverterOptional(FfiConverterString);
4646
+
4647
+ // FfiConverter for /*u32*/number | undefined
4648
+ const FfiConverterOptionalUInt32 = new FfiConverterOptional(FfiConverterUInt32);
4649
+
4650
+ // FfiConverter for Array<ChapelAbsenceRequest>
4651
+ const FfiConverterArrayTypeChapelAbsenceRequest = new FfiConverterArray(
4652
+ FfiConverterTypeChapelAbsenceRequest
4653
+ );
4654
+
4655
+ // FfiConverter for Array<ChapelAttendance>
4656
+ const FfiConverterArrayTypeChapelAttendance = new FfiConverterArray(
4657
+ FfiConverterTypeChapelAttendance
4658
+ );
4659
+
4660
+ // FfiConverter for Array<CourseScheduleInformation>
4661
+ const FfiConverterArrayTypeCourseScheduleInformation = new FfiConverterArray(
4662
+ FfiConverterTypeCourseScheduleInformation
4663
+ );
4664
+
4665
+ // FfiConverter for Array<StudentAcademicRecord>
4666
+ const FfiConverterArrayTypeStudentAcademicRecord = new FfiConverterArray(
4667
+ FfiConverterTypeStudentAcademicRecord
4668
+ );
4669
+
4670
+ // FfiConverter for Array<StudentFamilyMember>
4671
+ const FfiConverterArrayTypeStudentFamilyMember = new FfiConverterArray(
4672
+ FfiConverterTypeStudentFamilyMember
4673
+ );
4674
+
4675
+ // FfiConverter for Array<StudentTransferRecord>
4676
+ const FfiConverterArrayTypeStudentTransferRecord = new FfiConverterArray(
4677
+ FfiConverterTypeStudentTransferRecord
4678
+ );
4679
+
4680
+ // FfiConverter for Array<string>
4681
+ const FfiConverterArrayString = new FfiConverterArray(FfiConverterString);
4682
+
4683
+ // FfiConverter for Map<Weekday, Array<CourseScheduleInformation>>
4684
+ const FfiConverterMapTypeWeekdayArrayTypeCourseScheduleInformation =
4685
+ new FfiConverterMap(
4686
+ FfiConverterTypeWeekday,
4687
+ FfiConverterArrayTypeCourseScheduleInformation
4688
+ );
4689
+
4690
+ // FfiConverter for Map<string, /*f32*/number> | undefined
4691
+ const FfiConverterOptionalMapStringFloat32 = new FfiConverterOptional(
4692
+ FfiConverterMapStringFloat32
4693
+ );
4694
+
4695
+ /**
4696
+ * This should be called before anything else.
4697
+ *
4698
+ * It is likely that this is being done for you by the library's `index.ts`.
4699
+ *
4700
+ * It checks versions of uniffi between when the Rust scaffolding was generated
4701
+ * and when the bindings were generated.
4702
+ *
4703
+ * It also initializes the machinery to enable Rust to talk back to Javascript.
4704
+ */
4705
+ function uniffiEnsureInitialized() {
4706
+ // Get the bindings contract version from our ComponentInterface
4707
+ const bindingsContractVersion = 29;
4708
+ // Get the scaffolding contract version by calling the into the dylib
4709
+ const scaffoldingContractVersion =
4710
+ nativeModule().ubrn_ffi_rusaint_uniffi_contract_version();
4711
+ if (bindingsContractVersion !== scaffoldingContractVersion) {
4712
+ throw new UniffiInternalError.ContractVersionMismatch(
4713
+ scaffoldingContractVersion,
4714
+ bindingsContractVersion
4715
+ );
4716
+ }
4717
+ if (
4718
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_chapel() !==
4719
+ 36146
4720
+ ) {
4721
+ throw new UniffiInternalError.ApiChecksumMismatch(
4722
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_chapel'
4723
+ );
4724
+ }
4725
+ if (
4726
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_connected_major() !==
4727
+ 23575
4728
+ ) {
4729
+ throw new UniffiInternalError.ApiChecksumMismatch(
4730
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_connected_major'
4731
+ );
4732
+ }
4733
+ if (
4734
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_cyber() !==
4735
+ 62603
4736
+ ) {
4737
+ throw new UniffiInternalError.ApiChecksumMismatch(
4738
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_cyber'
4739
+ );
4740
+ }
4741
+ if (
4742
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_education() !==
4743
+ 26923
4744
+ ) {
4745
+ throw new UniffiInternalError.ApiChecksumMismatch(
4746
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_education'
4747
+ );
4748
+ }
4749
+ if (
4750
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_find_by_lecture() !==
4751
+ 60430
4752
+ ) {
4753
+ throw new UniffiInternalError.ApiChecksumMismatch(
4754
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_find_by_lecture'
4755
+ );
4756
+ }
4757
+ if (
4758
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_find_by_professor() !==
4759
+ 34168
4760
+ ) {
4761
+ throw new UniffiInternalError.ApiChecksumMismatch(
4762
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_find_by_professor'
4763
+ );
4764
+ }
4765
+ if (
4766
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_graduated() !==
4767
+ 33032
4768
+ ) {
4769
+ throw new UniffiInternalError.ApiChecksumMismatch(
4770
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_graduated'
4771
+ );
4772
+ }
4773
+ if (
4774
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_major() !==
4775
+ 62920
4776
+ ) {
4777
+ throw new UniffiInternalError.ApiChecksumMismatch(
4778
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_major'
4779
+ );
4780
+ }
4781
+ if (
4782
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_optional_elective() !==
4783
+ 18560
4784
+ ) {
4785
+ throw new UniffiInternalError.ApiChecksumMismatch(
4786
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_optional_elective'
4787
+ );
4788
+ }
4789
+ if (
4790
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_recognized_other_major() !==
4791
+ 31169
4792
+ ) {
4793
+ throw new UniffiInternalError.ApiChecksumMismatch(
4794
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_recognized_other_major'
4795
+ );
4796
+ }
4797
+ if (
4798
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_required_elective() !==
4799
+ 31001
4800
+ ) {
4801
+ throw new UniffiInternalError.ApiChecksumMismatch(
4802
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_required_elective'
4803
+ );
4804
+ }
4805
+ if (
4806
+ nativeModule().ubrn_uniffi_rusaint_checksum_method_lecturecategorybuilder_united_major() !==
4807
+ 40110
4808
+ ) {
4809
+ throw new UniffiInternalError.ApiChecksumMismatch(
4810
+ 'uniffi_rusaint_checksum_method_lecturecategorybuilder_united_major'
4811
+ );
4812
+ }
4813
+ if (
4814
+ nativeModule().ubrn_uniffi_rusaint_checksum_constructor_lecturecategorybuilder_new() !==
4815
+ 19652
4816
+ ) {
4817
+ throw new UniffiInternalError.ApiChecksumMismatch(
4818
+ 'uniffi_rusaint_checksum_constructor_lecturecategorybuilder_new'
4819
+ );
4820
+ }
4821
+ }
4822
+
4823
+ export default Object.freeze({
4824
+ initialize: uniffiEnsureInitialized,
4825
+ converters: {
4826
+ FfiConverterTypeChapelAbsenceRequest,
4827
+ FfiConverterTypeChapelAttendance,
4828
+ FfiConverterTypeChapelInformation,
4829
+ FfiConverterTypeClassGrade,
4830
+ FfiConverterTypeClassScore,
4831
+ FfiConverterTypeCourseScheduleInformation,
4832
+ FfiConverterTypeCourseType,
4833
+ FfiConverterTypeGeneralChapelInformation,
4834
+ FfiConverterTypeGradeSummary,
4835
+ FfiConverterTypeGraduationRequirement,
4836
+ FfiConverterTypeGraduationRequirements,
4837
+ FfiConverterTypeGraduationStudent,
4838
+ FfiConverterTypeLecture,
4839
+ FfiConverterTypeLectureAssessmentResult,
4840
+ FfiConverterTypeLectureCategory,
4841
+ FfiConverterTypeLectureCategoryBuilder,
4842
+ FfiConverterTypePersonalCourseSchedule,
4843
+ FfiConverterTypeScholarship,
4844
+ FfiConverterTypeSemesterGrade,
4845
+ FfiConverterTypeSemesterType,
4846
+ FfiConverterTypeStudentAcademicRecord,
4847
+ FfiConverterTypeStudentAcademicRecords,
4848
+ FfiConverterTypeStudentBankAccount,
4849
+ FfiConverterTypeStudentFamily,
4850
+ FfiConverterTypeStudentFamilyMember,
4851
+ FfiConverterTypeStudentForignStudyInformation,
4852
+ FfiConverterTypeStudentGraduation,
4853
+ FfiConverterTypeStudentInformation,
4854
+ FfiConverterTypeStudentLifelongInformation,
4855
+ FfiConverterTypeStudentQualification,
4856
+ FfiConverterTypeStudentReligion,
4857
+ FfiConverterTypeStudentResearchBankAccount,
4858
+ FfiConverterTypeStudentTeachingMajorInformation,
4859
+ FfiConverterTypeStudentTeachingPluralMajorInformation,
4860
+ FfiConverterTypeStudentTransferRecord,
4861
+ FfiConverterTypeStudentTransferRecords,
4862
+ FfiConverterTypeStudentWorkInformation,
4863
+ FfiConverterTypeU32Pair,
4864
+ FfiConverterTypeUnsignedIntPair,
4865
+ FfiConverterTypeWeekday,
4866
+ },
4867
+ });