@rusaint/react-native 0.13.6 → 0.14.1

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 (37) hide show
  1. package/android/build.gradle +4 -4
  2. package/android/src/main/jniLibs/arm64-v8a/librusaint_ffi.so +0 -0
  3. package/android/src/main/jniLibs/armeabi-v7a/librusaint_ffi.so +0 -0
  4. package/build/RusaintReactNative.xcframework/_CodeSignature/CodeDirectory +0 -0
  5. package/build/RusaintReactNative.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  6. package/build/RusaintReactNative.xcframework/_CodeSignature/CodeResources +6 -6
  7. package/build/RusaintReactNative.xcframework/_CodeSignature/CodeSignature +0 -0
  8. package/build/RusaintReactNative.xcframework/ios-arm64/librusaint_ffi.a +0 -0
  9. package/build/RusaintReactNative.xcframework/ios-arm64-simulator/librusaint_ffi.a +0 -0
  10. package/cpp/generated/rusaint_ffi.cpp +555 -0
  11. package/cpp/generated/rusaint_ffi.hpp +30 -0
  12. package/lib/commonjs/generated/rusaint.js +720 -1
  13. package/lib/commonjs/generated/rusaint.js.map +1 -1
  14. package/lib/commonjs/generated/rusaint_ffi-ffi.js.map +1 -1
  15. package/lib/commonjs/generated/rusaint_ffi.js +388 -1
  16. package/lib/commonjs/generated/rusaint_ffi.js.map +1 -1
  17. package/lib/module/generated/rusaint.js +719 -0
  18. package/lib/module/generated/rusaint.js.map +1 -1
  19. package/lib/module/generated/rusaint_ffi-ffi.js.map +1 -1
  20. package/lib/module/generated/rusaint_ffi.js +385 -0
  21. package/lib/module/generated/rusaint_ffi.js.map +1 -1
  22. package/lib/typescript/commonjs/src/generated/rusaint.d.ts +676 -0
  23. package/lib/typescript/commonjs/src/generated/rusaint.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/src/generated/rusaint_ffi-ffi.d.ts +30 -0
  25. package/lib/typescript/commonjs/src/generated/rusaint_ffi-ffi.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/src/generated/rusaint_ffi.d.ts +192 -1
  27. package/lib/typescript/commonjs/src/generated/rusaint_ffi.d.ts.map +1 -1
  28. package/lib/typescript/module/src/generated/rusaint.d.ts +676 -0
  29. package/lib/typescript/module/src/generated/rusaint.d.ts.map +1 -1
  30. package/lib/typescript/module/src/generated/rusaint_ffi-ffi.d.ts +30 -0
  31. package/lib/typescript/module/src/generated/rusaint_ffi-ffi.d.ts.map +1 -1
  32. package/lib/typescript/module/src/generated/rusaint_ffi.d.ts +192 -1
  33. package/lib/typescript/module/src/generated/rusaint_ffi.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/generated/rusaint.ts +1271 -25
  36. package/src/generated/rusaint_ffi-ffi.ts +82 -0
  37. package/src/generated/rusaint_ffi.ts +1107 -168
@@ -33,12 +33,17 @@ import nativeModule, {
33
33
  import {
34
34
  type ChapelInformation,
35
35
  type ClassGrade,
36
+ type DetailedLecture,
36
37
  type GradeSummary,
38
+ type GradesByClassification,
37
39
  type GraduationRequirements,
38
40
  type GraduationStudent,
39
41
  type Lecture,
40
42
  type LectureAssessmentResult,
43
+ type LectureDetail,
44
+ type LectureSyllabus,
41
45
  type PersonalCourseSchedule,
46
+ type RegisteredLecture,
42
47
  type Scholarship,
43
48
  type SemesterGrade,
44
49
  type StudentAcademicRecords,
@@ -91,13 +96,18 @@ const {
91
96
  FfiConverterTypeChapelInformation,
92
97
  FfiConverterTypeClassGrade,
93
98
  FfiConverterTypeCourseType,
99
+ FfiConverterTypeDetailedLecture,
94
100
  FfiConverterTypeGradeSummary,
101
+ FfiConverterTypeGradesByClassification,
95
102
  FfiConverterTypeGraduationRequirements,
96
103
  FfiConverterTypeGraduationStudent,
97
104
  FfiConverterTypeLecture,
98
105
  FfiConverterTypeLectureAssessmentResult,
99
106
  FfiConverterTypeLectureCategory,
107
+ FfiConverterTypeLectureDetail,
108
+ FfiConverterTypeLectureSyllabus,
100
109
  FfiConverterTypePersonalCourseSchedule,
110
+ FfiConverterTypeRegisteredLecture,
101
111
  FfiConverterTypeScholarship,
102
112
  FfiConverterTypeSemesterGrade,
103
113
  FfiConverterTypeSemesterType,
@@ -794,6 +804,13 @@ export interface CourseGradesApplicationInterface {
794
804
  getSelectedSemester(asyncOpts_?: {
795
805
  signal: AbortSignal;
796
806
  }) /*throws*/ : Promise<YearSemester>;
807
+ /**
808
+ * 이수구분별 성적 데이터를 OZ 서버에서 가져옵니다.
809
+ */
810
+ gradesByClassification(
811
+ courseType: CourseType,
812
+ asyncOpts_?: { signal: AbortSignal }
813
+ ) /*throws*/ : Promise<GradesByClassification>;
797
814
  /**
798
815
  * 최신 정보를 조회합니다. 새로고침 시 유용합니다.
799
816
  */
@@ -1018,6 +1035,48 @@ export class CourseGradesApplication
1018
1035
  }
1019
1036
  }
1020
1037
 
1038
+ /**
1039
+ * 이수구분별 성적 데이터를 OZ 서버에서 가져옵니다.
1040
+ */
1041
+ public async gradesByClassification(
1042
+ courseType: CourseType,
1043
+ asyncOpts_?: { signal: AbortSignal }
1044
+ ): Promise<GradesByClassification> /*throws*/ {
1045
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
1046
+ try {
1047
+ return await uniffiRustCallAsync(
1048
+ /*rustCaller:*/ uniffiCaller,
1049
+ /*rustFutureFunc:*/ () => {
1050
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursegradesapplication_grades_by_classification(
1051
+ uniffiTypeCourseGradesApplicationObjectFactory.clonePointer(this),
1052
+ FfiConverterTypeCourseType.lower(courseType)
1053
+ );
1054
+ },
1055
+ /*pollFunc:*/ nativeModule()
1056
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
1057
+ /*cancelFunc:*/ nativeModule()
1058
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
1059
+ /*completeFunc:*/ nativeModule()
1060
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1061
+ /*freeFunc:*/ nativeModule()
1062
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1063
+ /*liftFunc:*/ FfiConverterTypeGradesByClassification.lift.bind(
1064
+ FfiConverterTypeGradesByClassification
1065
+ ),
1066
+ /*liftString:*/ FfiConverterString.lift,
1067
+ /*asyncOpts:*/ asyncOpts_,
1068
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
1069
+ FfiConverterTypeRusaintError
1070
+ )
1071
+ );
1072
+ } catch (__error: any) {
1073
+ if (uniffiIsDebug && __error instanceof Error) {
1074
+ __error.stack = __stack;
1075
+ }
1076
+ throw __error;
1077
+ }
1078
+ }
1079
+
1021
1080
  /**
1022
1081
  * 최신 정보를 조회합니다. 새로고침 시 유용합니다.
1023
1082
  */
@@ -1452,51 +1511,9 @@ const FfiConverterTypeCourseGradesApplicationBuilder = new FfiConverterObject(
1452
1511
  );
1453
1512
 
1454
1513
  /**
1455
- * [강의시간표](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2100)
1514
+ * [수강신청 내역 조회](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2110)
1456
1515
  */
1457
- export interface CourseScheduleApplicationInterface {
1458
- /**
1459
- * 선택한 학기의 채플 과목 분류 목록을 가져옵니다.
1460
- */
1461
- chapelCategories(
1462
- year: /*u32*/ number,
1463
- semester: SemesterType,
1464
- asyncOpts_?: { signal: AbortSignal }
1465
- ) /*throws*/ : Promise<Array<string>>;
1466
- /**
1467
- * 선택한 학기 기준 단과대 목록을 가져옵니다.
1468
- */
1469
- collages(
1470
- year: /*u32*/ number,
1471
- semester: SemesterType,
1472
- asyncOpts_?: { signal: AbortSignal }
1473
- ) /*throws*/ : Promise<Array<string>>;
1474
- /**
1475
- * 선택한 학기의 연계전공 목록을 가져옵니다.
1476
- */
1477
- connectedMajors(
1478
- year: /*u32*/ number,
1479
- semester: SemesterType,
1480
- asyncOpts_?: { signal: AbortSignal }
1481
- ) /*throws*/ : Promise<Array<string>>;
1482
- /**
1483
- * 선택한 학기 기준 주어진 단과대의 학과(부) 목록을 가져옵니다.
1484
- */
1485
- departments(
1486
- year: /*u32*/ number,
1487
- semester: SemesterType,
1488
- collage: string,
1489
- asyncOpts_?: { signal: AbortSignal }
1490
- ) /*throws*/ : Promise<Array<string>>;
1491
- /**
1492
- * 학기, 학년도, 강의 분류를 통해 강의를 찾습니다.
1493
- */
1494
- findLectures(
1495
- year: /*u32*/ number,
1496
- semester: SemesterType,
1497
- lectureCategory: LectureCategory,
1498
- asyncOpts_?: { signal: AbortSignal }
1499
- ) /*throws*/ : Promise<Array<Lecture>>;
1516
+ export interface CourseRegistrationStatusApplicationInterface {
1500
1517
  /**
1501
1518
  * 현재 페이지에 선택된 년도와 학기를 가져옵니다. 최초 로드 시 현재 학기를 가져올 가능성이 있습니다.
1502
1519
  * 하지만 이 애플리케이션의 다른 함수를 호출하여 한번 정보를 가져왔다면 마지막으로 가져온 정보의 학기가 반환되므로 주의하여야 하며, 신뢰할 수 있는 현재 학기의 원천으로 사용되어서는 안됩니다.
@@ -1505,70 +1522,27 @@ export interface CourseScheduleApplicationInterface {
1505
1522
  signal: AbortSignal;
1506
1523
  }) /*throws*/ : Promise<YearSemester>;
1507
1524
  /**
1508
- * 선택한 학기의 대학원 단과대학 목록을 가져옵니다.
1509
- */
1510
- graduatedCollages(
1511
- year: /*u32*/ number,
1512
- semester: SemesterType,
1513
- asyncOpts_?: { signal: AbortSignal }
1514
- ) /*throws*/ : Promise<Array<string>>;
1515
- /**
1516
- * 선택한 학기의 주어진 대학원 단과대의 학과 목록을 가져옵니다.
1517
- */
1518
- graduatedDepartments(
1519
- year: /*u32*/ number,
1520
- semester: SemesterType,
1521
- collage: string,
1522
- asyncOpts_?: { signal: AbortSignal }
1523
- ) /*throws*/ : Promise<Array<string>>;
1524
- /**
1525
- * 선택한 학과(부)의 전공 목록을 가져옵니다.
1526
- */
1527
- majors(
1528
- year: /*u32*/ number,
1529
- semester: SemesterType,
1530
- collage: string,
1531
- department: string,
1532
- asyncOpts_?: { signal: AbortSignal }
1533
- ) /*throws*/ : Promise<Array<string>>;
1534
- /**
1535
- * 선택한 학기의 교양선택 분야 목록을 가져옵니다.
1525
+ * 개인이 수강신청한 내역을 학기별로 찾습니다.
1536
1526
  */
1537
- optionalElectiveCategories(
1527
+ lectures(
1538
1528
  year: /*u32*/ number,
1539
1529
  semester: SemesterType,
1540
1530
  asyncOpts_?: { signal: AbortSignal }
1541
- ) /*throws*/ : Promise<Array<string>>;
1531
+ ) /*throws*/ : Promise<Array<RegisteredLecture>>;
1542
1532
  /**
1543
1533
  * 페이지를 새로고침합니다.
1544
1534
  */
1545
1535
  reload(asyncOpts_?: { signal: AbortSignal }) /*throws*/ : Promise<void>;
1546
- /**
1547
- * 선택한 학기의 교양필수 과목명 목록을 가져옵니다.
1548
- */
1549
- requiredElectives(
1550
- year: /*u32*/ number,
1551
- semester: SemesterType,
1552
- asyncOpts_?: { signal: AbortSignal }
1553
- ) /*throws*/ : Promise<Array<string>>;
1554
- /**
1555
- * 선택한 학기의 융합전공 목록을 가져옵니다.
1556
- */
1557
- unitedMajors(
1558
- year: /*u32*/ number,
1559
- semester: SemesterType,
1560
- asyncOpts_?: { signal: AbortSignal }
1561
- ) /*throws*/ : Promise<Array<string>>;
1562
1536
  }
1563
1537
 
1564
1538
  /**
1565
- * [강의시간표](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2100)
1539
+ * [수강신청 내역 조회](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2110)
1566
1540
  */
1567
- export class CourseScheduleApplication
1541
+ export class CourseRegistrationStatusApplication
1568
1542
  extends UniffiAbstractObject
1569
- implements CourseScheduleApplicationInterface
1543
+ implements CourseRegistrationStatusApplicationInterface
1570
1544
  {
1571
- readonly [uniffiTypeNameSymbol] = 'CourseScheduleApplication';
1545
+ readonly [uniffiTypeNameSymbol] = 'CourseRegistrationStatusApplication';
1572
1546
  readonly [destructorGuardSymbol]: UniffiRustArcPtr;
1573
1547
  readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
1574
1548
  // No primary constructor declared for this class.
@@ -1576,26 +1550,807 @@ export class CourseScheduleApplication
1576
1550
  super();
1577
1551
  this[pointerLiteralSymbol] = pointer;
1578
1552
  this[destructorGuardSymbol] =
1579
- uniffiTypeCourseScheduleApplicationObjectFactory.bless(pointer);
1553
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.bless(pointer);
1580
1554
  }
1581
1555
 
1582
1556
  /**
1583
- * 선택한 학기의 채플 과목 분류 목록을 가져옵니다.
1557
+ * 현재 페이지에 선택된 년도와 학기를 가져옵니다. 최초 로드 시 현재 학기를 가져올 가능성이 있습니다.
1558
+ * 하지만 이 애플리케이션의 다른 함수를 호출하여 한번 정보를 가져왔다면 마지막으로 가져온 정보의 학기가 반환되므로 주의하여야 하며, 신뢰할 수 있는 현재 학기의 원천으로 사용되어서는 안됩니다.
1584
1559
  */
1585
- public async chapelCategories(
1560
+ public async getSelectedSemester(asyncOpts_?: {
1561
+ signal: AbortSignal;
1562
+ }): Promise<YearSemester> /*throws*/ {
1563
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
1564
+ try {
1565
+ return await uniffiRustCallAsync(
1566
+ /*rustCaller:*/ uniffiCaller,
1567
+ /*rustFutureFunc:*/ () => {
1568
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_courseregistrationstatusapplication_get_selected_semester(
1569
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.clonePointer(
1570
+ this
1571
+ )
1572
+ );
1573
+ },
1574
+ /*pollFunc:*/ nativeModule()
1575
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
1576
+ /*cancelFunc:*/ nativeModule()
1577
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
1578
+ /*completeFunc:*/ nativeModule()
1579
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1580
+ /*freeFunc:*/ nativeModule()
1581
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1582
+ /*liftFunc:*/ FfiConverterTypeYearSemester.lift.bind(
1583
+ FfiConverterTypeYearSemester
1584
+ ),
1585
+ /*liftString:*/ FfiConverterString.lift,
1586
+ /*asyncOpts:*/ asyncOpts_,
1587
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
1588
+ FfiConverterTypeRusaintError
1589
+ )
1590
+ );
1591
+ } catch (__error: any) {
1592
+ if (uniffiIsDebug && __error instanceof Error) {
1593
+ __error.stack = __stack;
1594
+ }
1595
+ throw __error;
1596
+ }
1597
+ }
1598
+
1599
+ /**
1600
+ * 개인이 수강신청한 내역을 학기별로 찾습니다.
1601
+ */
1602
+ public async lectures(
1586
1603
  year: /*u32*/ number,
1587
1604
  semester: SemesterType,
1588
1605
  asyncOpts_?: { signal: AbortSignal }
1589
- ): Promise<Array<string>> /*throws*/ {
1606
+ ): Promise<Array<RegisteredLecture>> /*throws*/ {
1607
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
1608
+ try {
1609
+ return await uniffiRustCallAsync(
1610
+ /*rustCaller:*/ uniffiCaller,
1611
+ /*rustFutureFunc:*/ () => {
1612
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_courseregistrationstatusapplication_lectures(
1613
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.clonePointer(
1614
+ this
1615
+ ),
1616
+ FfiConverterUInt32.lower(year),
1617
+ FfiConverterTypeSemesterType.lower(semester)
1618
+ );
1619
+ },
1620
+ /*pollFunc:*/ nativeModule()
1621
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
1622
+ /*cancelFunc:*/ nativeModule()
1623
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
1624
+ /*completeFunc:*/ nativeModule()
1625
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1626
+ /*freeFunc:*/ nativeModule()
1627
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1628
+ /*liftFunc:*/ FfiConverterArrayTypeRegisteredLecture.lift.bind(
1629
+ FfiConverterArrayTypeRegisteredLecture
1630
+ ),
1631
+ /*liftString:*/ FfiConverterString.lift,
1632
+ /*asyncOpts:*/ asyncOpts_,
1633
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
1634
+ FfiConverterTypeRusaintError
1635
+ )
1636
+ );
1637
+ } catch (__error: any) {
1638
+ if (uniffiIsDebug && __error instanceof Error) {
1639
+ __error.stack = __stack;
1640
+ }
1641
+ throw __error;
1642
+ }
1643
+ }
1644
+
1645
+ /**
1646
+ * 페이지를 새로고침합니다.
1647
+ */
1648
+ public async reload(asyncOpts_?: {
1649
+ signal: AbortSignal;
1650
+ }): Promise<void> /*throws*/ {
1651
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
1652
+ try {
1653
+ return await uniffiRustCallAsync(
1654
+ /*rustCaller:*/ uniffiCaller,
1655
+ /*rustFutureFunc:*/ () => {
1656
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_courseregistrationstatusapplication_reload(
1657
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.clonePointer(
1658
+ this
1659
+ )
1660
+ );
1661
+ },
1662
+ /*pollFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_poll_void,
1663
+ /*cancelFunc:*/ nativeModule()
1664
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_void,
1665
+ /*completeFunc:*/ nativeModule()
1666
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_void,
1667
+ /*freeFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_free_void,
1668
+ /*liftFunc:*/ (_v) => {},
1669
+ /*liftString:*/ FfiConverterString.lift,
1670
+ /*asyncOpts:*/ asyncOpts_,
1671
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
1672
+ FfiConverterTypeRusaintError
1673
+ )
1674
+ );
1675
+ } catch (__error: any) {
1676
+ if (uniffiIsDebug && __error instanceof Error) {
1677
+ __error.stack = __stack;
1678
+ }
1679
+ throw __error;
1680
+ }
1681
+ }
1682
+
1683
+ /**
1684
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
1685
+ */
1686
+ uniffiDestroy(): void {
1687
+ const ptr = (this as any)[destructorGuardSymbol];
1688
+ if (ptr !== undefined) {
1689
+ const pointer =
1690
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.pointer(
1691
+ this
1692
+ );
1693
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.freePointer(
1694
+ pointer
1695
+ );
1696
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory.unbless(ptr);
1697
+ delete (this as any)[destructorGuardSymbol];
1698
+ }
1699
+ }
1700
+
1701
+ static instanceOf(obj: any): obj is CourseRegistrationStatusApplication {
1702
+ return uniffiTypeCourseRegistrationStatusApplicationObjectFactory.isConcreteType(
1703
+ obj
1704
+ );
1705
+ }
1706
+ }
1707
+
1708
+ const uniffiTypeCourseRegistrationStatusApplicationObjectFactory: UniffiObjectFactory<CourseRegistrationStatusApplicationInterface> =
1709
+ (() => {
1710
+ return {
1711
+ create(
1712
+ pointer: UnsafeMutableRawPointer
1713
+ ): CourseRegistrationStatusApplicationInterface {
1714
+ const instance = Object.create(
1715
+ CourseRegistrationStatusApplication.prototype
1716
+ );
1717
+ instance[pointerLiteralSymbol] = pointer;
1718
+ instance[destructorGuardSymbol] = this.bless(pointer);
1719
+ instance[uniffiTypeNameSymbol] = 'CourseRegistrationStatusApplication';
1720
+ return instance;
1721
+ },
1722
+
1723
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
1724
+ return uniffiCaller.rustCall(
1725
+ /*caller:*/ (status) =>
1726
+ nativeModule().ubrn_uniffi_internal_fn_method_courseregistrationstatusapplication_ffi__bless_pointer(
1727
+ p,
1728
+ status
1729
+ ),
1730
+ /*liftString:*/ FfiConverterString.lift
1731
+ );
1732
+ },
1733
+
1734
+ unbless(ptr: UniffiRustArcPtr) {
1735
+ ptr.markDestroyed();
1736
+ },
1737
+
1738
+ pointer(
1739
+ obj: CourseRegistrationStatusApplicationInterface
1740
+ ): UnsafeMutableRawPointer {
1741
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
1742
+ throw new UniffiInternalError.UnexpectedNullPointer();
1743
+ }
1744
+ return (obj as any)[pointerLiteralSymbol];
1745
+ },
1746
+
1747
+ clonePointer(
1748
+ obj: CourseRegistrationStatusApplicationInterface
1749
+ ): UnsafeMutableRawPointer {
1750
+ const pointer = this.pointer(obj);
1751
+ return uniffiCaller.rustCall(
1752
+ /*caller:*/ (callStatus) =>
1753
+ nativeModule().ubrn_uniffi_rusaint_ffi_fn_clone_courseregistrationstatusapplication(
1754
+ pointer,
1755
+ callStatus
1756
+ ),
1757
+ /*liftString:*/ FfiConverterString.lift
1758
+ );
1759
+ },
1760
+
1761
+ freePointer(pointer: UnsafeMutableRawPointer): void {
1762
+ uniffiCaller.rustCall(
1763
+ /*caller:*/ (callStatus) =>
1764
+ nativeModule().ubrn_uniffi_rusaint_ffi_fn_free_courseregistrationstatusapplication(
1765
+ pointer,
1766
+ callStatus
1767
+ ),
1768
+ /*liftString:*/ FfiConverterString.lift
1769
+ );
1770
+ },
1771
+
1772
+ isConcreteType(
1773
+ obj: any
1774
+ ): obj is CourseRegistrationStatusApplicationInterface {
1775
+ return (
1776
+ obj[destructorGuardSymbol] &&
1777
+ obj[uniffiTypeNameSymbol] === 'CourseRegistrationStatusApplication'
1778
+ );
1779
+ },
1780
+ };
1781
+ })();
1782
+ // FfiConverter for CourseRegistrationStatusApplicationInterface
1783
+ const FfiConverterTypeCourseRegistrationStatusApplication =
1784
+ new FfiConverterObject(
1785
+ uniffiTypeCourseRegistrationStatusApplicationObjectFactory
1786
+ );
1787
+
1788
+ /**
1789
+ * [`CourseRegistrationStatusApplication`] 생성을 위한 빌더
1790
+ */
1791
+ export interface CourseRegistrationStatusApplicationBuilderInterface {
1792
+ /**
1793
+ * 세션과 함께 [`CourseRegistrationStatusApplication`]을 만듭니다.
1794
+ */
1795
+ build(
1796
+ session: USaintSessionInterface,
1797
+ asyncOpts_?: { signal: AbortSignal }
1798
+ ) /*throws*/ : Promise<CourseRegistrationStatusApplicationInterface>;
1799
+ }
1800
+
1801
+ /**
1802
+ * [`CourseRegistrationStatusApplication`] 생성을 위한 빌더
1803
+ */
1804
+ export class CourseRegistrationStatusApplicationBuilder
1805
+ extends UniffiAbstractObject
1806
+ implements CourseRegistrationStatusApplicationBuilderInterface
1807
+ {
1808
+ readonly [uniffiTypeNameSymbol] =
1809
+ 'CourseRegistrationStatusApplicationBuilder';
1810
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
1811
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
1812
+ /**
1813
+ * 새로운 [`CourseRegistrationStatusApplicationBuilder`]를 만듭니다.
1814
+ */
1815
+ constructor() {
1816
+ super();
1817
+ const pointer = uniffiCaller.rustCall(
1818
+ /*caller:*/ (callStatus) => {
1819
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_constructor_courseregistrationstatusapplicationbuilder_new(
1820
+ callStatus
1821
+ );
1822
+ },
1823
+ /*liftString:*/ FfiConverterString.lift
1824
+ );
1825
+ this[pointerLiteralSymbol] = pointer;
1826
+ this[destructorGuardSymbol] =
1827
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.bless(
1828
+ pointer
1829
+ );
1830
+ }
1831
+
1832
+ /**
1833
+ * 세션과 함께 [`CourseRegistrationStatusApplication`]을 만듭니다.
1834
+ */
1835
+ public async build(
1836
+ session: USaintSessionInterface,
1837
+ asyncOpts_?: { signal: AbortSignal }
1838
+ ): Promise<CourseRegistrationStatusApplicationInterface> /*throws*/ {
1839
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
1840
+ try {
1841
+ return await uniffiRustCallAsync(
1842
+ /*rustCaller:*/ uniffiCaller,
1843
+ /*rustFutureFunc:*/ () => {
1844
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_courseregistrationstatusapplicationbuilder_build(
1845
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.clonePointer(
1846
+ this
1847
+ ),
1848
+ FfiConverterTypeUSaintSession.lower(session)
1849
+ );
1850
+ },
1851
+ /*pollFunc:*/ nativeModule()
1852
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_pointer,
1853
+ /*cancelFunc:*/ nativeModule()
1854
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_pointer,
1855
+ /*completeFunc:*/ nativeModule()
1856
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_pointer,
1857
+ /*freeFunc:*/ nativeModule()
1858
+ .ubrn_ffi_rusaint_ffi_rust_future_free_pointer,
1859
+ /*liftFunc:*/ FfiConverterTypeCourseRegistrationStatusApplication.lift.bind(
1860
+ FfiConverterTypeCourseRegistrationStatusApplication
1861
+ ),
1862
+ /*liftString:*/ FfiConverterString.lift,
1863
+ /*asyncOpts:*/ asyncOpts_,
1864
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
1865
+ FfiConverterTypeRusaintError
1866
+ )
1867
+ );
1868
+ } catch (__error: any) {
1869
+ if (uniffiIsDebug && __error instanceof Error) {
1870
+ __error.stack = __stack;
1871
+ }
1872
+ throw __error;
1873
+ }
1874
+ }
1875
+
1876
+ /**
1877
+ * {@inheritDoc uniffi-bindgen-react-native#UniffiAbstractObject.uniffiDestroy}
1878
+ */
1879
+ uniffiDestroy(): void {
1880
+ const ptr = (this as any)[destructorGuardSymbol];
1881
+ if (ptr !== undefined) {
1882
+ const pointer =
1883
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.pointer(
1884
+ this
1885
+ );
1886
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.freePointer(
1887
+ pointer
1888
+ );
1889
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.unbless(
1890
+ ptr
1891
+ );
1892
+ delete (this as any)[destructorGuardSymbol];
1893
+ }
1894
+ }
1895
+
1896
+ static instanceOf(
1897
+ obj: any
1898
+ ): obj is CourseRegistrationStatusApplicationBuilder {
1899
+ return uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory.isConcreteType(
1900
+ obj
1901
+ );
1902
+ }
1903
+ }
1904
+
1905
+ const uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory: UniffiObjectFactory<CourseRegistrationStatusApplicationBuilderInterface> =
1906
+ (() => {
1907
+ return {
1908
+ create(
1909
+ pointer: UnsafeMutableRawPointer
1910
+ ): CourseRegistrationStatusApplicationBuilderInterface {
1911
+ const instance = Object.create(
1912
+ CourseRegistrationStatusApplicationBuilder.prototype
1913
+ );
1914
+ instance[pointerLiteralSymbol] = pointer;
1915
+ instance[destructorGuardSymbol] = this.bless(pointer);
1916
+ instance[uniffiTypeNameSymbol] =
1917
+ 'CourseRegistrationStatusApplicationBuilder';
1918
+ return instance;
1919
+ },
1920
+
1921
+ bless(p: UnsafeMutableRawPointer): UniffiRustArcPtr {
1922
+ return uniffiCaller.rustCall(
1923
+ /*caller:*/ (status) =>
1924
+ nativeModule().ubrn_uniffi_internal_fn_method_courseregistrationstatusapplicationbuilder_ffi__bless_pointer(
1925
+ p,
1926
+ status
1927
+ ),
1928
+ /*liftString:*/ FfiConverterString.lift
1929
+ );
1930
+ },
1931
+
1932
+ unbless(ptr: UniffiRustArcPtr) {
1933
+ ptr.markDestroyed();
1934
+ },
1935
+
1936
+ pointer(
1937
+ obj: CourseRegistrationStatusApplicationBuilderInterface
1938
+ ): UnsafeMutableRawPointer {
1939
+ if ((obj as any)[destructorGuardSymbol] === undefined) {
1940
+ throw new UniffiInternalError.UnexpectedNullPointer();
1941
+ }
1942
+ return (obj as any)[pointerLiteralSymbol];
1943
+ },
1944
+
1945
+ clonePointer(
1946
+ obj: CourseRegistrationStatusApplicationBuilderInterface
1947
+ ): UnsafeMutableRawPointer {
1948
+ const pointer = this.pointer(obj);
1949
+ return uniffiCaller.rustCall(
1950
+ /*caller:*/ (callStatus) =>
1951
+ nativeModule().ubrn_uniffi_rusaint_ffi_fn_clone_courseregistrationstatusapplicationbuilder(
1952
+ pointer,
1953
+ callStatus
1954
+ ),
1955
+ /*liftString:*/ FfiConverterString.lift
1956
+ );
1957
+ },
1958
+
1959
+ freePointer(pointer: UnsafeMutableRawPointer): void {
1960
+ uniffiCaller.rustCall(
1961
+ /*caller:*/ (callStatus) =>
1962
+ nativeModule().ubrn_uniffi_rusaint_ffi_fn_free_courseregistrationstatusapplicationbuilder(
1963
+ pointer,
1964
+ callStatus
1965
+ ),
1966
+ /*liftString:*/ FfiConverterString.lift
1967
+ );
1968
+ },
1969
+
1970
+ isConcreteType(
1971
+ obj: any
1972
+ ): obj is CourseRegistrationStatusApplicationBuilderInterface {
1973
+ return (
1974
+ obj[destructorGuardSymbol] &&
1975
+ obj[uniffiTypeNameSymbol] ===
1976
+ 'CourseRegistrationStatusApplicationBuilder'
1977
+ );
1978
+ },
1979
+ };
1980
+ })();
1981
+ // FfiConverter for CourseRegistrationStatusApplicationBuilderInterface
1982
+ const FfiConverterTypeCourseRegistrationStatusApplicationBuilder =
1983
+ new FfiConverterObject(
1984
+ uniffiTypeCourseRegistrationStatusApplicationBuilderObjectFactory
1985
+ );
1986
+
1987
+ /**
1988
+ * [강의시간표](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2100)
1989
+ */
1990
+ export interface CourseScheduleApplicationInterface {
1991
+ /**
1992
+ * 선택한 학기의 채플 과목 분류 목록을 가져옵니다.
1993
+ */
1994
+ chapelCategories(
1995
+ year: /*u32*/ number,
1996
+ semester: SemesterType,
1997
+ asyncOpts_?: { signal: AbortSignal }
1998
+ ) /*throws*/ : Promise<Array<string>>;
1999
+ /**
2000
+ * 선택한 학기 기준 단과대 목록을 가져옵니다.
2001
+ */
2002
+ collages(
2003
+ year: /*u32*/ number,
2004
+ semester: SemesterType,
2005
+ asyncOpts_?: { signal: AbortSignal }
2006
+ ) /*throws*/ : Promise<Array<string>>;
2007
+ /**
2008
+ * 선택한 학기의 연계전공 목록을 가져옵니다.
2009
+ */
2010
+ connectedMajors(
2011
+ year: /*u32*/ number,
2012
+ semester: SemesterType,
2013
+ asyncOpts_?: { signal: AbortSignal }
2014
+ ) /*throws*/ : Promise<Array<string>>;
2015
+ /**
2016
+ * 선택한 학기 기준 주어진 단과대의 학과(부) 목록을 가져옵니다.
2017
+ */
2018
+ departments(
2019
+ year: /*u32*/ number,
2020
+ semester: SemesterType,
2021
+ collage: string,
2022
+ asyncOpts_?: { signal: AbortSignal }
2023
+ ) /*throws*/ : Promise<Array<string>>;
2024
+ /**
2025
+ * 검색된 모든 강의의 상세 정보와 강의계획서를 함께 조회합니다.
2026
+ * 테이블 스크롤을 자동으로 수행합니다.
2027
+ * `fetch_syllabus`가 `true`이면 강의계획서도 함께 조회합니다.
2028
+ * 강의계획서가 없는 강의의 경우 `syllabus` 필드가 `None`이 되며, 그 외 조회 오류는 에러로 전파됩니다.
2029
+ */
2030
+ findDetailedLectures(
2031
+ year: /*u32*/ number,
2032
+ semester: SemesterType,
2033
+ lectureCategory: LectureCategory,
2034
+ fetchSyllabus: boolean,
2035
+ asyncOpts_?: { signal: AbortSignal }
2036
+ ) /*throws*/ : Promise<Array<DetailedLecture>>;
2037
+ /**
2038
+ * 학기, 학년도, 강의 분류를 통해 강의를 찾습니다.
2039
+ */
2040
+ findLectures(
2041
+ year: /*u32*/ number,
2042
+ semester: SemesterType,
2043
+ lectureCategory: LectureCategory,
2044
+ asyncOpts_?: { signal: AbortSignal }
2045
+ ) /*throws*/ : Promise<Array<Lecture>>;
2046
+ /**
2047
+ * 현재 페이지에 선택된 년도와 학기를 가져옵니다. 최초 로드 시 현재 학기를 가져올 가능성이 있습니다.
2048
+ * 하지만 이 애플리케이션의 다른 함수를 호출하여 한번 정보를 가져왔다면 마지막으로 가져온 정보의 학기가 반환되므로 주의하여야 하며, 신뢰할 수 있는 현재 학기의 원천으로 사용되어서는 안됩니다.
2049
+ */
2050
+ getSelectedSemester(asyncOpts_?: {
2051
+ signal: AbortSignal;
2052
+ }) /*throws*/ : Promise<YearSemester>;
2053
+ /**
2054
+ * 선택한 학기의 대학원 단과대학 목록을 가져옵니다.
2055
+ */
2056
+ graduatedCollages(
2057
+ year: /*u32*/ number,
2058
+ semester: SemesterType,
2059
+ asyncOpts_?: { signal: AbortSignal }
2060
+ ) /*throws*/ : Promise<Array<string>>;
2061
+ /**
2062
+ * 선택한 학기의 주어진 대학원 단과대의 학과 목록을 가져옵니다.
2063
+ */
2064
+ graduatedDepartments(
2065
+ year: /*u32*/ number,
2066
+ semester: SemesterType,
2067
+ collage: string,
2068
+ asyncOpts_?: { signal: AbortSignal }
2069
+ ) /*throws*/ : Promise<Array<string>>;
2070
+ /**
2071
+ * 주어진 과목번호에 해당하는 강의의 상세 정보를 가져옵니다.
2072
+ * `find_lectures` 함수를 먼저 호출하여 강의를 검색한 이후에 사용되어야 합니다.
2073
+ */
2074
+ lectureDetail(
2075
+ code: string,
2076
+ asyncOpts_?: { signal: AbortSignal }
2077
+ ) /*throws*/ : Promise<LectureDetail>;
2078
+ /**
2079
+ * 주어진 과목번호에 해당하는 강의의 강의계획서(syllabus) 데이터를 OZ 서버에서 가져옵니다.
2080
+ * `find_lectures` 함수를 먼저 호출하여 강의를 검색한 이후에 사용되어야 합니다.
2081
+ * 강의계획서가 없는 강의의 경우 에러를 반환합니다.
2082
+ */
2083
+ lectureSyllabus(
2084
+ code: string,
2085
+ asyncOpts_?: { signal: AbortSignal }
2086
+ ) /*throws*/ : Promise<LectureSyllabus>;
2087
+ /**
2088
+ * 현재 페이지에 로드된 강의들을 가져옵니다. `find_lectures` 함수를 호출하여 강의를 검색한 이후에 사용되어야 하며, 검색한 강의들에 대한 추가 정보를 가져오고자 할 때 사용할 수 있습니다.
2089
+ * NOTE: 이 함수는 스크롤을 수행하지 않으므로, find_lectures 함수가 너무 많은 강의(500줄 초과)를 반환한 경우, 예상대로 동작하지 않을 수 있습니다.
2090
+ */
2091
+ loadedLectures(asyncOpts_?: {
2092
+ signal: AbortSignal;
2093
+ }) /*throws*/ : Promise<Array<Lecture>>;
2094
+ /**
2095
+ * 선택한 학과(부)의 전공 목록을 가져옵니다.
2096
+ */
2097
+ majors(
2098
+ year: /*u32*/ number,
2099
+ semester: SemesterType,
2100
+ collage: string,
2101
+ department: string,
2102
+ asyncOpts_?: { signal: AbortSignal }
2103
+ ) /*throws*/ : Promise<Array<string>>;
2104
+ /**
2105
+ * 선택한 학기의 교양선택 분야 목록을 가져옵니다.
2106
+ */
2107
+ optionalElectiveCategories(
2108
+ year: /*u32*/ number,
2109
+ semester: SemesterType,
2110
+ asyncOpts_?: { signal: AbortSignal }
2111
+ ) /*throws*/ : Promise<Array<string>>;
2112
+ /**
2113
+ * 페이지를 새로고침합니다.
2114
+ */
2115
+ reload(asyncOpts_?: { signal: AbortSignal }) /*throws*/ : Promise<void>;
2116
+ /**
2117
+ * 선택한 학기의 교양필수 과목명 목록을 가져옵니다.
2118
+ */
2119
+ requiredElectives(
2120
+ year: /*u32*/ number,
2121
+ semester: SemesterType,
2122
+ asyncOpts_?: { signal: AbortSignal }
2123
+ ) /*throws*/ : Promise<Array<string>>;
2124
+ /**
2125
+ * 선택한 학기의 융합전공 목록을 가져옵니다.
2126
+ */
2127
+ unitedMajors(
2128
+ year: /*u32*/ number,
2129
+ semester: SemesterType,
2130
+ asyncOpts_?: { signal: AbortSignal }
2131
+ ) /*throws*/ : Promise<Array<string>>;
2132
+ }
2133
+
2134
+ /**
2135
+ * [강의시간표](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW2100)
2136
+ */
2137
+ export class CourseScheduleApplication
2138
+ extends UniffiAbstractObject
2139
+ implements CourseScheduleApplicationInterface
2140
+ {
2141
+ readonly [uniffiTypeNameSymbol] = 'CourseScheduleApplication';
2142
+ readonly [destructorGuardSymbol]: UniffiRustArcPtr;
2143
+ readonly [pointerLiteralSymbol]: UnsafeMutableRawPointer;
2144
+ // No primary constructor declared for this class.
2145
+ private constructor(pointer: UnsafeMutableRawPointer) {
2146
+ super();
2147
+ this[pointerLiteralSymbol] = pointer;
2148
+ this[destructorGuardSymbol] =
2149
+ uniffiTypeCourseScheduleApplicationObjectFactory.bless(pointer);
2150
+ }
2151
+
2152
+ /**
2153
+ * 선택한 학기의 채플 과목 분류 목록을 가져옵니다.
2154
+ */
2155
+ public async chapelCategories(
2156
+ year: /*u32*/ number,
2157
+ semester: SemesterType,
2158
+ asyncOpts_?: { signal: AbortSignal }
2159
+ ): Promise<Array<string>> /*throws*/ {
2160
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
2161
+ try {
2162
+ return await uniffiRustCallAsync(
2163
+ /*rustCaller:*/ uniffiCaller,
2164
+ /*rustFutureFunc:*/ () => {
2165
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_chapel_categories(
2166
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
2167
+ FfiConverterUInt32.lower(year),
2168
+ FfiConverterTypeSemesterType.lower(semester)
2169
+ );
2170
+ },
2171
+ /*pollFunc:*/ nativeModule()
2172
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
2173
+ /*cancelFunc:*/ nativeModule()
2174
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
2175
+ /*completeFunc:*/ nativeModule()
2176
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
2177
+ /*freeFunc:*/ nativeModule()
2178
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
2179
+ /*liftFunc:*/ FfiConverterArrayString.lift.bind(
2180
+ FfiConverterArrayString
2181
+ ),
2182
+ /*liftString:*/ FfiConverterString.lift,
2183
+ /*asyncOpts:*/ asyncOpts_,
2184
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
2185
+ FfiConverterTypeRusaintError
2186
+ )
2187
+ );
2188
+ } catch (__error: any) {
2189
+ if (uniffiIsDebug && __error instanceof Error) {
2190
+ __error.stack = __stack;
2191
+ }
2192
+ throw __error;
2193
+ }
2194
+ }
2195
+
2196
+ /**
2197
+ * 선택한 학기 기준 단과대 목록을 가져옵니다.
2198
+ */
2199
+ public async collages(
2200
+ year: /*u32*/ number,
2201
+ semester: SemesterType,
2202
+ asyncOpts_?: { signal: AbortSignal }
2203
+ ): Promise<Array<string>> /*throws*/ {
2204
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
2205
+ try {
2206
+ return await uniffiRustCallAsync(
2207
+ /*rustCaller:*/ uniffiCaller,
2208
+ /*rustFutureFunc:*/ () => {
2209
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_collages(
2210
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
2211
+ FfiConverterUInt32.lower(year),
2212
+ FfiConverterTypeSemesterType.lower(semester)
2213
+ );
2214
+ },
2215
+ /*pollFunc:*/ nativeModule()
2216
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
2217
+ /*cancelFunc:*/ nativeModule()
2218
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
2219
+ /*completeFunc:*/ nativeModule()
2220
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
2221
+ /*freeFunc:*/ nativeModule()
2222
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
2223
+ /*liftFunc:*/ FfiConverterArrayString.lift.bind(
2224
+ FfiConverterArrayString
2225
+ ),
2226
+ /*liftString:*/ FfiConverterString.lift,
2227
+ /*asyncOpts:*/ asyncOpts_,
2228
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
2229
+ FfiConverterTypeRusaintError
2230
+ )
2231
+ );
2232
+ } catch (__error: any) {
2233
+ if (uniffiIsDebug && __error instanceof Error) {
2234
+ __error.stack = __stack;
2235
+ }
2236
+ throw __error;
2237
+ }
2238
+ }
2239
+
2240
+ /**
2241
+ * 선택한 학기의 연계전공 목록을 가져옵니다.
2242
+ */
2243
+ public async connectedMajors(
2244
+ year: /*u32*/ number,
2245
+ semester: SemesterType,
2246
+ asyncOpts_?: { signal: AbortSignal }
2247
+ ): Promise<Array<string>> /*throws*/ {
2248
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
2249
+ try {
2250
+ return await uniffiRustCallAsync(
2251
+ /*rustCaller:*/ uniffiCaller,
2252
+ /*rustFutureFunc:*/ () => {
2253
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_connected_majors(
2254
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
2255
+ FfiConverterUInt32.lower(year),
2256
+ FfiConverterTypeSemesterType.lower(semester)
2257
+ );
2258
+ },
2259
+ /*pollFunc:*/ nativeModule()
2260
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
2261
+ /*cancelFunc:*/ nativeModule()
2262
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
2263
+ /*completeFunc:*/ nativeModule()
2264
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
2265
+ /*freeFunc:*/ nativeModule()
2266
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
2267
+ /*liftFunc:*/ FfiConverterArrayString.lift.bind(
2268
+ FfiConverterArrayString
2269
+ ),
2270
+ /*liftString:*/ FfiConverterString.lift,
2271
+ /*asyncOpts:*/ asyncOpts_,
2272
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
2273
+ FfiConverterTypeRusaintError
2274
+ )
2275
+ );
2276
+ } catch (__error: any) {
2277
+ if (uniffiIsDebug && __error instanceof Error) {
2278
+ __error.stack = __stack;
2279
+ }
2280
+ throw __error;
2281
+ }
2282
+ }
2283
+
2284
+ /**
2285
+ * 선택한 학기 기준 주어진 단과대의 학과(부) 목록을 가져옵니다.
2286
+ */
2287
+ public async departments(
2288
+ year: /*u32*/ number,
2289
+ semester: SemesterType,
2290
+ collage: string,
2291
+ asyncOpts_?: { signal: AbortSignal }
2292
+ ): Promise<Array<string>> /*throws*/ {
2293
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
2294
+ try {
2295
+ return await uniffiRustCallAsync(
2296
+ /*rustCaller:*/ uniffiCaller,
2297
+ /*rustFutureFunc:*/ () => {
2298
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_departments(
2299
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
2300
+ FfiConverterUInt32.lower(year),
2301
+ FfiConverterTypeSemesterType.lower(semester),
2302
+ FfiConverterString.lower(collage)
2303
+ );
2304
+ },
2305
+ /*pollFunc:*/ nativeModule()
2306
+ .ubrn_ffi_rusaint_ffi_rust_future_poll_rust_buffer,
2307
+ /*cancelFunc:*/ nativeModule()
2308
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_rust_buffer,
2309
+ /*completeFunc:*/ nativeModule()
2310
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
2311
+ /*freeFunc:*/ nativeModule()
2312
+ .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
2313
+ /*liftFunc:*/ FfiConverterArrayString.lift.bind(
2314
+ FfiConverterArrayString
2315
+ ),
2316
+ /*liftString:*/ FfiConverterString.lift,
2317
+ /*asyncOpts:*/ asyncOpts_,
2318
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
2319
+ FfiConverterTypeRusaintError
2320
+ )
2321
+ );
2322
+ } catch (__error: any) {
2323
+ if (uniffiIsDebug && __error instanceof Error) {
2324
+ __error.stack = __stack;
2325
+ }
2326
+ throw __error;
2327
+ }
2328
+ }
2329
+
2330
+ /**
2331
+ * 검색된 모든 강의의 상세 정보와 강의계획서를 함께 조회합니다.
2332
+ * 테이블 스크롤을 자동으로 수행합니다.
2333
+ * `fetch_syllabus`가 `true`이면 강의계획서도 함께 조회합니다.
2334
+ * 강의계획서가 없는 강의의 경우 `syllabus` 필드가 `None`이 되며, 그 외 조회 오류는 에러로 전파됩니다.
2335
+ */
2336
+ public async findDetailedLectures(
2337
+ year: /*u32*/ number,
2338
+ semester: SemesterType,
2339
+ lectureCategory: LectureCategory,
2340
+ fetchSyllabus: boolean,
2341
+ asyncOpts_?: { signal: AbortSignal }
2342
+ ): Promise<Array<DetailedLecture>> /*throws*/ {
1590
2343
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1591
2344
  try {
1592
2345
  return await uniffiRustCallAsync(
1593
2346
  /*rustCaller:*/ uniffiCaller,
1594
2347
  /*rustFutureFunc:*/ () => {
1595
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_chapel_categories(
2348
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_find_detailed_lectures(
1596
2349
  uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1597
2350
  FfiConverterUInt32.lower(year),
1598
- FfiConverterTypeSemesterType.lower(semester)
2351
+ FfiConverterTypeSemesterType.lower(semester),
2352
+ FfiConverterTypeLectureCategory.lower(lectureCategory),
2353
+ FfiConverterBool.lower(fetchSyllabus)
1599
2354
  );
1600
2355
  },
1601
2356
  /*pollFunc:*/ nativeModule()
@@ -1606,8 +2361,8 @@ export class CourseScheduleApplication
1606
2361
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1607
2362
  /*freeFunc:*/ nativeModule()
1608
2363
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1609
- /*liftFunc:*/ FfiConverterArrayString.lift.bind(
1610
- FfiConverterArrayString
2364
+ /*liftFunc:*/ FfiConverterArrayTypeDetailedLecture.lift.bind(
2365
+ FfiConverterArrayTypeDetailedLecture
1611
2366
  ),
1612
2367
  /*liftString:*/ FfiConverterString.lift,
1613
2368
  /*asyncOpts:*/ asyncOpts_,
@@ -1624,22 +2379,24 @@ export class CourseScheduleApplication
1624
2379
  }
1625
2380
 
1626
2381
  /**
1627
- * 선택한 학기 기준 단과대 목록을 가져옵니다.
2382
+ * 학기, 학년도, 강의 분류를 통해 강의를 찾습니다.
1628
2383
  */
1629
- public async collages(
2384
+ public async findLectures(
1630
2385
  year: /*u32*/ number,
1631
2386
  semester: SemesterType,
2387
+ lectureCategory: LectureCategory,
1632
2388
  asyncOpts_?: { signal: AbortSignal }
1633
- ): Promise<Array<string>> /*throws*/ {
2389
+ ): Promise<Array<Lecture>> /*throws*/ {
1634
2390
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1635
2391
  try {
1636
2392
  return await uniffiRustCallAsync(
1637
2393
  /*rustCaller:*/ uniffiCaller,
1638
2394
  /*rustFutureFunc:*/ () => {
1639
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_collages(
2395
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_find_lectures(
1640
2396
  uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1641
2397
  FfiConverterUInt32.lower(year),
1642
- FfiConverterTypeSemesterType.lower(semester)
2398
+ FfiConverterTypeSemesterType.lower(semester),
2399
+ FfiConverterTypeLectureCategory.lower(lectureCategory)
1643
2400
  );
1644
2401
  },
1645
2402
  /*pollFunc:*/ nativeModule()
@@ -1650,8 +2407,8 @@ export class CourseScheduleApplication
1650
2407
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1651
2408
  /*freeFunc:*/ nativeModule()
1652
2409
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1653
- /*liftFunc:*/ FfiConverterArrayString.lift.bind(
1654
- FfiConverterArrayString
2410
+ /*liftFunc:*/ FfiConverterArrayTypeLecture.lift.bind(
2411
+ FfiConverterArrayTypeLecture
1655
2412
  ),
1656
2413
  /*liftString:*/ FfiConverterString.lift,
1657
2414
  /*asyncOpts:*/ asyncOpts_,
@@ -1668,22 +2425,19 @@ export class CourseScheduleApplication
1668
2425
  }
1669
2426
 
1670
2427
  /**
1671
- * 선택한 학기의 연계전공 목록을 가져옵니다.
2428
+ * 현재 페이지에 선택된 년도와 학기를 가져옵니다. 최초 로드 시 현재 학기를 가져올 가능성이 있습니다.
2429
+ * 하지만 이 애플리케이션의 다른 함수를 호출하여 한번 정보를 가져왔다면 마지막으로 가져온 정보의 학기가 반환되므로 주의하여야 하며, 신뢰할 수 있는 현재 학기의 원천으로 사용되어서는 안됩니다.
1672
2430
  */
1673
- public async connectedMajors(
1674
- year: /*u32*/ number,
1675
- semester: SemesterType,
1676
- asyncOpts_?: { signal: AbortSignal }
1677
- ): Promise<Array<string>> /*throws*/ {
2431
+ public async getSelectedSemester(asyncOpts_?: {
2432
+ signal: AbortSignal;
2433
+ }): Promise<YearSemester> /*throws*/ {
1678
2434
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1679
2435
  try {
1680
2436
  return await uniffiRustCallAsync(
1681
2437
  /*rustCaller:*/ uniffiCaller,
1682
2438
  /*rustFutureFunc:*/ () => {
1683
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_connected_majors(
1684
- uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1685
- FfiConverterUInt32.lower(year),
1686
- FfiConverterTypeSemesterType.lower(semester)
2439
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_get_selected_semester(
2440
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this)
1687
2441
  );
1688
2442
  },
1689
2443
  /*pollFunc:*/ nativeModule()
@@ -1694,8 +2448,8 @@ export class CourseScheduleApplication
1694
2448
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1695
2449
  /*freeFunc:*/ nativeModule()
1696
2450
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1697
- /*liftFunc:*/ FfiConverterArrayString.lift.bind(
1698
- FfiConverterArrayString
2451
+ /*liftFunc:*/ FfiConverterTypeYearSemester.lift.bind(
2452
+ FfiConverterTypeYearSemester
1699
2453
  ),
1700
2454
  /*liftString:*/ FfiConverterString.lift,
1701
2455
  /*asyncOpts:*/ asyncOpts_,
@@ -1712,12 +2466,11 @@ export class CourseScheduleApplication
1712
2466
  }
1713
2467
 
1714
2468
  /**
1715
- * 선택한 학기 기준 주어진 단과대의 학과(부) 목록을 가져옵니다.
2469
+ * 선택한 학기의 대학원 단과대학 목록을 가져옵니다.
1716
2470
  */
1717
- public async departments(
2471
+ public async graduatedCollages(
1718
2472
  year: /*u32*/ number,
1719
2473
  semester: SemesterType,
1720
- collage: string,
1721
2474
  asyncOpts_?: { signal: AbortSignal }
1722
2475
  ): Promise<Array<string>> /*throws*/ {
1723
2476
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
@@ -1725,11 +2478,10 @@ export class CourseScheduleApplication
1725
2478
  return await uniffiRustCallAsync(
1726
2479
  /*rustCaller:*/ uniffiCaller,
1727
2480
  /*rustFutureFunc:*/ () => {
1728
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_departments(
2481
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_graduated_collages(
1729
2482
  uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1730
2483
  FfiConverterUInt32.lower(year),
1731
- FfiConverterTypeSemesterType.lower(semester),
1732
- FfiConverterString.lower(collage)
2484
+ FfiConverterTypeSemesterType.lower(semester)
1733
2485
  );
1734
2486
  },
1735
2487
  /*pollFunc:*/ nativeModule()
@@ -1758,24 +2510,24 @@ export class CourseScheduleApplication
1758
2510
  }
1759
2511
 
1760
2512
  /**
1761
- * 학기, 학년도, 강의 분류를 통해 강의를 찾습니다.
2513
+ * 선택한 학기의 주어진 대학원 단과대의 학과 목록을 가져옵니다.
1762
2514
  */
1763
- public async findLectures(
2515
+ public async graduatedDepartments(
1764
2516
  year: /*u32*/ number,
1765
2517
  semester: SemesterType,
1766
- lectureCategory: LectureCategory,
2518
+ collage: string,
1767
2519
  asyncOpts_?: { signal: AbortSignal }
1768
- ): Promise<Array<Lecture>> /*throws*/ {
2520
+ ): Promise<Array<string>> /*throws*/ {
1769
2521
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1770
2522
  try {
1771
2523
  return await uniffiRustCallAsync(
1772
2524
  /*rustCaller:*/ uniffiCaller,
1773
2525
  /*rustFutureFunc:*/ () => {
1774
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_find_lectures(
2526
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_graduated_departments(
1775
2527
  uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1776
2528
  FfiConverterUInt32.lower(year),
1777
2529
  FfiConverterTypeSemesterType.lower(semester),
1778
- FfiConverterTypeLectureCategory.lower(lectureCategory)
2530
+ FfiConverterString.lower(collage)
1779
2531
  );
1780
2532
  },
1781
2533
  /*pollFunc:*/ nativeModule()
@@ -1786,8 +2538,8 @@ export class CourseScheduleApplication
1786
2538
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1787
2539
  /*freeFunc:*/ nativeModule()
1788
2540
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1789
- /*liftFunc:*/ FfiConverterArrayTypeLecture.lift.bind(
1790
- FfiConverterArrayTypeLecture
2541
+ /*liftFunc:*/ FfiConverterArrayString.lift.bind(
2542
+ FfiConverterArrayString
1791
2543
  ),
1792
2544
  /*liftString:*/ FfiConverterString.lift,
1793
2545
  /*asyncOpts:*/ asyncOpts_,
@@ -1804,19 +2556,21 @@ export class CourseScheduleApplication
1804
2556
  }
1805
2557
 
1806
2558
  /**
1807
- * 현재 페이지에 선택된 년도와 학기를 가져옵니다. 최초 로드 시 현재 학기를 가져올 가능성이 있습니다.
1808
- * 하지만 애플리케이션의 다른 함수를 호출하여 한번 정보를 가져왔다면 마지막으로 가져온 정보의 학기가 반환되므로 주의하여야 하며, 신뢰할 수 있는 현재 학기의 원천으로 사용되어서는 안됩니다.
2559
+ * 주어진 과목번호에 해당하는 강의의 상세 정보를 가져옵니다.
2560
+ * `find_lectures` 함수를 먼저 호출하여 강의를 검색한 이후에 사용되어야 합니다.
1809
2561
  */
1810
- public async getSelectedSemester(asyncOpts_?: {
1811
- signal: AbortSignal;
1812
- }): Promise<YearSemester> /*throws*/ {
2562
+ public async lectureDetail(
2563
+ code: string,
2564
+ asyncOpts_?: { signal: AbortSignal }
2565
+ ): Promise<LectureDetail> /*throws*/ {
1813
2566
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1814
2567
  try {
1815
2568
  return await uniffiRustCallAsync(
1816
2569
  /*rustCaller:*/ uniffiCaller,
1817
2570
  /*rustFutureFunc:*/ () => {
1818
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_get_selected_semester(
1819
- uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this)
2571
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_lecture_detail(
2572
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
2573
+ FfiConverterString.lower(code)
1820
2574
  );
1821
2575
  },
1822
2576
  /*pollFunc:*/ nativeModule()
@@ -1827,8 +2581,8 @@ export class CourseScheduleApplication
1827
2581
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1828
2582
  /*freeFunc:*/ nativeModule()
1829
2583
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1830
- /*liftFunc:*/ FfiConverterTypeYearSemester.lift.bind(
1831
- FfiConverterTypeYearSemester
2584
+ /*liftFunc:*/ FfiConverterTypeLectureDetail.lift.bind(
2585
+ FfiConverterTypeLectureDetail
1832
2586
  ),
1833
2587
  /*liftString:*/ FfiConverterString.lift,
1834
2588
  /*asyncOpts:*/ asyncOpts_,
@@ -1845,22 +2599,22 @@ export class CourseScheduleApplication
1845
2599
  }
1846
2600
 
1847
2601
  /**
1848
- * 선택한 학기의 대학원 단과대학 목록을 가져옵니다.
2602
+ * 주어진 과목번호에 해당하는 강의의 강의계획서(syllabus) 데이터를 OZ 서버에서 가져옵니다.
2603
+ * `find_lectures` 함수를 먼저 호출하여 강의를 검색한 이후에 사용되어야 합니다.
2604
+ * 강의계획서가 없는 강의의 경우 에러를 반환합니다.
1849
2605
  */
1850
- public async graduatedCollages(
1851
- year: /*u32*/ number,
1852
- semester: SemesterType,
2606
+ public async lectureSyllabus(
2607
+ code: string,
1853
2608
  asyncOpts_?: { signal: AbortSignal }
1854
- ): Promise<Array<string>> /*throws*/ {
2609
+ ): Promise<LectureSyllabus> /*throws*/ {
1855
2610
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1856
2611
  try {
1857
2612
  return await uniffiRustCallAsync(
1858
2613
  /*rustCaller:*/ uniffiCaller,
1859
2614
  /*rustFutureFunc:*/ () => {
1860
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_graduated_collages(
2615
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_lecture_syllabus(
1861
2616
  uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1862
- FfiConverterUInt32.lower(year),
1863
- FfiConverterTypeSemesterType.lower(semester)
2617
+ FfiConverterString.lower(code)
1864
2618
  );
1865
2619
  },
1866
2620
  /*pollFunc:*/ nativeModule()
@@ -1871,8 +2625,8 @@ export class CourseScheduleApplication
1871
2625
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1872
2626
  /*freeFunc:*/ nativeModule()
1873
2627
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1874
- /*liftFunc:*/ FfiConverterArrayString.lift.bind(
1875
- FfiConverterArrayString
2628
+ /*liftFunc:*/ FfiConverterTypeLectureSyllabus.lift.bind(
2629
+ FfiConverterTypeLectureSyllabus
1876
2630
  ),
1877
2631
  /*liftString:*/ FfiConverterString.lift,
1878
2632
  /*asyncOpts:*/ asyncOpts_,
@@ -1889,24 +2643,19 @@ export class CourseScheduleApplication
1889
2643
  }
1890
2644
 
1891
2645
  /**
1892
- * 선택한 학기의 주어진 대학원 단과대의 학과 목록을 가져옵니다.
2646
+ * 현재 페이지에 로드된 강의들을 가져옵니다. `find_lectures` 함수를 호출하여 강의를 검색한 이후에 사용되어야 하며, 검색한 강의들에 대한 추가 정보를 가져오고자 할 때 사용할 수 있습니다.
2647
+ * NOTE: 이 함수는 스크롤을 수행하지 않으므로, find_lectures 함수가 너무 많은 강의(500줄 초과)를 반환한 경우, 예상대로 동작하지 않을 수 있습니다.
1893
2648
  */
1894
- public async graduatedDepartments(
1895
- year: /*u32*/ number,
1896
- semester: SemesterType,
1897
- collage: string,
1898
- asyncOpts_?: { signal: AbortSignal }
1899
- ): Promise<Array<string>> /*throws*/ {
2649
+ public async loadedLectures(asyncOpts_?: {
2650
+ signal: AbortSignal;
2651
+ }): Promise<Array<Lecture>> /*throws*/ {
1900
2652
  const __stack = uniffiIsDebug ? new Error().stack : undefined;
1901
2653
  try {
1902
2654
  return await uniffiRustCallAsync(
1903
2655
  /*rustCaller:*/ uniffiCaller,
1904
2656
  /*rustFutureFunc:*/ () => {
1905
- return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_graduated_departments(
1906
- uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this),
1907
- FfiConverterUInt32.lower(year),
1908
- FfiConverterTypeSemesterType.lower(semester),
1909
- FfiConverterString.lower(collage)
2657
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_coursescheduleapplication_loaded_lectures(
2658
+ uniffiTypeCourseScheduleApplicationObjectFactory.clonePointer(this)
1910
2659
  );
1911
2660
  },
1912
2661
  /*pollFunc:*/ nativeModule()
@@ -1917,8 +2666,8 @@ export class CourseScheduleApplication
1917
2666
  .ubrn_ffi_rusaint_ffi_rust_future_complete_rust_buffer,
1918
2667
  /*freeFunc:*/ nativeModule()
1919
2668
  .ubrn_ffi_rusaint_ffi_rust_future_free_rust_buffer,
1920
- /*liftFunc:*/ FfiConverterArrayString.lift.bind(
1921
- FfiConverterArrayString
2669
+ /*liftFunc:*/ FfiConverterArrayTypeLecture.lift.bind(
2670
+ FfiConverterArrayTypeLecture
1922
2671
  ),
1923
2672
  /*liftString:*/ FfiConverterString.lift,
1924
2673
  /*asyncOpts:*/ asyncOpts_,
@@ -3830,6 +4579,10 @@ const FfiConverterTypePersonalCourseScheduleApplicationBuilder =
3830
4579
  * [장학금수혜내역조회](https://ecc.ssu.ac.kr/sap/bc/webdynpro/SAP/ZCMW7530n)
3831
4580
  */
3832
4581
  export interface ScholarshipsApplicationInterface {
4582
+ /**
4583
+ * 페이지를 새로고침합니다.
4584
+ */
4585
+ reload(asyncOpts_?: { signal: AbortSignal }) /*throws*/ : Promise<void>;
3833
4586
  /**
3834
4587
  * 장학금 수혜 내역을 가져옵니다.
3835
4588
  */
@@ -3856,6 +4609,42 @@ export class ScholarshipsApplication
3856
4609
  uniffiTypeScholarshipsApplicationObjectFactory.bless(pointer);
3857
4610
  }
3858
4611
 
4612
+ /**
4613
+ * 페이지를 새로고침합니다.
4614
+ */
4615
+ public async reload(asyncOpts_?: {
4616
+ signal: AbortSignal;
4617
+ }): Promise<void> /*throws*/ {
4618
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
4619
+ try {
4620
+ return await uniffiRustCallAsync(
4621
+ /*rustCaller:*/ uniffiCaller,
4622
+ /*rustFutureFunc:*/ () => {
4623
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_scholarshipsapplication_reload(
4624
+ uniffiTypeScholarshipsApplicationObjectFactory.clonePointer(this)
4625
+ );
4626
+ },
4627
+ /*pollFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_poll_void,
4628
+ /*cancelFunc:*/ nativeModule()
4629
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_void,
4630
+ /*completeFunc:*/ nativeModule()
4631
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_void,
4632
+ /*freeFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_free_void,
4633
+ /*liftFunc:*/ (_v) => {},
4634
+ /*liftString:*/ FfiConverterString.lift,
4635
+ /*asyncOpts:*/ asyncOpts_,
4636
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
4637
+ FfiConverterTypeRusaintError
4638
+ )
4639
+ );
4640
+ } catch (__error: any) {
4641
+ if (uniffiIsDebug && __error instanceof Error) {
4642
+ __error.stack = __stack;
4643
+ }
4644
+ throw __error;
4645
+ }
4646
+ }
4647
+
3859
4648
  /**
3860
4649
  * 장학금 수혜 내역을 가져옵니다.
3861
4650
  */
@@ -4219,6 +5008,10 @@ export interface StudentInformationApplicationInterface {
4219
5008
  religion(asyncOpts_?: {
4220
5009
  signal: AbortSignal;
4221
5010
  }) /*throws*/ : Promise<StudentReligion>;
5011
+ /**
5012
+ * 페이지를 새로고침합니다.
5013
+ */
5014
+ reload(asyncOpts_?: { signal: AbortSignal }) /*throws*/ : Promise<void>;
4222
5015
  /**
4223
5016
  * 학생의 연구비 입금 계좌를 반환합니다.
4224
5017
  */
@@ -4551,6 +5344,44 @@ export class StudentInformationApplication
4551
5344
  }
4552
5345
  }
4553
5346
 
5347
+ /**
5348
+ * 페이지를 새로고침합니다.
5349
+ */
5350
+ public async reload(asyncOpts_?: {
5351
+ signal: AbortSignal;
5352
+ }): Promise<void> /*throws*/ {
5353
+ const __stack = uniffiIsDebug ? new Error().stack : undefined;
5354
+ try {
5355
+ return await uniffiRustCallAsync(
5356
+ /*rustCaller:*/ uniffiCaller,
5357
+ /*rustFutureFunc:*/ () => {
5358
+ return nativeModule().ubrn_uniffi_rusaint_ffi_fn_method_studentinformationapplication_reload(
5359
+ uniffiTypeStudentInformationApplicationObjectFactory.clonePointer(
5360
+ this
5361
+ )
5362
+ );
5363
+ },
5364
+ /*pollFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_poll_void,
5365
+ /*cancelFunc:*/ nativeModule()
5366
+ .ubrn_ffi_rusaint_ffi_rust_future_cancel_void,
5367
+ /*completeFunc:*/ nativeModule()
5368
+ .ubrn_ffi_rusaint_ffi_rust_future_complete_void,
5369
+ /*freeFunc:*/ nativeModule().ubrn_ffi_rusaint_ffi_rust_future_free_void,
5370
+ /*liftFunc:*/ (_v) => {},
5371
+ /*liftString:*/ FfiConverterString.lift,
5372
+ /*asyncOpts:*/ asyncOpts_,
5373
+ /*errorHandler:*/ FfiConverterTypeRusaintError.lift.bind(
5374
+ FfiConverterTypeRusaintError
5375
+ )
5376
+ );
5377
+ } catch (__error: any) {
5378
+ if (uniffiIsDebug && __error instanceof Error) {
5379
+ __error.stack = __stack;
5380
+ }
5381
+ throw __error;
5382
+ }
5383
+ }
5384
+
4554
5385
  /**
4555
5386
  * 학생의 연구비 입금 계좌를 반환합니다.
4556
5387
  */
@@ -5418,6 +6249,11 @@ const FfiConverterArrayTypeClassGrade = new FfiConverterArray(
5418
6249
  FfiConverterTypeClassGrade
5419
6250
  );
5420
6251
 
6252
+ // FfiConverter for Array<DetailedLecture>
6253
+ const FfiConverterArrayTypeDetailedLecture = new FfiConverterArray(
6254
+ FfiConverterTypeDetailedLecture
6255
+ );
6256
+
5421
6257
  // FfiConverter for Array<Lecture>
5422
6258
  const FfiConverterArrayTypeLecture = new FfiConverterArray(
5423
6259
  FfiConverterTypeLecture
@@ -5428,6 +6264,11 @@ const FfiConverterArrayTypeLectureAssessmentResult = new FfiConverterArray(
5428
6264
  FfiConverterTypeLectureAssessmentResult
5429
6265
  );
5430
6266
 
6267
+ // FfiConverter for Array<RegisteredLecture>
6268
+ const FfiConverterArrayTypeRegisteredLecture = new FfiConverterArray(
6269
+ FfiConverterTypeRegisteredLecture
6270
+ );
6271
+
5431
6272
  // FfiConverter for Array<Scholarship>
5432
6273
  const FfiConverterArrayTypeScholarship = new FfiConverterArray(
5433
6274
  FfiConverterTypeScholarship
@@ -5535,6 +6376,14 @@ function uniffiEnsureInitialized() {
5535
6376
  'uniffi_rusaint_ffi_checksum_method_coursegradesapplication_get_selected_semester'
5536
6377
  );
5537
6378
  }
6379
+ if (
6380
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursegradesapplication_grades_by_classification() !==
6381
+ 15373
6382
+ ) {
6383
+ throw new UniffiInternalError.ApiChecksumMismatch(
6384
+ 'uniffi_rusaint_ffi_checksum_method_coursegradesapplication_grades_by_classification'
6385
+ );
6386
+ }
5538
6387
  if (
5539
6388
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursegradesapplication_lookup() !==
5540
6389
  14564
@@ -5575,6 +6424,38 @@ function uniffiEnsureInitialized() {
5575
6424
  'uniffi_rusaint_ffi_checksum_method_coursegradesapplicationbuilder_build'
5576
6425
  );
5577
6426
  }
6427
+ if (
6428
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_get_selected_semester() !==
6429
+ 28001
6430
+ ) {
6431
+ throw new UniffiInternalError.ApiChecksumMismatch(
6432
+ 'uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_get_selected_semester'
6433
+ );
6434
+ }
6435
+ if (
6436
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_lectures() !==
6437
+ 297
6438
+ ) {
6439
+ throw new UniffiInternalError.ApiChecksumMismatch(
6440
+ 'uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_lectures'
6441
+ );
6442
+ }
6443
+ if (
6444
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_reload() !==
6445
+ 6563
6446
+ ) {
6447
+ throw new UniffiInternalError.ApiChecksumMismatch(
6448
+ 'uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplication_reload'
6449
+ );
6450
+ }
6451
+ if (
6452
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplicationbuilder_build() !==
6453
+ 33070
6454
+ ) {
6455
+ throw new UniffiInternalError.ApiChecksumMismatch(
6456
+ 'uniffi_rusaint_ffi_checksum_method_courseregistrationstatusapplicationbuilder_build'
6457
+ );
6458
+ }
5578
6459
  if (
5579
6460
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_chapel_categories() !==
5580
6461
  21428
@@ -5607,6 +6488,14 @@ function uniffiEnsureInitialized() {
5607
6488
  'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_departments'
5608
6489
  );
5609
6490
  }
6491
+ if (
6492
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_find_detailed_lectures() !==
6493
+ 46573
6494
+ ) {
6495
+ throw new UniffiInternalError.ApiChecksumMismatch(
6496
+ 'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_find_detailed_lectures'
6497
+ );
6498
+ }
5610
6499
  if (
5611
6500
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_find_lectures() !==
5612
6501
  7590
@@ -5639,6 +6528,30 @@ function uniffiEnsureInitialized() {
5639
6528
  'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_graduated_departments'
5640
6529
  );
5641
6530
  }
6531
+ if (
6532
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_lecture_detail() !==
6533
+ 28315
6534
+ ) {
6535
+ throw new UniffiInternalError.ApiChecksumMismatch(
6536
+ 'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_lecture_detail'
6537
+ );
6538
+ }
6539
+ if (
6540
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_lecture_syllabus() !==
6541
+ 27680
6542
+ ) {
6543
+ throw new UniffiInternalError.ApiChecksumMismatch(
6544
+ 'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_lecture_syllabus'
6545
+ );
6546
+ }
6547
+ if (
6548
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_loaded_lectures() !==
6549
+ 18448
6550
+ ) {
6551
+ throw new UniffiInternalError.ApiChecksumMismatch(
6552
+ 'uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_loaded_lectures'
6553
+ );
6554
+ }
5642
6555
  if (
5643
6556
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_coursescheduleapplication_majors() !==
5644
6557
  356
@@ -5783,6 +6696,14 @@ function uniffiEnsureInitialized() {
5783
6696
  'uniffi_rusaint_ffi_checksum_method_personalcoursescheduleapplicationbuilder_build'
5784
6697
  );
5785
6698
  }
6699
+ if (
6700
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_scholarshipsapplication_reload() !==
6701
+ 42434
6702
+ ) {
6703
+ throw new UniffiInternalError.ApiChecksumMismatch(
6704
+ 'uniffi_rusaint_ffi_checksum_method_scholarshipsapplication_reload'
6705
+ );
6706
+ }
5786
6707
  if (
5787
6708
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_scholarshipsapplication_scholarships() !==
5788
6709
  28486
@@ -5855,6 +6776,14 @@ function uniffiEnsureInitialized() {
5855
6776
  'uniffi_rusaint_ffi_checksum_method_studentinformationapplication_religion'
5856
6777
  );
5857
6778
  }
6779
+ if (
6780
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_studentinformationapplication_reload() !==
6781
+ 12310
6782
+ ) {
6783
+ throw new UniffiInternalError.ApiChecksumMismatch(
6784
+ 'uniffi_rusaint_ffi_checksum_method_studentinformationapplication_reload'
6785
+ );
6786
+ }
5858
6787
  if (
5859
6788
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_method_studentinformationapplication_research_bank_account() !==
5860
6789
  7706
@@ -5943,6 +6872,14 @@ function uniffiEnsureInitialized() {
5943
6872
  'uniffi_rusaint_ffi_checksum_constructor_coursegradesapplicationbuilder_new'
5944
6873
  );
5945
6874
  }
6875
+ if (
6876
+ nativeModule().ubrn_uniffi_rusaint_ffi_checksum_constructor_courseregistrationstatusapplicationbuilder_new() !==
6877
+ 53154
6878
+ ) {
6879
+ throw new UniffiInternalError.ApiChecksumMismatch(
6880
+ 'uniffi_rusaint_ffi_checksum_constructor_courseregistrationstatusapplicationbuilder_new'
6881
+ );
6882
+ }
5946
6883
  if (
5947
6884
  nativeModule().ubrn_uniffi_rusaint_ffi_checksum_constructor_coursescheduleapplicationbuilder_new() !==
5948
6885
  52419
@@ -6008,6 +6945,8 @@ export default Object.freeze({
6008
6945
  FfiConverterTypeChapelApplicationBuilder,
6009
6946
  FfiConverterTypeCourseGradesApplication,
6010
6947
  FfiConverterTypeCourseGradesApplicationBuilder,
6948
+ FfiConverterTypeCourseRegistrationStatusApplication,
6949
+ FfiConverterTypeCourseRegistrationStatusApplicationBuilder,
6011
6950
  FfiConverterTypeCourseScheduleApplication,
6012
6951
  FfiConverterTypeCourseScheduleApplicationBuilder,
6013
6952
  FfiConverterTypeGraduationRequirementsApplication,