ort-sys 2.0.0-rc.13

Unsafe Rust bindings for ONNX Runtime 1.28 - Optimize and Accelerate Machine Learning Inferencing
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(clippy::type_complexity)]
#![allow(clippy::missing_safety_doc)]
#![cfg_attr(all(not(test), not(feature = "std")), no_std)]

extern crate alloc;
extern crate core;

#[doc(hidden)]
#[cfg(feature = "std")]
pub mod internal;
mod link_error;
pub mod stub;
mod version;

pub use core::ffi::{c_char, c_int, c_ulong, c_ulonglong, c_ushort, c_void};

pub use self::version::ORT_API_VERSION;

#[doc(hidden)]
pub const USING_PYKE_BINARIES: bool = cfg!(pyke);

#[cfg(target_os = "windows")]
pub type os_char = c_ushort;
#[cfg(not(target_os = "windows"))]
pub type os_char = c_char;

#[deprecated = "use `os_char` instead"]
pub type ortchar = os_char;

#[repr(i32)]
#[doc = " Copied from TensorProto::DataType\n Currently, Ort doesn't support complex64, complex128"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum ONNXTensorElementDataType {
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UNDEFINED = 0,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT = 1,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT8 = 2,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_INT8 = 3,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT16 = 4,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_INT16 = 5,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_INT32 = 6,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_INT64 = 7,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_STRING = 8,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_BOOL = 9,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT16 = 10,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_DOUBLE = 11,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT32 = 12,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT64 = 13,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX64 = 14,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_COMPLEX128 = 15,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_BFLOAT16 = 16,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FN = 17,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E4M3FNUZ = 18,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2 = 19,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_FLOAT8E5M2FNUZ = 20,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_UINT4 = 21,
	ONNX_TENSOR_ELEMENT_DATA_TYPE_INT4 = 22
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum ONNXType {
	ONNX_TYPE_UNKNOWN = 0,
	ONNX_TYPE_TENSOR = 1,
	ONNX_TYPE_SEQUENCE = 2,
	ONNX_TYPE_MAP = 3,
	ONNX_TYPE_OPAQUE = 4,
	ONNX_TYPE_SPARSETENSOR = 5,
	ONNX_TYPE_OPTIONAL = 6
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtSparseFormat {
	ORT_SPARSE_UNDEFINED = 0,
	ORT_SPARSE_COO = 1,
	ORT_SPARSE_CSRC = 2,
	ORT_SPARSE_BLOCK_SPARSE = 4
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtSparseIndicesFormat {
	ORT_SPARSE_COO_INDICES = 0,
	ORT_SPARSE_CSR_INNER_INDICES = 1,
	ORT_SPARSE_CSR_OUTER_INDICES = 2,
	ORT_SPARSE_BLOCK_SPARSE_INDICES = 3
}
#[repr(i32)]
#[doc = " \\brief Logging severity levels\n\n In typical API usage, specifying a logging severity level specifies the minimum severity of log messages to show."]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtLoggingLevel {
	#[doc = "< Verbose informational messages (least severe)."]
	ORT_LOGGING_LEVEL_VERBOSE = 0,
	#[doc = "< Informational messages."]
	ORT_LOGGING_LEVEL_INFO = 1,
	#[doc = "< Warning messages."]
	ORT_LOGGING_LEVEL_WARNING = 2,
	#[doc = "< Error messages."]
	ORT_LOGGING_LEVEL_ERROR = 3,
	#[doc = "< Fatal error messages (most severe)."]
	ORT_LOGGING_LEVEL_FATAL = 4
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtErrorCode {
	ORT_OK = 0,
	ORT_FAIL = 1,
	ORT_INVALID_ARGUMENT = 2,
	ORT_NO_SUCHFILE = 3,
	ORT_NO_MODEL = 4,
	ORT_ENGINE_ERROR = 5,
	ORT_RUNTIME_EXCEPTION = 6,
	ORT_INVALID_PROTOBUF = 7,
	ORT_MODEL_LOADED = 8,
	ORT_NOT_IMPLEMENTED = 9,
	ORT_INVALID_GRAPH = 10,
	ORT_EP_FAIL = 11
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtOpAttrType {
	ORT_OP_ATTR_UNDEFINED = 0,
	ORT_OP_ATTR_INT = 1,
	ORT_OP_ATTR_INTS = 2,
	ORT_OP_ATTR_FLOAT = 3,
	ORT_OP_ATTR_FLOATS = 4,
	ORT_OP_ATTR_STRING = 5,
	ORT_OP_ATTR_STRINGS = 6
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtEnv {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtStatus {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtMemoryInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtIoBinding {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtSession {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtValue {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtRunOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTypeInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTensorTypeAndShapeInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtMapTypeInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtSequenceTypeInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtOptionalTypeInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtSessionOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCustomOpDomain {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtModelMetadata {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtThreadPoolParams {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtThreadingOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtArenaCfg {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtPrepackedWeightsContainer {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTensorRTProviderOptionsV2 {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtNvTensorRtRtxProviderOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCUDAProviderOptionsV2 {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCANNProviderOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtDnnlProviderOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtOp {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtOpAttr {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtLogger {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtShapeInferContext {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtLoraAdapter {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtValueInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtNode {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtGraph {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtModel {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtModelCompilationOptions {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtHardwareDevice {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtEpDevice {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtKeyValuePairs {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtSyncStream {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtExternalInitializerInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtExternalResourceImporter {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtExternalMemoryHandle {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtExternalSemaphoreHandle {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtDeviceEpIncompatibilityDetails {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtEpAssignedSubgraph {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtEpAssignedNode {
	_unused: [u8; 0]
}
#[repr(transparent)]
#[derive(Debug, Copy, Clone)]
#[must_use = "statuses must be freed with `OrtApi::ReleaseStatus` if they are not null"]
pub struct OrtStatusPtr(pub *mut OrtStatus);
impl Default for OrtStatusPtr {
	fn default() -> Self {
		OrtStatusPtr(core::ptr::null_mut())
	}
}
#[doc = " \\brief Memory allocation interface\n\n Structure of function pointers that defines a memory allocator. This can be created and filled in by the user for custom allocators.\n\n When an allocator is passed to any function, be sure that the allocator object is not destroyed until the last allocated object using it is freed."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtAllocator {
	#[doc = "< Must be initialized to ORT_API_VERSION"]
	pub version: u32,
	#[doc = "< Returns a pointer to an allocated block of `size` bytes"]
	pub Alloc: Option<unsafe extern "system" fn(this_: *mut OrtAllocator, size: usize) -> *mut core::ffi::c_void>,
	#[doc = "< Free a block of memory previously allocated with OrtAllocator::Alloc"]
	pub Free: Option<unsafe extern "system" fn(this_: *mut OrtAllocator, p: *mut core::ffi::c_void)>,
	#[doc = "< Return a pointer to an ::OrtMemoryInfo that describes this allocator"]
	pub Info: Option<unsafe extern "system" fn(this_: *const OrtAllocator) -> *const OrtMemoryInfo>,
	pub Reserve: Option<unsafe extern "system" fn(this_: *const OrtAllocator, size: usize) -> *mut core::ffi::c_void>
}
pub type OrtLoggingFunction = unsafe extern "system" fn(
	param: *mut core::ffi::c_void,
	severity: OrtLoggingLevel,
	category: *const core::ffi::c_char,
	logid: *const core::ffi::c_char,
	code_location: *const core::ffi::c_char,
	message: *const core::ffi::c_char
);
#[repr(i32)]
#[doc = " \\brief Graph optimization level\n\n Refer to https://www.onnxruntime.ai/docs/performance/graph-optimizations.html#graph-optimization-levels\n for an in-depth understanding of the Graph Optimization Levels."]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum GraphOptimizationLevel {
	ORT_DISABLE_ALL = 0,
	ORT_ENABLE_BASIC = 1,
	ORT_ENABLE_EXTENDED = 2,
	ORT_ENABLE_LAYOUT = 3,
	ORT_ENABLE_ALL = 99
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum ExecutionMode {
	ORT_SEQUENTIAL = 0,
	ORT_PARALLEL = 1
}
#[repr(i32)]
#[doc = " \\brief Language projection identifiers\n /see OrtApi::SetLanguageProjection"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtLanguageProjection {
	ORT_PROJECTION_C = 0,
	ORT_PROJECTION_CPLUSPLUS = 1,
	ORT_PROJECTION_CSHARP = 2,
	ORT_PROJECTION_PYTHON = 3,
	ORT_PROJECTION_JAVA = 4,
	ORT_PROJECTION_WINML = 5,
	ORT_PROJECTION_NODEJS = 6
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtKernelInfo {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtKernelContext {
	_unused: [u8; 0]
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtAllocatorType {
	OrtInvalidAllocator = -1,
	OrtDeviceAllocator = 0,
	OrtArenaAllocator = 1
}
impl OrtMemType {
	pub const OrtMemTypeCPU: OrtMemType = OrtMemType::OrtMemTypeCPUOutput;
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtDeviceMemoryType {
	OrtDeviceMemoryType_DEFAULT = 0,
	OrtDeviceMemoryType_HOST_ACCESSIBLE = 5
}
#[repr(i32)]
#[doc = " \\brief Memory types for allocated memory, execution provider specific types should be extended in each provider."]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtMemType {
	#[doc = "< Any CPU memory used by non-CPU execution provider"]
	OrtMemTypeCPUInput = -2,
	#[doc = "< CPU accessible memory outputted by non-CPU execution provider, i.e. CUDA_PINNED"]
	OrtMemTypeCPUOutput = -1,
	#[doc = "< The default allocator for execution provider"]
	OrtMemTypeDefault = 0
}
#[repr(i32)]
#[doc = " \\brief This mimics OrtDevice type constants so they can be returned in the API"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtMemoryInfoDeviceType {
	OrtMemoryInfoDeviceType_CPU = 0,
	OrtMemoryInfoDeviceType_GPU = 1,
	OrtMemoryInfoDeviceType_FPGA = 2
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtHardwareDeviceType {
	OrtHardwareDeviceType_CPU = 0,
	OrtHardwareDeviceType_GPU = 1,
	OrtHardwareDeviceType_NPU = 2
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtExecutionProviderDevicePolicy {
	OrtExecutionProviderDevicePolicy_DEFAULT = 0,
	OrtExecutionProviderDevicePolicy_PREFER_CPU = 1,
	OrtExecutionProviderDevicePolicy_PREFER_NPU = 2,
	OrtExecutionProviderDevicePolicy_PREFER_GPU = 3,
	OrtExecutionProviderDevicePolicy_MAX_PERFORMANCE = 4,
	OrtExecutionProviderDevicePolicy_MAX_EFFICIENCY = 5,
	OrtExecutionProviderDevicePolicy_MIN_OVERALL_POWER = 6
}
pub type EpSelectionDelegate = Option<
	unsafe extern "system" fn(
		ep_devices: *const *const OrtEpDevice,
		num_devices: usize,
		model_metadata: *const OrtKeyValuePairs,
		runtime_metadata: *const OrtKeyValuePairs,
		selected: *mut *const OrtEpDevice,
		max_selected: usize,
		num_selected: *mut usize,
		state: *mut c_void
	) -> OrtStatusPtr
>;
pub type OrtWriteBufferFunc = Option<unsafe extern "system" fn(state: *mut c_void, buffer: *const c_void, buffer_num_bytes: usize) -> OrtStatusPtr>;
pub type OrtGetInitializerLocationFunc = Option<
	unsafe extern "system" fn(
		state: *mut c_void,
		initializer_name: *const c_char,
		initializer_value: *const OrtValue,
		external_info: *const OrtExternalInitializerInfo,
		new_external_info: *mut *mut OrtExternalInitializerInfo
	) -> OrtStatusPtr
>;
#[repr(i32)]
#[doc = " \\brief Algorithm to use for cuDNN Convolution Op"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtCudnnConvAlgoSearch {
	OrtCudnnConvAlgoSearchExhaustive = 0,
	OrtCudnnConvAlgoSearchHeuristic = 1,
	OrtCudnnConvAlgoSearchDefault = 2
}
#[doc = " \\brief CUDA Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_CUDA"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCUDAProviderOptions {
	#[doc = " \\brief CUDA device Id\n   Defaults to 0."]
	pub device_id: core::ffi::c_int,
	#[doc = " \\brief CUDA Convolution algorithm search configuration.\n   See enum OrtCudnnConvAlgoSearch for more details.\n   Defaults to OrtCudnnConvAlgoSearchExhaustive."]
	pub cudnn_conv_algo_search: OrtCudnnConvAlgoSearch,
	#[doc = " \\brief CUDA memory limit (To use all possible memory pass in maximum usize)\n   Defaults to SIZE_MAX.\n   \\note If a ::OrtArenaCfg has been applied, it will override this field"]
	pub gpu_mem_limit: usize,
	#[doc = " \\brief Strategy used to grow the memory arena\n   0 = kNextPowerOfTwo<br>\n   1 = kSameAsRequested<br>\n   Defaults to 0.\n   \\note If a ::OrtArenaCfg has been applied, it will override this field"]
	pub arena_extend_strategy: core::ffi::c_int,
	#[doc = " \\brief Flag indicating if copying needs to take place on the same stream as the compute stream in the CUDA EP\n   0 = Use separate streams for copying and compute.\n   1 = Use the same stream for copying and compute.\n   Defaults to 1.\n   WARNING: Setting this to 0 may result in data races for some models.\n   Please see issue #4829 for more details."]
	pub do_copy_in_default_stream: core::ffi::c_int,
	#[doc = " \\brief Flag indicating if there is a user provided compute stream\n   Defaults to 0."]
	pub has_user_compute_stream: core::ffi::c_int,
	#[doc = " \\brief User provided compute stream.\n   If provided, please set `has_user_compute_stream` to 1."]
	pub user_compute_stream: *mut core::ffi::c_void,
	#[doc = " \\brief CUDA memory arena configuration parameters"]
	pub default_memory_arena_cfg: *mut OrtArenaCfg,
	#[doc = " \\brief Enable TunableOp for using.\n   Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by default.\n   This option can be overriden by environment variable ORT_CUDA_TUNABLE_OP_ENABLE."]
	pub tunable_op_enable: core::ffi::c_int,
	#[doc = " \\brief Enable TunableOp for tuning.\n   Set it to 1/0 to enable/disable TunableOp tuning. Otherwise, it is disabled by default.\n   This option can be overriden by environment variable ORT_CUDA_TUNABLE_OP_TUNING_ENABLE."]
	pub tunable_op_tuning_enable: core::ffi::c_int,
	#[doc = " \\brief Max tuning duration time limit for each instance of TunableOp.\n   Defaults to 0 to disable the limit."]
	pub tunable_op_max_tuning_duration_ms: core::ffi::c_int
}
#[doc = " \\brief ROCM Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_ROCM"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtROCMProviderOptions {
	#[doc = " \\brief ROCM device Id\n   Defaults to 0."]
	pub device_id: core::ffi::c_int,
	#[doc = " \\brief ROCM MIOpen Convolution algorithm exaustive search option.\n   Defaults to 0 (false)."]
	pub miopen_conv_exhaustive_search: core::ffi::c_int,
	#[doc = " \\brief ROCM memory limit (To use all possible memory pass in maximum usize)\n   Defaults to SIZE_MAX.\n   \\note If a ::OrtArenaCfg has been applied, it will override this field"]
	pub gpu_mem_limit: usize,
	#[doc = " \\brief Strategy used to grow the memory arena\n   0 = kNextPowerOfTwo<br>\n   1 = kSameAsRequested<br>\n   Defaults to 0.\n   \\note If a ::OrtArenaCfg has been applied, it will override this field"]
	pub arena_extend_strategy: core::ffi::c_int,
	#[doc = " \\brief Flag indicating if copying needs to take place on the same stream as the compute stream in the ROCM EP\n   0 = Use separate streams for copying and compute.\n   1 = Use the same stream for copying and compute.\n   Defaults to 1.\n   WARNING: Setting this to 0 may result in data races for some models.\n   Please see issue #4829 for more details."]
	pub do_copy_in_default_stream: core::ffi::c_int,
	#[doc = " \\brief Flag indicating if there is a user provided compute stream\n   Defaults to 0."]
	pub has_user_compute_stream: core::ffi::c_int,
	#[doc = " \\brief User provided compute stream.\n   If provided, please set `has_user_compute_stream` to 1."]
	pub user_compute_stream: *mut core::ffi::c_void,
	#[doc = " \\brief ROCM memory arena configuration parameters"]
	pub default_memory_arena_cfg: *mut OrtArenaCfg,
	pub enable_hip_graph: core::ffi::c_int,
	#[doc = " \\brief Enable TunableOp for using.\n   Set it to 1/0 to enable/disable TunableOp. Otherwise, it is disabled by default.\n   This option can be overriden by environment variable ORT_ROCM_TUNABLE_OP_ENABLE."]
	pub tunable_op_enable: core::ffi::c_int,
	#[doc = " \\brief Enable TunableOp for tuning.\n   Set it to 1/0 to enable/disable TunableOp tuning. Otherwise, it is disabled by default.\n   This option can be overriden by environment variable ORT_ROCM_TUNABLE_OP_TUNING_ENABLE."]
	pub tunable_op_tuning_enable: core::ffi::c_int,
	#[doc = " \\brief Max tuning duration time limit for each instance of TunableOp.\n   Defaults to 0 to disable the limit."]
	pub tunable_op_max_tuning_duration_ms: core::ffi::c_int
}
#[doc = " \\brief TensorRT Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_TensorRT"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTensorRTProviderOptions {
	#[doc = "< CUDA device id (0 = default device)"]
	pub device_id: core::ffi::c_int,
	pub has_user_compute_stream: core::ffi::c_int,
	pub user_compute_stream: *mut core::ffi::c_void,
	pub trt_max_partition_iterations: core::ffi::c_int,
	pub trt_min_subgraph_size: core::ffi::c_int,
	pub trt_max_workspace_size: usize,
	pub trt_fp16_enable: core::ffi::c_int,
	pub trt_int8_enable: core::ffi::c_int,
	pub trt_int8_calibration_table_name: *const core::ffi::c_char,
	pub trt_int8_use_native_calibration_table: core::ffi::c_int,
	pub trt_dla_enable: core::ffi::c_int,
	pub trt_dla_core: core::ffi::c_int,
	pub trt_dump_subgraphs: core::ffi::c_int,
	pub trt_engine_cache_enable: core::ffi::c_int,
	pub trt_engine_cache_path: *const core::ffi::c_char,
	pub trt_engine_decryption_enable: core::ffi::c_int,
	pub trt_engine_decryption_lib_path: *const core::ffi::c_char,
	pub trt_force_sequential_engine_build: core::ffi::c_int
}
#[doc = " \\brief MIGraphX Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_MIGraphX"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtMIGraphXProviderOptions {
	pub device_id: core::ffi::c_int,
	pub migraphx_fp16_enable: core::ffi::c_int,
	pub migraphx_fp8_enable: core::ffi::c_int,
	pub migraphx_int8_enable: core::ffi::c_int,
	pub migraphx_use_native_calibration_table: core::ffi::c_int,
	pub migraphx_int8_calibration_table_name: *const core::ffi::c_char,
	pub migraphx_save_compiled_model: core::ffi::c_int,
	pub migraphx_save_model_path: *const core::ffi::c_char,
	pub migraphx_load_compiled_model: core::ffi::c_int,
	pub migraphx_load_model_path: *const core::ffi::c_char,
	pub migraphx_exhaustive_tune: bool,
	pub migraphx_mem_limit: usize,
	pub migraphx_arena_extend_strategy: core::ffi::c_int
}
#[doc = " \\brief OpenVINO Provider Options\n\n \\see OrtApi::SessionOptionsAppendExecutionProvider_OpenVINO"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtOpenVINOProviderOptions {
	#[doc = " \\brief Device type string\n\n Valid settings are one of: \"CPU_FP32\", \"CPU_FP16\", \"GPU_FP32\", \"GPU_FP16\""]
	pub device_type: *const core::ffi::c_char,
	#[doc = "< 0 = disabled, nonzero = enabled"]
	pub enable_npu_fast_compile: core::ffi::c_uchar,
	pub device_id: *const core::ffi::c_char,
	#[doc = "< 0 = Use default number of threads"]
	pub num_of_threads: usize,
	pub cache_dir: *const core::ffi::c_char,
	pub context: *mut core::ffi::c_void,
	#[doc = "< 0 = disabled, nonzero = enabled"]
	pub enable_opencl_throttling: core::ffi::c_uchar,
	#[doc = "< 0 = disabled, nonzero = enabled"]
	pub enable_dynamic_shapes: core::ffi::c_uchar
}
#[repr(i32)]
#[derive(Default, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtDmlPerformancePreference {
	#[default]
	Default = 0,
	HighPerformance = 1,
	MinimumPower = 2
}
#[repr(u32)]
#[derive(Default, Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtDmlDeviceFilter {
	Any = 0xFFFF_FFFF,
	#[default]
	Gpu = 1 << 0,
	Npu = 1 << 1
}
#[repr(C)]
#[derive(Debug, Clone)]
pub struct OrtDmlDeviceOptions {
	pub Preference: OrtDmlPerformancePreference,
	pub Filter: OrtDmlDeviceFilter
}
#[repr(C)]
#[derive(Debug, Clone)]
pub struct OrtDmlApi {
	pub SessionOptionsAppendExecutionProvider_DML: unsafe extern "system" fn(options: *mut OrtSessionOptions, device_id: c_int) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_DML1:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, dml_device: *mut c_void, cmd_queue: *mut c_void) -> OrtStatusPtr,
	pub CreateGPUAllocationFromD3DResource: unsafe extern "system" fn(resource: *mut c_void, dml_resource: *mut *mut c_void) -> OrtStatusPtr,
	pub FreeGPUAllocation: unsafe extern "system" fn(dml_resource: *mut c_void) -> OrtStatusPtr,
	pub GetD3D12ResourceFromAllocation:
		unsafe extern "system" fn(provider: *mut OrtAllocator, dml_resource: *mut c_void, d3d_resource: *mut *mut c_void) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_DML2:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, device_opts: *const OrtDmlDeviceOptions) -> OrtStatusPtr,
	pub GetDMLDevice: unsafe extern "system" fn(options: *mut OrtSessionOptions, dmlDevice: *mut *mut c_void) -> OrtStatusPtr,
	pub GetDMLCommandQueue: unsafe extern "system" fn(options: *mut OrtSessionOptions, dmlCommandQueue: *mut *mut c_void) -> OrtStatusPtr
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTrainingSession {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCheckpointState {
	_unused: [u8; 0]
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtPropertyType {
	OrtIntProperty = 0,
	OrtFloatProperty = 1,
	OrtStringProperty = 2
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtTrainingApi {
	pub LoadCheckpoint: unsafe extern "system" fn(checkpoint_path: *const os_char, checkpoint_state: *mut *mut OrtCheckpointState) -> OrtStatusPtr,
	pub SaveCheckpoint:
		unsafe extern "system" fn(checkpoint_state: *mut OrtCheckpointState, checkpoint_path: *const os_char, include_optimizer_state: bool) -> OrtStatusPtr,
	pub CreateTrainingSession: unsafe extern "system" fn(
		env: *const OrtEnv,
		options: *const OrtSessionOptions,
		checkpoint_state: *mut OrtCheckpointState,
		train_model_path: *const os_char,
		eval_model_path: *const os_char,
		optimizer_model_path: *const os_char,
		out: *mut *mut OrtTrainingSession
	) -> OrtStatusPtr,
	pub CreateTrainingSessionFromBuffer: unsafe extern "system" fn(
		env: *const OrtEnv,
		options: *const OrtSessionOptions,
		checkpoint_state: *mut OrtCheckpointState,
		train_model_data: *const (),
		train_data_length: usize,
		eval_model_data: *const (),
		eval_data_length: usize,
		optimizer_model_data: *const (),
		optimizer_data_length: usize,
		out: *mut *mut OrtTrainingSession
	) -> OrtStatusPtr,
	pub TrainingSessionGetTrainingModelOutputCount: unsafe extern "system" fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
	pub TrainingSessionGetEvalModelOutputCount: unsafe extern "system" fn(sess: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
	pub TrainingSessionGetTrainingModelOutputName:
		unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
	pub TrainingSessionGetEvalModelOutputName:
		unsafe extern "system" fn(sess: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
	pub LazyResetGrad: unsafe extern "system" fn(session: *mut OrtTrainingSession) -> OrtStatusPtr,
	pub TrainStep: unsafe extern "system" fn(
		session: *mut OrtTrainingSession,
		run_options: *const OrtRunOptions,
		inputs_len: usize,
		inputs: *const *const OrtValue,
		outputs_len: usize,
		outputs: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub EvalStep: unsafe extern "system" fn(
		session: *mut OrtTrainingSession,
		run_options: *const OrtRunOptions,
		inputs_len: usize,
		inputs: *const *const OrtValue,
		outputs_len: usize,
		outputs: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub SetLearningRate: unsafe extern "system" fn(session: *mut OrtTrainingSession, learning_rate: f32) -> OrtStatusPtr,
	pub GetLearningRate: unsafe extern "system" fn(session: *mut OrtTrainingSession, learning_rate: *mut f32) -> OrtStatusPtr,
	pub OptimizerStep: unsafe extern "system" fn(session: *mut OrtTrainingSession, run_options: *const OrtRunOptions) -> OrtStatusPtr,
	pub RegisterLinearLRScheduler:
		unsafe extern "system" fn(session: *mut OrtTrainingSession, warmup_step_count: i64, total_step_count: i64, initial_lr: f32) -> OrtStatusPtr,
	pub SchedulerStep: unsafe extern "system" fn(session: *mut OrtTrainingSession) -> OrtStatusPtr,
	pub GetParametersSize: unsafe extern "system" fn(session: *mut OrtTrainingSession, out: *mut usize, trainable_only: bool) -> OrtStatusPtr,
	pub CopyParametersToBuffer:
		unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr,
	pub CopyBufferToParameters:
		unsafe extern "system" fn(session: *mut OrtTrainingSession, parameters_buffer: *mut OrtValue, trainable_only: bool) -> OrtStatusPtr,
	pub ReleaseTrainingSession: unsafe extern "system" fn(input: *mut OrtTrainingSession),
	pub ReleaseCheckpointState: unsafe extern "system" fn(input: *mut OrtCheckpointState),
	pub ExportModelForInferencing: unsafe extern "system" fn(
		session: *mut OrtTrainingSession,
		inference_model_path: *const os_char,
		graph_outputs_len: usize,
		graph_output_names: *const *const c_char
	) -> OrtStatusPtr,
	pub SetSeed: unsafe extern "system" fn(seed: i64) -> OrtStatusPtr,
	pub TrainingSessionGetTrainingModelInputCount: unsafe extern "system" fn(session: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
	pub TrainingSessionGetEvalModelInputCount: unsafe extern "system" fn(session: *const OrtTrainingSession, out: *mut usize) -> OrtStatusPtr,
	pub TrainingSessionGetTrainingModelInputName:
		unsafe extern "system" fn(session: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
	pub TrainingSessionGetEvalModelInputName:
		unsafe extern "system" fn(session: *const OrtTrainingSession, index: usize, allocator: *mut OrtAllocator, output: *mut *const c_char) -> OrtStatusPtr,
	pub AddProperty: unsafe extern "system" fn(
		checkpoint_state: *mut OrtCheckpointState,
		property_name: *const c_char,
		property_type: OrtPropertyType,
		property_value: *const ()
	) -> OrtStatusPtr,
	pub GetProperty: unsafe extern "system" fn(
		checkpoint_state: *mut OrtCheckpointState,
		property_name: *const c_char,
		allocator: *mut OrtAllocator,
		property_type: *mut OrtPropertyType,
		property_value: *mut *const ()
	) -> OrtStatusPtr,
	pub LoadCheckpointFromBuffer:
		unsafe extern "system" fn(checkpoint_buffer: *const (), num_bytes: usize, checkpoint_state: *mut *mut OrtCheckpointState) -> OrtStatusPtr,
	pub GetParameterTypeAndShape: unsafe extern "system" fn(
		checkpoint_state: *const OrtCheckpointState,
		parameter_name: *const c_char,
		parameter_type_and_shape: *mut *mut OrtTensorTypeAndShapeInfo
	) -> OrtStatusPtr,
	pub UpdateParameter:
		unsafe extern "system" fn(checkpoint_state: *mut OrtCheckpointState, parameter_name: *const c_char, parameter: *mut OrtValue) -> OrtStatusPtr,
	pub GetParameter: unsafe extern "system" fn(
		checkpoint_state: *const OrtCheckpointState,
		parameter_name: *const c_char,
		allocator: *mut OrtAllocator,
		parameter: *mut *mut OrtValue
	) -> OrtStatusPtr
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtModelEditorApi {
	pub CreateTensorTypeInfo: unsafe extern "system" fn(tensor_info: *const OrtTensorTypeAndShapeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub CreateSparseTensorTypeInfo: unsafe extern "system" fn(tensor_info: *const OrtTensorTypeAndShapeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub CreateMapTypeInfo: unsafe extern "system" fn(
		map_key_type: ONNXTensorElementDataType,
		map_value_type: *const OrtTypeInfo,
		type_info: *mut *mut OrtTypeInfo
	) -> OrtStatusPtr,
	pub CreateSequenceTypeInfo: unsafe extern "system" fn(sequence_type: *const OrtTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub CreateOptionalTypeInfo: unsafe extern "system" fn(contained_type: *const OrtTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub CreateValueInfo: unsafe extern "system" fn(name: *const c_char, type_info: *const OrtTypeInfo, value_info: *mut *mut OrtValueInfo) -> OrtStatusPtr,
	pub CreateNode: unsafe extern "system" fn(
		operator_name: *const c_char,
		domain_name: *const c_char,
		node_name: *const c_char,
		input_names: *const *const c_char,
		input_names_len: usize,
		output_names: *const *const c_char,
		output_names_len: usize,
		attributes: *mut *mut OrtOpAttr,
		attribs_len: usize,
		node: *mut *mut OrtNode
	) -> OrtStatusPtr,
	pub CreateGraph: unsafe extern "system" fn(graph: *mut *mut OrtGraph) -> OrtStatusPtr,
	pub SetGraphInputs: unsafe extern "system" fn(graph: *mut OrtGraph, inputs: *mut *mut OrtValueInfo, inputs_len: usize) -> OrtStatusPtr,
	pub SetGraphOutputs: unsafe extern "system" fn(graph: *mut OrtGraph, outputs: *mut *mut OrtValueInfo, outputs_len: usize) -> OrtStatusPtr,
	pub AddInitializerToGraph:
		unsafe extern "system" fn(graph: *mut OrtGraph, name: *const c_char, tensor: *mut OrtValue, data_is_external: bool) -> OrtStatusPtr,
	pub AddNodeToGraph: unsafe extern "system" fn(graph: *mut OrtGraph, node: *mut OrtNode) -> OrtStatusPtr,
	pub CreateModel: unsafe extern "system" fn(
		domain_names: *const *const c_char,
		opset_versions: *const i32,
		opset_entries_len: usize,
		model: *mut *mut OrtModel
	) -> OrtStatusPtr,
	pub AddGraphToModel: unsafe extern "system" fn(model: *mut OrtModel, graph: *mut OrtGraph) -> OrtStatusPtr,
	pub CreateSessionFromModel:
		unsafe extern "system" fn(env: *const OrtEnv, model: *const OrtModel, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
	pub CreateModelEditorSession:
		unsafe extern "system" fn(env: *const OrtEnv, model_path: *const os_char, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
	pub CreateModelEditorSessionFromArray: unsafe extern "system" fn(
		env: *const OrtEnv,
		model_data: *const c_void,
		model_data_length: usize,
		options: *const OrtSessionOptions,
		out: *mut *mut OrtSession
	) -> OrtStatusPtr,
	pub SessionGetOpsetForDomain: unsafe extern "system" fn(session: *const OrtSession, domain: *const c_char, opset: *mut i32) -> OrtStatusPtr,
	pub ApplyModelToModelEditorSession: unsafe extern "system" fn(session: *mut OrtSession, model: *mut OrtModel) -> OrtStatusPtr,
	pub FinalizeModelEditorSession: unsafe extern "system" fn(
		session: *mut OrtSession,
		options: *const OrtSessionOptions,
		prepacked_weights_container: *const OrtPrepackedWeightsContainer
	) -> OrtStatusPtr
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCompileApi {
	pub ReleaseModelCompilationOptions: unsafe extern "system" fn(input: *mut OrtModelCompilationOptions),
	pub CreateModelCompilationOptionsFromSessionOptions:
		unsafe extern "system" fn(env: *const OrtEnv, session_options: *const OrtSessionOptions, out: *mut *mut OrtModelCompilationOptions) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetInputModelPath:
		unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, input_model_path: *const os_char) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetInputModelFromBuffer: unsafe extern "system" fn(
		model_compile_options: *mut OrtModelCompilationOptions,
		input_model_data: *const c_void,
		input_model_data_size: usize
	) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetOutputModelPath:
		unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, output_model_path: *const os_char) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetOutputModelExternalInitializersFile: unsafe extern "system" fn(
		model_compile_options: *mut OrtModelCompilationOptions,
		external_initializers_file_path: *const os_char,
		external_initializers_size_threshold: usize
	) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetOutputModelBuffer: unsafe extern "system" fn(
		model_compile_options: *mut OrtModelCompilationOptions,
		allocator: *mut OrtAllocator,
		output_model_buffer_ptr: *mut *mut c_void,
		output_model_buffer_size_ptr: *mut usize
	) -> OrtStatusPtr,
	pub ModelCompilationOptions_SetEpContextEmbedMode:
		unsafe extern "system" fn(model_compile_options: *mut OrtModelCompilationOptions, embed_ep_context_in_model: bool) -> OrtStatusPtr,
	pub CompileModel: unsafe extern "system" fn(env: *const OrtEnv, model_options: *const OrtModelCompilationOptions) -> OrtStatusPtr
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtInteropApi {
	_unused: [u8; 0]
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtEpApi {
	_unused: [u8; 0]
}
#[doc = " \\brief The helper interface to get the right version of OrtApi\n\n Get a pointer to this structure through ::OrtGetApiBase"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtApiBase {
	#[doc = " \\brief Get a pointer to the requested version of the ::OrtApi\n\n \\param[in] version Must be ::ORT_API_VERSION\n \\return The ::OrtApi for the version requested, nullptr will be returned if this version is unsupported, for example when using a runtime\n   older than the version created with this header file.\n\n One can call GetVersionString() to get the version of the Onnxruntime library for logging\n and error reporting purposes."]
	pub GetApi: unsafe extern "system" fn(version: u32) -> *const OrtApi,
	#[doc = " \\brief Returns a null terminated string of the version of the Onnxruntime library (eg: \"1.8.1\")\n\n  \\return UTF-8 encoded version string. Do not deallocate the returned buffer."]
	pub GetVersionString: unsafe extern "system" fn() -> *const core::ffi::c_char
}
unsafe extern "system" {
	#[doc = " \\brief The Onnxruntime library's entry point to access the C API\n\n Call this to get the a pointer to an ::OrtApiBase"]
	pub fn OrtGetApiBase() -> *const OrtApiBase;
}
#[doc = " \\brief Thread work loop function\n\n Onnxruntime will provide the working loop on custom thread creation\n Argument is an onnxruntime built-in type which will be provided when thread pool calls OrtCustomCreateThreadFn"]
pub type OrtThreadWorkerFn = unsafe extern "system" fn(ort_worker_fn_param: *mut core::ffi::c_void);
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCustomHandleType {
	pub __place_holder: core::ffi::c_char
}
pub type OrtCustomThreadHandle = *const OrtCustomHandleType;
#[doc = " \\brief Ort custom thread creation function\n\n The function should return a thread handle to be used in onnxruntime thread pools\n Onnxruntime will throw exception on return value of nullptr or 0, indicating that the function failed to create a thread"]
pub type OrtCustomCreateThreadFn = Option<
	unsafe extern "system" fn(
		ort_custom_thread_creation_options: *mut core::ffi::c_void,
		ort_thread_worker_fn: OrtThreadWorkerFn,
		ort_worker_fn_param: *mut core::ffi::c_void
	) -> OrtCustomThreadHandle
>;
#[doc = " \\brief Custom thread join function\n\n Onnxruntime thread pool destructor will call the function to join a custom thread.\n Argument ort_custom_thread_handle is the value returned by OrtCustomCreateThreadFn"]
pub type OrtCustomJoinThreadFn = Option<unsafe extern "system" fn(ort_custom_thread_handle: OrtCustomThreadHandle)>;
pub type OrtThreadPoolWorkEnqueueFn = Option<unsafe extern "system" fn(user_context: *mut c_void) -> *mut c_void>;
pub type OrtThreadPoolWorkStartFn = Option<unsafe extern "system" fn(user_context: *mut c_void, enqueue_data: *mut c_void)>;
pub type OrtThreadPoolWorkStopFn = Option<unsafe extern "system" fn(user_context: *mut c_void, enqueue_data: *mut c_void)>;
pub type OrtThreadPoolWorkAbandonFn = Option<unsafe extern "system" fn(user_context: *mut c_void, enqueue_data: *mut c_void)>;
#[repr(C)]
#[derive(Default, Debug, Clone)]
pub struct OrtThreadPoolCallbacksConfig {
	version: u32,
	on_enqueue: OrtThreadPoolWorkEnqueueFn,
	on_start_work: OrtThreadPoolWorkStartFn,
	on_stop_work: OrtThreadPoolWorkStopFn,
	on_abandon: OrtThreadPoolWorkAbandonFn,
	user_context: *mut c_void
}
#[doc = " \\brief Callback function for RunAsync\n\n \\param[in] user_data User specific data that passed back to the callback\n \\param[out] outputs On succeed, outputs host inference results, on error, the value will be nullptr\n \\param[out] num_outputs Number of outputs, on error, the value will be zero\n \\param[out] status On error, status will provide details"]
pub type RunAsyncCallbackFn =
	Option<unsafe extern "system" fn(user_data: *mut core::ffi::c_void, outputs: *mut *mut OrtValue, num_outputs: usize, status: OrtStatusPtr)>;
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtCompiledModelCompatibility {
	EP_NOT_APPLICABLE = 0,
	EP_SUPPORTED_OPTIMAL,
	EP_SUPPORTED_PREFER_RECOMPILATION,
	EP_UNSUPPORTED
}
#[repr(C)]
#[derive(Default, Debug, Clone)]
pub struct OrtEnvCreationOptions {
	pub version: u32,
	pub logging_severity_level: i32,
	pub log_id: *const c_char,
	pub custom_logging_function: Option<OrtLoggingFunction>,
	pub custom_logging_param: *mut c_void,
	pub threading_options: *const OrtThreadingOptions,
	pub config_entries: *const OrtKeyValuePairs
}
#[doc = " \\brief The C API\n\n All C API functions are defined inside this structure as pointers to functions.\n Call OrtApiBase::GetApi to get a pointer to it\n\n \\nosubgrouping"]
#[repr(C)]
#[derive(Debug, Clone)]
pub struct OrtApi {
	#[doc = " \\brief Create an OrtStatus from a null terminated string\n\n \\param[in] code\n \\param[in] msg A null-terminated string. Its contents will be copied.\n \\return A new OrtStatus object, must be destroyed with OrtApi::ReleaseStatus"]
	pub CreateStatus: unsafe extern "system" fn(code: OrtErrorCode, msg: *const core::ffi::c_char) -> OrtStatusPtr,
	#[doc = " \\brief Get OrtErrorCode from OrtStatus\n\n \\param[in] status\n \\return OrtErrorCode that \\p status was created with"]
	pub GetErrorCode: unsafe extern "system" fn(status: *const OrtStatus) -> OrtErrorCode,
	#[doc = " \\brief Get error string from OrtStatus\n\n \\param[in] status\n \\return The error message inside the `status`. Do not free the returned value."]
	pub GetErrorMessage: unsafe extern "system" fn(status: *const OrtStatus) -> *const core::ffi::c_char,
	pub CreateEnv: unsafe extern "system" fn(log_severity_level: OrtLoggingLevel, logid: *const core::ffi::c_char, out: *mut *mut OrtEnv) -> OrtStatusPtr,
	pub CreateEnvWithCustomLogger: unsafe extern "system" fn(
		logging_function: OrtLoggingFunction,
		logger_param: *mut core::ffi::c_void,
		log_severity_level: OrtLoggingLevel,
		logid: *const core::ffi::c_char,
		out: *mut *mut OrtEnv
	) -> OrtStatusPtr,
	pub EnableTelemetryEvents: unsafe extern "system" fn(env: *const OrtEnv) -> OrtStatusPtr,
	pub DisableTelemetryEvents: unsafe extern "system" fn(env: *const OrtEnv) -> OrtStatusPtr,
	#[cfg(not(target_arch = "wasm32"))]
	pub CreateSession:
		unsafe extern "system" fn(env: *const OrtEnv, model_path: *const os_char, options: *const OrtSessionOptions, out: *mut *mut OrtSession) -> OrtStatusPtr,
	#[cfg(target_arch = "wasm32")]
	pub CreateSession: unsafe fn(
		env: *const OrtEnv,
		model_path: &str,
		options: *const OrtSessionOptions,
		out: *mut *mut OrtSession
	) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
	#[cfg(not(target_arch = "wasm32"))]
	pub CreateSessionFromArray: unsafe extern "system" fn(
		env: *const OrtEnv,
		model_data: *const core::ffi::c_void,
		model_data_length: usize,
		options: *const OrtSessionOptions,
		out: *mut *mut OrtSession
	) -> OrtStatusPtr,
	#[cfg(target_arch = "wasm32")]
	pub CreateSessionFromArray: unsafe fn(
		env: *const OrtEnv,
		model_data: &[u8],
		options: *const OrtSessionOptions,
		out: *mut *mut OrtSession
	) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
	pub Run: unsafe extern "system" fn(
		session: *mut OrtSession,
		run_options: *const OrtRunOptions,
		input_names: *const *const core::ffi::c_char,
		inputs: *const *const OrtValue,
		input_len: usize,
		output_names: *const *const core::ffi::c_char,
		output_names_len: usize,
		outputs: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub CreateSessionOptions: unsafe extern "system" fn(options: *mut *mut OrtSessionOptions) -> OrtStatusPtr,
	pub SetOptimizedModelFilePath: unsafe extern "system" fn(options: *mut OrtSessionOptions, optimized_model_filepath: *const os_char) -> OrtStatusPtr,
	pub CloneSessionOptions: unsafe extern "system" fn(in_options: *const OrtSessionOptions, out_options: *mut *mut OrtSessionOptions) -> OrtStatusPtr,
	pub SetSessionExecutionMode: unsafe extern "system" fn(options: *mut OrtSessionOptions, execution_mode: ExecutionMode) -> OrtStatusPtr,
	pub EnableProfiling: unsafe extern "system" fn(options: *mut OrtSessionOptions, profile_file_prefix: *const os_char) -> OrtStatusPtr,
	pub DisableProfiling: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub EnableMemPattern: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub DisableMemPattern: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub EnableCpuMemArena: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub DisableCpuMemArena: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub SetSessionLogId: unsafe extern "system" fn(options: *mut OrtSessionOptions, logid: *const core::ffi::c_char) -> OrtStatusPtr,
	pub SetSessionLogVerbosityLevel: unsafe extern "system" fn(options: *mut OrtSessionOptions, session_log_verbosity_level: core::ffi::c_int) -> OrtStatusPtr,
	pub SetSessionLogSeverityLevel: unsafe extern "system" fn(options: *mut OrtSessionOptions, session_log_severity_level: core::ffi::c_int) -> OrtStatusPtr,
	pub SetSessionGraphOptimizationLevel:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, graph_optimization_level: GraphOptimizationLevel) -> OrtStatusPtr,
	pub SetIntraOpNumThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions, intra_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
	pub SetInterOpNumThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions, inter_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
	pub CreateCustomOpDomain: unsafe extern "system" fn(domain: *const core::ffi::c_char, out: *mut *mut OrtCustomOpDomain) -> OrtStatusPtr,
	pub CustomOpDomain_Add: unsafe extern "system" fn(custom_op_domain: *mut OrtCustomOpDomain, op: *const OrtCustomOp) -> OrtStatusPtr,
	pub AddCustomOpDomain: unsafe extern "system" fn(options: *mut OrtSessionOptions, custom_op_domain: *mut OrtCustomOpDomain) -> OrtStatusPtr,
	pub RegisterCustomOpsLibrary: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		library_path: *const core::ffi::c_char,
		library_handle: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub SessionGetInputCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
	pub SessionGetOutputCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
	pub SessionGetOverridableInitializerCount: unsafe extern "system" fn(session: *const OrtSession, out: *mut usize) -> OrtStatusPtr,
	pub SessionGetInputTypeInfo: unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub SessionGetOutputTypeInfo: unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub SessionGetOverridableInitializerTypeInfo:
		unsafe extern "system" fn(session: *const OrtSession, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub SessionGetInputName:
		unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub SessionGetOutputName:
		unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub SessionGetOverridableInitializerName:
		unsafe extern "system" fn(session: *const OrtSession, index: usize, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub CreateRunOptions: unsafe extern "system" fn(out: *mut *mut OrtRunOptions) -> OrtStatusPtr,
	pub RunOptionsSetRunLogVerbosityLevel: unsafe extern "system" fn(options: *mut OrtRunOptions, log_verbosity_level: core::ffi::c_int) -> OrtStatusPtr,
	pub RunOptionsSetRunLogSeverityLevel: unsafe extern "system" fn(options: *mut OrtRunOptions, log_severity_level: core::ffi::c_int) -> OrtStatusPtr,
	pub RunOptionsSetRunTag: unsafe extern "system" fn(options: *mut OrtRunOptions, run_tag: *const core::ffi::c_char) -> OrtStatusPtr,
	pub RunOptionsGetRunLogVerbosityLevel: unsafe extern "system" fn(options: *const OrtRunOptions, log_verbosity_level: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub RunOptionsGetRunLogSeverityLevel: unsafe extern "system" fn(options: *const OrtRunOptions, log_severity_level: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub RunOptionsGetRunTag: unsafe extern "system" fn(options: *const OrtRunOptions, run_tag: *mut *const core::ffi::c_char) -> OrtStatusPtr,
	pub RunOptionsSetTerminate: unsafe extern "system" fn(options: *mut OrtRunOptions) -> OrtStatusPtr,
	pub RunOptionsUnsetTerminate: unsafe extern "system" fn(options: *mut OrtRunOptions) -> OrtStatusPtr,
	pub CreateTensorAsOrtValue: unsafe extern "system" fn(
		allocator: *mut OrtAllocator,
		shape: *const i64,
		shape_len: usize,
		type_: ONNXTensorElementDataType,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub CreateTensorWithDataAsOrtValue: unsafe extern "system" fn(
		info: *const OrtMemoryInfo,
		p_data: *mut core::ffi::c_void,
		p_data_len: usize,
		shape: *const i64,
		shape_len: usize,
		type_: ONNXTensorElementDataType,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub IsTensor: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub GetTensorMutableData: unsafe extern "system" fn(value: *mut OrtValue, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
	pub FillStringTensor: unsafe extern "system" fn(value: *mut OrtValue, s: *const *const core::ffi::c_char, s_len: usize) -> OrtStatusPtr,
	pub GetStringTensorDataLength: unsafe extern "system" fn(value: *const OrtValue, len: *mut usize) -> OrtStatusPtr,
	pub GetStringTensorContent:
		unsafe extern "system" fn(value: *const OrtValue, s: *mut core::ffi::c_void, s_len: usize, offsets: *mut usize, offsets_len: usize) -> OrtStatusPtr,
	pub CastTypeInfoToTensorInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub GetOnnxTypeFromTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut ONNXType) -> OrtStatusPtr,
	pub CreateTensorTypeAndShapeInfo: unsafe extern "system" fn(out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub SetTensorElementType: unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, type_: ONNXTensorElementDataType) -> OrtStatusPtr,
	pub SetDimensions: unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, dim_values: *const i64, dim_count: usize) -> OrtStatusPtr,
	pub GetTensorElementType: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr,
	pub GetDimensionsCount: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr,
	pub GetDimensions: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, dim_values: *mut i64, dim_values_length: usize) -> OrtStatusPtr,
	pub GetSymbolicDimensions:
		unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, dim_params: *mut *const core::ffi::c_char, dim_params_length: usize) -> OrtStatusPtr,
	pub GetTensorShapeElementCount: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo, out: *mut usize) -> OrtStatusPtr,
	pub GetTensorTypeAndShape: unsafe extern "system" fn(value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub GetTypeInfo: unsafe extern "system" fn(value: *const OrtValue, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub GetValueType: unsafe extern "system" fn(value: *const OrtValue, out: *mut ONNXType) -> OrtStatusPtr,
	pub CreateMemoryInfo: unsafe extern "system" fn(
		name: *const core::ffi::c_char,
		type_: OrtAllocatorType,
		id: core::ffi::c_int,
		mem_type: OrtMemType,
		out: *mut *mut OrtMemoryInfo
	) -> OrtStatusPtr,
	pub CreateCpuMemoryInfo: unsafe extern "system" fn(type_: OrtAllocatorType, mem_type: OrtMemType, out: *mut *mut OrtMemoryInfo) -> OrtStatusPtr,
	pub CompareMemoryInfo: unsafe extern "system" fn(info1: *const OrtMemoryInfo, info2: *const OrtMemoryInfo, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub MemoryInfoGetName: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut *const core::ffi::c_char) -> OrtStatusPtr,
	pub MemoryInfoGetId: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub MemoryInfoGetMemType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemType) -> OrtStatusPtr,
	pub MemoryInfoGetType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtAllocatorType) -> OrtStatusPtr,
	pub AllocatorAlloc: unsafe extern "system" fn(ort_allocator: *mut OrtAllocator, size: usize, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
	pub AllocatorFree: unsafe extern "system" fn(ort_allocator: *mut OrtAllocator, p: *mut core::ffi::c_void) -> OrtStatusPtr,
	pub AllocatorGetInfo: unsafe extern "system" fn(ort_allocator: *const OrtAllocator, out: *mut *const OrtMemoryInfo) -> OrtStatusPtr,
	pub GetAllocatorWithDefaultOptions: unsafe extern "system" fn(out: *mut *mut OrtAllocator) -> OrtStatusPtr,
	pub AddFreeDimensionOverride:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_denotation: *const core::ffi::c_char, dim_value: i64) -> OrtStatusPtr,
	pub GetValue:
		unsafe extern "system" fn(value: *const OrtValue, index: core::ffi::c_int, allocator: *mut OrtAllocator, out: *mut *mut OrtValue) -> OrtStatusPtr,
	pub GetValueCount: unsafe extern "system" fn(value: *const OrtValue, out: *mut usize) -> OrtStatusPtr,
	pub CreateValue: unsafe extern "system" fn(in_: *const *const OrtValue, num_values: usize, value_type: ONNXType, out: *mut *mut OrtValue) -> OrtStatusPtr,
	pub CreateOpaqueValue: unsafe extern "system" fn(
		domain_name: *const core::ffi::c_char,
		type_name: *const core::ffi::c_char,
		data_container: *const core::ffi::c_void,
		data_container_size: usize,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub GetOpaqueValue: unsafe extern "system" fn(
		domain_name: *const core::ffi::c_char,
		type_name: *const core::ffi::c_char,
		in_: *const OrtValue,
		data_container: *mut core::ffi::c_void,
		data_container_size: usize
	) -> OrtStatusPtr,
	pub KernelInfoGetAttribute_float: unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut f32) -> OrtStatusPtr,
	pub KernelInfoGetAttribute_int64: unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut i64) -> OrtStatusPtr,
	pub KernelInfoGetAttribute_string:
		unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
	pub KernelContext_GetInputCount: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr,
	pub KernelContext_GetOutputCount: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut usize) -> OrtStatusPtr,
	pub KernelContext_GetInput: unsafe extern "system" fn(context: *const OrtKernelContext, index: usize, out: *mut *const OrtValue) -> OrtStatusPtr,
	pub KernelContext_GetOutput: unsafe extern "system" fn(
		context: *mut OrtKernelContext,
		index: usize,
		dim_values: *const i64,
		dim_count: usize,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub ReleaseEnv: unsafe extern "system" fn(input: *mut OrtEnv),
	pub ReleaseStatus: unsafe extern "system" fn(input: *mut OrtStatus),
	pub ReleaseMemoryInfo: unsafe extern "system" fn(input: *mut OrtMemoryInfo),
	pub ReleaseSession: unsafe extern "system" fn(input: *mut OrtSession),
	pub ReleaseValue: unsafe extern "system" fn(input: *mut OrtValue),
	pub ReleaseRunOptions: unsafe extern "system" fn(input: *mut OrtRunOptions),
	pub ReleaseTypeInfo: unsafe extern "system" fn(input: *mut OrtTypeInfo),
	pub ReleaseTensorTypeAndShapeInfo: unsafe extern "system" fn(input: *mut OrtTensorTypeAndShapeInfo),
	pub ReleaseSessionOptions: unsafe extern "system" fn(input: *mut OrtSessionOptions),
	pub ReleaseCustomOpDomain: unsafe extern "system" fn(input: *mut OrtCustomOpDomain),
	pub GetDenotationFromTypeInfo:
		unsafe extern "system" fn(type_info: *const OrtTypeInfo, denotation: *mut *const core::ffi::c_char, len: *mut usize) -> OrtStatusPtr,
	pub CastTypeInfoToMapTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtMapTypeInfo) -> OrtStatusPtr,
	pub CastTypeInfoToSequenceTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtSequenceTypeInfo) -> OrtStatusPtr,
	pub GetMapKeyType: unsafe extern "system" fn(map_type_info: *const OrtMapTypeInfo, out: *mut ONNXTensorElementDataType) -> OrtStatusPtr,
	pub GetMapValueType: unsafe extern "system" fn(map_type_info: *const OrtMapTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub GetSequenceElementType: unsafe extern "system" fn(sequence_type_info: *const OrtSequenceTypeInfo, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub ReleaseMapTypeInfo: unsafe extern "system" fn(input: *mut OrtMapTypeInfo),
	pub ReleaseSequenceTypeInfo: unsafe extern "system" fn(input: *mut OrtSequenceTypeInfo),
	pub SessionEndProfiling:
		unsafe extern "system" fn(session: *mut OrtSession, allocator: *mut OrtAllocator, out: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub SessionGetModelMetadata: unsafe extern "system" fn(session: *const OrtSession, out: *mut *mut OrtModelMetadata) -> OrtStatusPtr,
	pub ModelMetadataGetProducerName:
		unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub ModelMetadataGetGraphName:
		unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub ModelMetadataGetDomain:
		unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub ModelMetadataGetDescription:
		unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub ModelMetadataLookupCustomMetadataMap: unsafe extern "system" fn(
		model_metadata: *const OrtModelMetadata,
		allocator: *mut OrtAllocator,
		key: *const core::ffi::c_char,
		value: *mut *mut core::ffi::c_char
	) -> OrtStatusPtr,
	pub ModelMetadataGetVersion: unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, value: *mut i64) -> OrtStatusPtr,
	pub ReleaseModelMetadata: unsafe extern "system" fn(input: *mut OrtModelMetadata),
	pub CreateEnvWithGlobalThreadPools: unsafe extern "system" fn(
		log_severity_level: OrtLoggingLevel,
		logid: *const core::ffi::c_char,
		tp_options: *const OrtThreadingOptions,
		out: *mut *mut OrtEnv
	) -> OrtStatusPtr,
	pub DisablePerSessionThreads: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub CreateThreadingOptions: unsafe extern "system" fn(out: *mut *mut OrtThreadingOptions) -> OrtStatusPtr,
	pub ReleaseThreadingOptions: unsafe extern "system" fn(input: *mut OrtThreadingOptions),
	pub ModelMetadataGetCustomMetadataMapKeys: unsafe extern "system" fn(
		model_metadata: *const OrtModelMetadata,
		allocator: *mut OrtAllocator,
		keys: *mut *mut *mut core::ffi::c_char,
		num_keys: *mut i64
	) -> OrtStatusPtr,
	pub AddFreeDimensionOverrideByName:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, dim_name: *const core::ffi::c_char, dim_value: i64) -> OrtStatusPtr,
	pub GetAvailableProviders: unsafe extern "system" fn(out_ptr: *mut *mut *mut core::ffi::c_char, provider_length: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub ReleaseAvailableProviders: unsafe extern "system" fn(ptr: *mut *mut core::ffi::c_char, providers_length: core::ffi::c_int) -> OrtStatusPtr,
	pub GetStringTensorElementLength: unsafe extern "system" fn(value: *const OrtValue, index: usize, out: *mut usize) -> OrtStatusPtr,
	pub GetStringTensorElement: unsafe extern "system" fn(value: *const OrtValue, s_len: usize, index: usize, s: *mut core::ffi::c_void) -> OrtStatusPtr,
	pub FillStringTensorElement: unsafe extern "system" fn(value: *mut OrtValue, s: *const core::ffi::c_char, index: usize) -> OrtStatusPtr,
	pub AddSessionConfigEntry: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		config_key: *const core::ffi::c_char,
		config_value: *const core::ffi::c_char
	) -> OrtStatusPtr,
	pub CreateAllocator: unsafe extern "system" fn(session: *const OrtSession, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
	pub ReleaseAllocator: unsafe extern "system" fn(input: *mut OrtAllocator),
	pub RunWithBinding:
		unsafe extern "system" fn(session: *mut OrtSession, run_options: *const OrtRunOptions, binding_ptr: *const OrtIoBinding) -> OrtStatusPtr,
	pub CreateIoBinding: unsafe extern "system" fn(session: *mut OrtSession, out: *mut *mut OrtIoBinding) -> OrtStatusPtr,
	pub ReleaseIoBinding: unsafe extern "system" fn(input: *mut OrtIoBinding),
	pub BindInput: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr,
	pub BindOutput: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, val_ptr: *const OrtValue) -> OrtStatusPtr,
	pub BindOutputToDevice:
		unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding, name: *const core::ffi::c_char, mem_info_ptr: *const OrtMemoryInfo) -> OrtStatusPtr,
	pub GetBoundOutputNames: unsafe extern "system" fn(
		binding_ptr: *const OrtIoBinding,
		allocator: *mut OrtAllocator,
		buffer: *mut *mut core::ffi::c_char,
		lengths: *mut *mut usize,
		count: *mut usize
	) -> OrtStatusPtr,
	pub GetBoundOutputValues: unsafe extern "system" fn(
		binding_ptr: *const OrtIoBinding,
		allocator: *mut OrtAllocator,
		output: *mut *mut *mut OrtValue,
		output_count: *mut usize
	) -> OrtStatusPtr,
	#[doc = " \\brief Clears any previously set Inputs for an ::OrtIoBinding"]
	pub ClearBoundInputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding),
	#[doc = " \\brief Clears any previously set Outputs for an ::OrtIoBinding"]
	pub ClearBoundOutputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding),
	pub TensorAt: unsafe extern "system" fn(
		value: *mut OrtValue,
		location_values: *const i64,
		location_values_count: usize,
		out: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub CreateAndRegisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo, arena_cfg: *const OrtArenaCfg) -> OrtStatusPtr,
	pub SetLanguageProjection: unsafe extern "system" fn(ort_env: *const OrtEnv, projection: OrtLanguageProjection) -> OrtStatusPtr,
	pub SessionGetProfilingStartTimeNs: unsafe extern "system" fn(session: *const OrtSession, out: *mut u64) -> OrtStatusPtr,
	pub SetGlobalIntraOpNumThreads: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, intra_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
	pub SetGlobalInterOpNumThreads: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, inter_op_num_threads: core::ffi::c_int) -> OrtStatusPtr,
	pub SetGlobalSpinControl: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, allow_spinning: core::ffi::c_int) -> OrtStatusPtr,
	pub AddInitializer: unsafe extern "system" fn(options: *mut OrtSessionOptions, name: *const core::ffi::c_char, val: *const OrtValue) -> OrtStatusPtr,
	pub CreateEnvWithCustomLoggerAndGlobalThreadPools: unsafe extern "system" fn(
		logging_function: OrtLoggingFunction,
		logger_param: *mut core::ffi::c_void,
		log_severity_level: OrtLoggingLevel,
		logid: *const core::ffi::c_char,
		tp_options: *const OrtThreadingOptions,
		out: *mut *mut OrtEnv
	) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_CUDA:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptions) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_ROCM:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, rocm_options: *const OrtROCMProviderOptions) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_OpenVINO:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, provider_options: *const OrtOpenVINOProviderOptions) -> OrtStatusPtr,
	pub SetGlobalDenormalAsZero: unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions) -> OrtStatusPtr,
	pub CreateArenaCfg: unsafe extern "system" fn(
		max_mem: usize,
		arena_extend_strategy: core::ffi::c_int,
		initial_chunk_size_bytes: core::ffi::c_int,
		max_dead_bytes_per_chunk: core::ffi::c_int,
		out: *mut *mut OrtArenaCfg
	) -> OrtStatusPtr,
	pub ReleaseArenaCfg: unsafe extern "system" fn(input: *mut OrtArenaCfg),
	pub ModelMetadataGetGraphDescription:
		unsafe extern "system" fn(model_metadata: *const OrtModelMetadata, allocator: *mut OrtAllocator, value: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_TensorRT:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptions) -> OrtStatusPtr,
	pub SetCurrentGpuDeviceId: unsafe extern "system" fn(device_id: core::ffi::c_int) -> OrtStatusPtr,
	pub GetCurrentGpuDeviceId: unsafe extern "system" fn(device_id: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub KernelInfoGetAttributeArray_float:
		unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut f32, size: *mut usize) -> OrtStatusPtr,
	pub KernelInfoGetAttributeArray_int64:
		unsafe extern "system" fn(info: *const OrtKernelInfo, name: *const core::ffi::c_char, out: *mut i64, size: *mut usize) -> OrtStatusPtr,
	pub CreateArenaCfgV2: unsafe extern "system" fn(
		arena_config_keys: *const *const core::ffi::c_char,
		arena_config_values: *const usize,
		num_keys: usize,
		out: *mut *mut OrtArenaCfg
	) -> OrtStatusPtr,
	pub AddRunConfigEntry:
		unsafe extern "system" fn(options: *mut OrtRunOptions, config_key: *const core::ffi::c_char, config_value: *const core::ffi::c_char) -> OrtStatusPtr,
	pub CreatePrepackedWeightsContainer: unsafe extern "system" fn(out: *mut *mut OrtPrepackedWeightsContainer) -> OrtStatusPtr,
	pub ReleasePrepackedWeightsContainer: unsafe extern "system" fn(input: *mut OrtPrepackedWeightsContainer),
	pub CreateSessionWithPrepackedWeightsContainer: unsafe extern "system" fn(
		env: *const OrtEnv,
		model_path: *const os_char,
		options: *const OrtSessionOptions,
		prepacked_weights_container: *mut OrtPrepackedWeightsContainer,
		out: *mut *mut OrtSession
	) -> OrtStatusPtr,
	pub CreateSessionFromArrayWithPrepackedWeightsContainer: unsafe extern "system" fn(
		env: *const OrtEnv,
		model_data: *const core::ffi::c_void,
		model_data_length: usize,
		options: *const OrtSessionOptions,
		prepacked_weights_container: *mut OrtPrepackedWeightsContainer,
		out: *mut *mut OrtSession
	) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_TensorRT_V2:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, tensorrt_options: *const OrtTensorRTProviderOptionsV2) -> OrtStatusPtr,
	pub CreateTensorRTProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtTensorRTProviderOptionsV2) -> OrtStatusPtr,
	pub UpdateTensorRTProviderOptions: unsafe extern "system" fn(
		tensorrt_options: *mut OrtTensorRTProviderOptionsV2,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub GetTensorRTProviderOptionsAsString: unsafe extern "system" fn(
		tensorrt_options: *const OrtTensorRTProviderOptionsV2,
		allocator: *mut OrtAllocator,
		ptr: *mut *mut core::ffi::c_char
	) -> OrtStatusPtr,
	#[doc = " \\brief Release an ::OrtTensorRTProviderOptionsV2\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does"]
	pub ReleaseTensorRTProviderOptions: unsafe extern "system" fn(input: *mut OrtTensorRTProviderOptionsV2),
	pub EnableOrtCustomOps: unsafe extern "system" fn(options: *mut OrtSessionOptions) -> OrtStatusPtr,
	pub RegisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, allocator: *mut OrtAllocator) -> OrtStatusPtr,
	pub UnregisterAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo) -> OrtStatusPtr,
	pub IsSparseTensor: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub CreateSparseTensorAsOrtValue: unsafe extern "system" fn(
		allocator: *mut OrtAllocator,
		dense_shape: *const i64,
		dense_shape_len: usize,
		type_: ONNXTensorElementDataType,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub FillSparseTensorCoo: unsafe extern "system" fn(
		ort_value: *mut OrtValue,
		data_mem_info: *const OrtMemoryInfo,
		values_shape: *const i64,
		values_shape_len: usize,
		values: *const core::ffi::c_void,
		indices_data: *const i64,
		indices_num: usize
	) -> OrtStatusPtr,
	pub FillSparseTensorCsr: unsafe extern "system" fn(
		ort_value: *mut OrtValue,
		data_mem_info: *const OrtMemoryInfo,
		values_shape: *const i64,
		values_shape_len: usize,
		values: *const core::ffi::c_void,
		inner_indices_data: *const i64,
		inner_indices_num: usize,
		outer_indices_data: *const i64,
		outer_indices_num: usize
	) -> OrtStatusPtr,
	pub FillSparseTensorBlockSparse: unsafe extern "system" fn(
		ort_value: *mut OrtValue,
		data_mem_info: *const OrtMemoryInfo,
		values_shape: *const i64,
		values_shape_len: usize,
		values: *const core::ffi::c_void,
		indices_shape_data: *const i64,
		indices_shape_len: usize,
		indices_data: *const i32
	) -> OrtStatusPtr,
	pub CreateSparseTensorWithValuesAsOrtValue: unsafe extern "system" fn(
		info: *const OrtMemoryInfo,
		p_data: *mut core::ffi::c_void,
		dense_shape: *const i64,
		dense_shape_len: usize,
		values_shape: *const i64,
		values_shape_len: usize,
		type_: ONNXTensorElementDataType,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub UseCooIndices: unsafe extern "system" fn(ort_value: *mut OrtValue, indices_data: *mut i64, indices_num: usize) -> OrtStatusPtr,
	pub UseCsrIndices:
		unsafe extern "system" fn(ort_value: *mut OrtValue, inner_data: *mut i64, inner_num: usize, outer_data: *mut i64, outer_num: usize) -> OrtStatusPtr,
	pub UseBlockSparseIndices:
		unsafe extern "system" fn(ort_value: *mut OrtValue, indices_shape: *const i64, indices_shape_len: usize, indices_data: *mut i32) -> OrtStatusPtr,
	pub GetSparseTensorFormat: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut OrtSparseFormat) -> OrtStatusPtr,
	pub GetSparseTensorValuesTypeAndShape: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub GetSparseTensorValues: unsafe extern "system" fn(ort_value: *const OrtValue, out: *mut *const core::ffi::c_void) -> OrtStatusPtr,
	pub GetSparseTensorIndicesTypeShape:
		unsafe extern "system" fn(ort_value: *const OrtValue, indices_format: OrtSparseIndicesFormat, out: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub GetSparseTensorIndices: unsafe extern "system" fn(
		ort_value: *const OrtValue,
		indices_format: OrtSparseIndicesFormat,
		num_indices: *mut usize,
		indices: *mut *const core::ffi::c_void
	) -> OrtStatusPtr,
	pub HasValue: unsafe extern "system" fn(value: *const OrtValue, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub KernelContext_GetGPUComputeStream: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut *mut core::ffi::c_void) -> OrtStatusPtr,
	pub GetTensorMemoryInfo: unsafe extern "system" fn(value: *const OrtValue, mem_info: *mut *const OrtMemoryInfo) -> OrtStatusPtr,
	pub GetExecutionProviderApi:
		unsafe extern "system" fn(provider_name: *const core::ffi::c_char, version: u32, provider_api: *mut *const core::ffi::c_void) -> OrtStatusPtr,
	pub SessionOptionsSetCustomCreateThreadFn:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr,
	pub SessionOptionsSetCustomThreadCreationOptions:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_thread_creation_options: *mut core::ffi::c_void) -> OrtStatusPtr,
	pub SessionOptionsSetCustomJoinThreadFn:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr,
	pub SetGlobalCustomCreateThreadFn:
		unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_create_thread_fn: OrtCustomCreateThreadFn) -> OrtStatusPtr,
	pub SetGlobalCustomThreadCreationOptions:
		unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_thread_creation_options: *mut core::ffi::c_void) -> OrtStatusPtr,
	pub SetGlobalCustomJoinThreadFn:
		unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, ort_custom_join_thread_fn: OrtCustomJoinThreadFn) -> OrtStatusPtr,
	pub SynchronizeBoundInputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr,
	pub SynchronizeBoundOutputs: unsafe extern "system" fn(binding_ptr: *mut OrtIoBinding) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_CUDA_V2:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, cuda_options: *const OrtCUDAProviderOptionsV2) -> OrtStatusPtr,
	pub CreateCUDAProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtCUDAProviderOptionsV2) -> OrtStatusPtr,
	pub UpdateCUDAProviderOptions: unsafe extern "system" fn(
		cuda_options: *mut OrtCUDAProviderOptionsV2,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub GetCUDAProviderOptionsAsString: unsafe extern "system" fn(
		cuda_options: *const OrtCUDAProviderOptionsV2,
		allocator: *mut OrtAllocator,
		ptr: *mut *mut core::ffi::c_char
	) -> OrtStatusPtr,
	#[doc = " \\brief Release an ::OrtCUDAProviderOptionsV2\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does\n\n \\since Version 1.11."]
	pub ReleaseCUDAProviderOptions: unsafe extern "system" fn(input: *mut OrtCUDAProviderOptionsV2),
	pub SessionOptionsAppendExecutionProvider_MIGraphX:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, migraphx_options: *const OrtMIGraphXProviderOptions) -> OrtStatusPtr,
	pub AddExternalInitializers: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		initializer_names: *const *const core::ffi::c_char,
		initializers: *const *const OrtValue,
		initializers_num: usize
	) -> OrtStatusPtr,
	pub CreateOpAttr: unsafe extern "system" fn(
		name: *const core::ffi::c_char,
		data: *const core::ffi::c_void,
		len: core::ffi::c_int,
		type_: OrtOpAttrType,
		op_attr: *mut *mut OrtOpAttr
	) -> OrtStatusPtr,
	pub ReleaseOpAttr: unsafe extern "system" fn(input: *mut OrtOpAttr),
	pub CreateOp: unsafe extern "system" fn(
		info: *const OrtKernelInfo,
		op_name: *const core::ffi::c_char,
		domain: *const core::ffi::c_char,
		version: core::ffi::c_int,
		type_constraint_names: *mut *const core::ffi::c_char,
		type_constraint_values: *const ONNXTensorElementDataType,
		type_constraint_count: core::ffi::c_int,
		attr_values: *const *const OrtOpAttr,
		attr_count: core::ffi::c_int,
		input_count: core::ffi::c_int,
		output_count: core::ffi::c_int,
		ort_op: *mut *mut OrtOp
	) -> OrtStatusPtr,
	pub InvokeOp: unsafe extern "system" fn(
		context: *const OrtKernelContext,
		ort_op: *const OrtOp,
		input_values: *const *const OrtValue,
		input_count: core::ffi::c_int,
		output_values: *const *mut OrtValue,
		output_count: core::ffi::c_int
	) -> OrtStatusPtr,
	pub ReleaseOp: unsafe extern "system" fn(input: *mut OrtOp),
	pub SessionOptionsAppendExecutionProvider: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		provider_name: *const core::ffi::c_char,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub CopyKernelInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, info_copy: *mut *mut OrtKernelInfo) -> OrtStatusPtr,
	pub ReleaseKernelInfo: unsafe extern "system" fn(input: *mut OrtKernelInfo),
	#[doc = " \\name Ort Training\n @{\n** \\brief Gets the Training C Api struct\n*\n* Call this function to access the ::OrtTrainingApi structure that holds pointers to functions that enable\n* training with onnxruntime.\n* \\note A NULL pointer will be returned and no error message will be printed if the training api\n* is not supported with this build. A NULL pointer will be returned and an error message will be\n* printed if the provided version is unsupported, for example when using a runtime older than the\n* version created with this header file.\n*\n* \\param[in] version Must be ::ORT_API_VERSION\n* \\return The ::OrtTrainingApi struct for the version requested.\n*\n* \\since Version 1.13\n*/"]
	pub GetTrainingApi: unsafe extern "system" fn(version: u32) -> *const OrtTrainingApi,
	pub SessionOptionsAppendExecutionProvider_CANN:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, cann_options: *const OrtCANNProviderOptions) -> OrtStatusPtr,
	pub CreateCANNProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtCANNProviderOptions) -> OrtStatusPtr,
	pub UpdateCANNProviderOptions: unsafe extern "system" fn(
		cann_options: *mut OrtCANNProviderOptions,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub GetCANNProviderOptionsAsString:
		unsafe extern "system" fn(cann_options: *const OrtCANNProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	#[doc = " \\brief Release an OrtCANNProviderOptions\n\n \\param[in] the pointer of OrtCANNProviderOptions which will been deleted\n\n \\since Version 1.13."]
	pub ReleaseCANNProviderOptions: unsafe extern "system" fn(input: *mut OrtCANNProviderOptions),
	pub MemoryInfoGetDeviceType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo, out: *mut OrtMemoryInfoDeviceType),
	pub UpdateEnvWithCustomLogLevel: unsafe extern "system" fn(ort_env: *mut OrtEnv, log_severity_level: OrtLoggingLevel) -> OrtStatusPtr,
	pub SetGlobalIntraOpThreadAffinity:
		unsafe extern "system" fn(tp_options: *mut OrtThreadingOptions, affinity_string: *const core::ffi::c_char) -> OrtStatusPtr,
	pub RegisterCustomOpsLibrary_V2: unsafe extern "system" fn(options: *mut OrtSessionOptions, library_name: *const os_char) -> OrtStatusPtr,
	pub RegisterCustomOpsUsingFunction:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, registration_func_name: *const core::ffi::c_char) -> OrtStatusPtr,
	pub KernelInfo_GetInputCount: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr,
	pub KernelInfo_GetOutputCount: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut usize) -> OrtStatusPtr,
	pub KernelInfo_GetInputName:
		unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
	pub KernelInfo_GetOutputName:
		unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
	pub KernelInfo_GetInputTypeInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub KernelInfo_GetOutputTypeInfo: unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, type_info: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub KernelInfoGetAttribute_tensor: unsafe extern "system" fn(
		info: *const OrtKernelInfo,
		name: *const core::ffi::c_char,
		allocator: *mut OrtAllocator,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	pub HasSessionConfigEntry:
		unsafe extern "system" fn(options: *const OrtSessionOptions, config_key: *const core::ffi::c_char, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	pub GetSessionConfigEntry: unsafe extern "system" fn(
		options: *const OrtSessionOptions,
		config_key: *const core::ffi::c_char,
		config_value: *mut core::ffi::c_char,
		size: *mut usize
	) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_Dnnl:
		unsafe extern "system" fn(options: *mut OrtSessionOptions, dnnl_options: *const OrtDnnlProviderOptions) -> OrtStatusPtr,
	pub CreateDnnlProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtDnnlProviderOptions) -> OrtStatusPtr,
	pub UpdateDnnlProviderOptions: unsafe extern "system" fn(
		dnnl_options: *mut OrtDnnlProviderOptions,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub GetDnnlProviderOptionsAsString:
		unsafe extern "system" fn(dnnl_options: *const OrtDnnlProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	#[doc = " \\brief Release an ::OrtDnnlProviderOptions\n\n \\since Version 1.15."]
	pub ReleaseDnnlProviderOptions: unsafe extern "system" fn(input: *mut OrtDnnlProviderOptions),
	pub KernelInfo_GetNodeName: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut core::ffi::c_char, size: *mut usize) -> OrtStatusPtr,
	pub KernelInfo_GetLogger: unsafe extern "system" fn(info: *const OrtKernelInfo, logger: *mut *const OrtLogger) -> OrtStatusPtr,
	pub KernelContext_GetLogger: unsafe extern "system" fn(context: *const OrtKernelContext, logger: *mut *const OrtLogger) -> OrtStatusPtr,
	pub Logger_LogMessage: unsafe extern "system" fn(
		logger: *const OrtLogger,
		log_severity_level: OrtLoggingLevel,
		message: *const core::ffi::c_char,
		file_path: *const os_char,
		line_number: core::ffi::c_int,
		func_name: *const core::ffi::c_char
	) -> OrtStatusPtr,
	pub Logger_GetLoggingSeverityLevel: unsafe extern "system" fn(logger: *const OrtLogger, out: *mut OrtLoggingLevel) -> OrtStatusPtr,
	pub KernelInfoGetConstantInput_tensor:
		unsafe extern "system" fn(info: *const OrtKernelInfo, index: usize, is_constant: *mut core::ffi::c_int, out: *mut *const OrtValue) -> OrtStatusPtr,
	pub CastTypeInfoToOptionalTypeInfo: unsafe extern "system" fn(type_info: *const OrtTypeInfo, out: *mut *const OrtOptionalTypeInfo) -> OrtStatusPtr,
	pub GetOptionalContainedTypeInfo: unsafe extern "system" fn(optional_type_info: *const OrtOptionalTypeInfo, out: *mut *mut OrtTypeInfo) -> OrtStatusPtr,
	pub GetResizedStringTensorElementBuffer:
		unsafe extern "system" fn(value: *mut OrtValue, index: usize, length_in_bytes: usize, buffer: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	pub KernelContext_GetAllocator:
		unsafe extern "system" fn(context: *const OrtKernelContext, mem_info: *const OrtMemoryInfo, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
	#[doc = " \\brief Returns a null terminated string of the build info including git info and cxx flags\n\n \\return UTF-8 encoded version string. Do not deallocate the returned buffer.\n\n \\since Version 1.15."]
	pub GetBuildInfoString: unsafe extern "system" fn() -> *const core::ffi::c_char,
	pub CreateROCMProviderOptions: unsafe extern "system" fn(out: *mut *mut OrtROCMProviderOptions) -> OrtStatusPtr,
	pub UpdateROCMProviderOptions: unsafe extern "system" fn(
		rocm_options: *mut OrtROCMProviderOptions,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	pub GetROCMProviderOptionsAsString:
		unsafe extern "system" fn(rocm_options: *const OrtROCMProviderOptions, allocator: *mut OrtAllocator, ptr: *mut *mut core::ffi::c_char) -> OrtStatusPtr,
	#[doc = " \\brief Release an ::OrtROCMProviderOptions\n\n \\note This is an exception in the naming convention of other Release* functions, as the name of the method does not have the V2 suffix, but the type does\n\n \\since Version 1.16."]
	pub ReleaseROCMProviderOptions: unsafe extern "system" fn(input: *mut OrtROCMProviderOptions),
	pub CreateAndRegisterAllocatorV2: unsafe extern "system" fn(
		env: *mut OrtEnv,
		provider_type: *const core::ffi::c_char,
		mem_info: *const OrtMemoryInfo,
		arena_cfg: *const OrtArenaCfg,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	#[cfg(not(target_arch = "wasm32"))]
	pub RunAsync: unsafe extern "system" fn(
		session: *mut OrtSession,
		run_options: *const OrtRunOptions,
		input_names: *const *const core::ffi::c_char,
		input: *const *const OrtValue,
		input_len: usize,
		output_names: *const *const core::ffi::c_char,
		output_names_len: usize,
		output: *mut *mut OrtValue,
		run_async_callback: RunAsyncCallbackFn,
		user_data: *mut core::ffi::c_void
	) -> OrtStatusPtr,
	#[cfg(target_arch = "wasm32")]
	pub RunAsync: unsafe fn(
		session: *mut OrtSession,
		run_options: *const OrtRunOptions,
		input_names: &[&str],
		inputs: &[*const OrtValue],
		output_names: &[&str],
		outputs: &mut [*mut OrtValue]
	) -> core::pin::Pin<alloc::boxed::Box<dyn core::future::Future<Output = OrtStatusPtr>>>,
	pub UpdateTensorRTProviderOptionsWithValue: unsafe extern "system" fn(
		tensorrt_options: *mut OrtTensorRTProviderOptionsV2,
		key: *const core::ffi::c_char,
		value: *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub GetTensorRTProviderOptionsByName: unsafe extern "system" fn(
		tensorrt_options: *const OrtTensorRTProviderOptionsV2,
		key: *const core::ffi::c_char,
		ptr: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub UpdateCUDAProviderOptionsWithValue:
		unsafe extern "system" fn(cuda_options: *mut OrtCUDAProviderOptionsV2, key: *const core::ffi::c_char, value: *mut core::ffi::c_void) -> OrtStatusPtr,
	pub GetCUDAProviderOptionsByName: unsafe extern "system" fn(
		cuda_options: *const OrtCUDAProviderOptionsV2,
		key: *const core::ffi::c_char,
		ptr: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub KernelContext_GetResource: unsafe extern "system" fn(
		context: *const OrtKernelContext,
		resouce_version: core::ffi::c_int,
		resource_id: core::ffi::c_int,
		resource: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub SetUserLoggingFunction: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		user_logging_function: OrtLoggingFunction,
		user_logging_param: *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub ShapeInferContext_GetInputCount: unsafe extern "system" fn(context: *const OrtShapeInferContext, out: *mut usize) -> OrtStatusPtr,
	pub ShapeInferContext_GetInputTypeShape:
		unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *mut *mut OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub ShapeInferContext_GetAttribute:
		unsafe extern "system" fn(context: *const OrtShapeInferContext, attr_name: *const core::ffi::c_char, attr: *mut *const OrtOpAttr) -> OrtStatusPtr,
	pub ShapeInferContext_SetOutputTypeShape:
		unsafe extern "system" fn(context: *const OrtShapeInferContext, index: usize, info: *const OrtTensorTypeAndShapeInfo) -> OrtStatusPtr,
	pub SetSymbolicDimensions:
		unsafe extern "system" fn(info: *mut OrtTensorTypeAndShapeInfo, dim_params: *mut *const core::ffi::c_char, dim_params_length: usize) -> OrtStatusPtr,
	pub ReadOpAttr:
		unsafe extern "system" fn(op_attr: *const OrtOpAttr, type_: OrtOpAttrType, data: *mut core::ffi::c_void, len: usize, out: *mut usize) -> OrtStatusPtr,
	pub SetDeterministicCompute: unsafe extern "system" fn(options: *mut OrtSessionOptions, value: bool) -> OrtStatusPtr,
	pub KernelContext_ParallelFor: unsafe extern "system" fn(
		context: *const OrtKernelContext,
		fn_: unsafe extern "system" fn(arg1: *mut core::ffi::c_void, arg2: usize),
		total: usize,
		num_batch: usize,
		usr_data: *mut core::ffi::c_void
	) -> OrtStatusPtr,
	pub SessionOptionsAppendExecutionProvider_OpenVINO_V2: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-18")]
	pub SessionOptionsAppendExecutionProvider_VitisAI: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		provider_options_keys: *const *const core::ffi::c_char,
		provider_options_values: *const *const core::ffi::c_char,
		num_keys: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-18")]
	pub KernelContext_GetScratchBuffer: unsafe extern "system" fn(
		context: *const OrtKernelContext,
		mem_info: *const OrtMemoryInfo,
		count_or_bytes: usize,
		out: *mut *mut core::ffi::c_void
	) -> OrtStatusPtr,
	#[cfg(feature = "api-18")]
	pub KernelInfoGetAllocator: unsafe extern "system" fn(info: *const OrtKernelInfo, mem_type: OrtMemType, out: *mut *mut OrtAllocator) -> OrtStatusPtr,
	#[cfg(feature = "api-18")]
	pub AddExternalInitializersFromMemory: unsafe extern "system" fn(
		options: *mut OrtSessionOptions,
		external_initializer_file_names: *const *const os_char,
		external_initializer_file_buffer_array: *const *mut core::ffi::c_char,
		external_initializer_file_lengths: *const usize,
		num_external_initializer_files: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-20")]
	pub CreateLoraAdapter:
		unsafe extern "system" fn(adapter_file_path: *const os_char, allocator: *mut OrtAllocator, out: *mut *mut OrtLoraAdapter) -> OrtStatusPtr,
	#[cfg(feature = "api-20")]
	pub CreateLoraAdapterFromArray: unsafe extern "system" fn(
		bytes: *const core::ffi::c_void,
		num_bytes: usize,
		allocator: *mut OrtAllocator,
		out: *mut *mut OrtLoraAdapter
	) -> OrtStatusPtr,
	#[cfg(feature = "api-20")]
	pub ReleaseLoraAdapter: unsafe extern "system" fn(input: *mut OrtLoraAdapter),
	#[cfg(feature = "api-20")]
	pub RunOptionsAddActiveLoraAdapter: unsafe extern "system" fn(options: *mut OrtRunOptions, adapter: *const OrtLoraAdapter) -> OrtStatusPtr,
	#[cfg(feature = "api-20")]
	pub SetEpDynamicOptions: unsafe extern "system" fn(
		sess: *mut OrtSession,
		keys: *const *const core::ffi::c_char,
		values: *const *const core::ffi::c_char,
		kv_len: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub ReleaseValueInfo: unsafe extern "system" fn(input: *mut OrtValueInfo),
	#[cfg(feature = "api-22")]
	pub ReleaseNode: unsafe extern "system" fn(input: *mut OrtNode),
	#[cfg(feature = "api-22")]
	pub ReleaseGraph: unsafe extern "system" fn(input: *mut OrtGraph),
	#[cfg(feature = "api-22")]
	pub ReleaseModel: unsafe extern "system" fn(input: *mut OrtModel),
	#[cfg(feature = "api-22")]
	pub GetValueInfoName: unsafe extern "system" fn(value_info: *const OrtValueInfo, name: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub GetValueInfoTypeInfo: unsafe extern "system" fn(value_info: *const OrtValueInfo, type_info: *mut *const OrtTypeInfo) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub GetModelEditorApi: unsafe extern "system" fn() -> *const OrtModelEditorApi,
	#[cfg(feature = "api-22")]
	pub CreateTensorWithDataAndDeleterAsOrtValue: unsafe extern "system" fn(
		deleter: *mut OrtAllocator,
		p_data: *mut c_void,
		p_data_len: usize,
		shape: *const i64,
		shape_len: usize,
		r#type: ONNXTensorElementDataType,
		out: *mut *mut OrtValue
	) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub SessionOptionsSetLoadCancellationFlag: unsafe extern "system" fn(options: *mut OrtSessionOptions, cancel: bool) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub GetCompileApi: unsafe extern "system" fn() -> *const OrtCompileApi,
	#[cfg(feature = "api-22")]
	pub CreateKeyValuePairs: unsafe extern "system" fn(out: *mut *mut OrtKeyValuePairs),
	#[cfg(feature = "api-22")]
	pub AddKeyValuePair: unsafe extern "system" fn(kvps: *mut OrtKeyValuePairs, key: *const c_char, value: *const c_char),
	#[cfg(feature = "api-22")]
	pub GetKeyValue: unsafe extern "system" fn(kvps: *const OrtKeyValuePairs, key: *const c_char) -> *const c_char,
	#[cfg(feature = "api-22")]
	pub GetKeyValuePairs:
		unsafe extern "system" fn(kvps: *const OrtKeyValuePairs, keys: *mut *const *const c_char, values: *mut *const *const c_char, num_entries: *mut usize),
	#[cfg(feature = "api-22")]
	pub RemoveKeyValuePair: unsafe extern "system" fn(kvps: *mut OrtKeyValuePairs, key: *const c_char),
	#[cfg(feature = "api-22")]
	pub ReleaseKeyValuePairs: unsafe extern "system" fn(input: *mut OrtKeyValuePairs),
	#[cfg(feature = "api-22")]
	pub RegisterExecutionProviderLibrary: unsafe extern "system" fn(env: *mut OrtEnv, registration_name: *const c_char, path: *const os_char) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub UnregisterExecutionProviderLibrary: unsafe extern "system" fn(env: *mut OrtEnv, registration_name: *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub GetEpDevices: unsafe extern "system" fn(env: *const OrtEnv, ep_devices: *mut *const *const OrtEpDevice, num_ep_devices: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub SessionOptionsAppendExecutionProvider_V2: unsafe extern "system" fn(
		session_options: *mut OrtSessionOptions,
		env: *mut OrtEnv,
		ep_devices: *const *const OrtEpDevice,
		num_ep_devices: usize,
		ep_option_keys: *const *const c_char,
		ep_option_vals: *const *const c_char,
		num_ep_options: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub SessionOptionsSetEpSelectionPolicy:
		unsafe extern "system" fn(session_options: *mut OrtSessionOptions, policy: OrtExecutionProviderDevicePolicy) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub SessionOptionsSetEpSelectionPolicyDelegate:
		unsafe extern "system" fn(session_options: *mut OrtSessionOptions, delegate: EpSelectionDelegate, delegate_state: *mut c_void) -> OrtStatusPtr,
	#[cfg(feature = "api-22")]
	pub HardwareDevice_Type: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> OrtHardwareDeviceType,
	#[cfg(feature = "api-22")]
	pub HardwareDevice_VendorId: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> u32,
	#[cfg(feature = "api-22")]
	pub HardwareDevice_Vendor: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> *const c_char,
	#[cfg(feature = "api-22")]
	pub HardwareDevice_DeviceId: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> u32,
	#[cfg(feature = "api-22")]
	pub HardwareDevice_Metadata: unsafe extern "system" fn(device: *const OrtHardwareDevice) -> *const OrtKeyValuePairs,
	#[cfg(feature = "api-22")]
	pub EpDevice_EpName: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const c_char,
	#[cfg(feature = "api-22")]
	pub EpDevice_EpVendor: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const c_char,
	#[cfg(feature = "api-22")]
	pub EpDevice_EpMetadata: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtKeyValuePairs,
	#[cfg(feature = "api-22")]
	pub EpDevice_EpOptions: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtKeyValuePairs,
	#[cfg(feature = "api-22")]
	pub EpDevice_Device: unsafe extern "system" fn(ep_device: *const OrtEpDevice) -> *const OrtHardwareDevice,
	#[cfg(feature = "api-22")]
	pub GetEpApi: unsafe extern "system" fn() -> *const OrtEpApi,
	#[cfg(feature = "api-23")]
	pub GetTensorSizeInBytes: unsafe extern "system" fn(ort_value: *const OrtValue, size: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub AllocatorGetStats: unsafe extern "system" fn(ort_allocator: *const OrtAllocator, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub CreateMemoryInfo_V2: unsafe extern "system" fn(
		name: *const c_char,
		device_type: OrtMemoryInfoDeviceType,
		vendor_id: u32,
		device_id: i32,
		mem_type: OrtDeviceMemoryType,
		alignment: usize,
		allocator_type: OrtAllocatorType,
		out: *mut *mut OrtMemoryInfo
	) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub MemoryInfoGetDeviceMemType: unsafe extern "system" fn(ptr: *const OrtMemoryInfo) -> OrtDeviceMemoryType,
	#[cfg(feature = "api-23")]
	pub MemoryInfoGetVendorId: unsafe extern "system" fn(ptr: *const OrtMemoryInfo) -> u32,
	#[cfg(feature = "api-23")]
	pub ValueInfo_GetValueProducer:
		unsafe extern "system" fn(value_info: *const OrtValueInfo, producer_node: *mut *const OrtNode, producer_output_index: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_GetValueNumConsumers: unsafe extern "system" fn(value_info: *const OrtValueInfo, num_consumers: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_GetValueConsumers:
		unsafe extern "system" fn(value_info: *const OrtValueInfo, nodes: *mut *const OrtNode, input_indices: *mut i64, num_consumers: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_GetInitializerValue: unsafe extern "system" fn(value_info: *const OrtValueInfo, initializer_value: *mut *const OrtValue) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_GetExternalInitializerInfo:
		unsafe extern "system" fn(value_info: *const OrtValueInfo, info: *mut *mut OrtExternalInitializerInfo) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_IsRequiredGraphInput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_required_graph_input: *mut bool) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_IsOptionalGraphInput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_optional_graph_input: *mut bool) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_IsGraphOutput: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_graph_output: *mut bool) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_IsConstantInitializer: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_constant_initializer: *mut bool) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ValueInfo_IsFromOuterScope: unsafe extern "system" fn(value_info: *const OrtValueInfo, is_from_outer_scope: *mut bool) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetName: unsafe extern "system" fn(graph: *const OrtGraph, graph_name: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetModelPath: unsafe extern "system" fn(graph: *const OrtGraph, model_path: *mut *const os_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetOnnxIRVersion: unsafe extern "system" fn(graph: *const OrtGraph, onnx_ir_version: *mut i64) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNumOperatorSets: unsafe extern "system" fn(graph: *const OrtGraph, num_operator_sets: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetOperatorSets:
		unsafe extern "system" fn(graph: *const OrtGraph, domains: *mut *const c_char, opset_versions: *mut i64, num_operator_sets: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNumInputs: unsafe extern "system" fn(graph: *const OrtGraph, num_inputs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetInputs: unsafe extern "system" fn(graph: *const OrtGraph, inputs: *mut *const OrtValueInfo, num_inputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNumOutputs: unsafe extern "system" fn(graph: *const OrtGraph, num_outputs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetOutputs: unsafe extern "system" fn(graph: *const OrtGraph, outputs: *mut *const OrtValueInfo, num_outputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNumInitializers: unsafe extern "system" fn(graph: *const OrtGraph, num_initializers: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetInitializers:
		unsafe extern "system" fn(graph: *const OrtGraph, initializers: *mut *const OrtValueInfo, num_initializers: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNumNodes: unsafe extern "system" fn(graph: *const OrtGraph, num_nodes: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetNodes: unsafe extern "system" fn(graph: *const OrtGraph, nodes: *mut *const OrtNode, num_nodes: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetParentNode: unsafe extern "system" fn(graph: *const OrtGraph, node: *mut *const OrtNode) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetGraphView:
		unsafe extern "system" fn(src_graph: *const OrtGraph, nodes: *mut *const OrtNode, num_nodes: usize, dst_graph: *mut *mut OrtGraph) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetId: unsafe extern "system" fn(node: *const OrtNode, node_id: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetName: unsafe extern "system" fn(node: *const OrtNode, node_name: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetOperatorType: unsafe extern "system" fn(node: *const OrtNode, operator_type: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetDomain: unsafe extern "system" fn(node: *const OrtNode, domain_name: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetSinceVersion: unsafe extern "system" fn(node: *const OrtNode, since_version: *mut i32) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetNumInputs: unsafe extern "system" fn(node: *const OrtNode, num_inputs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetInputs: unsafe extern "system" fn(node: *const OrtNode, inputs: *mut *const OrtValueInfo, num_inputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetNumOutputs: unsafe extern "system" fn(node: *const OrtNode, num_outputs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetOutputs: unsafe extern "system" fn(node: *const OrtNode, outputs: *mut *const OrtValueInfo, num_outputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetNumImplicitInputs: unsafe extern "system" fn(node: *const OrtNode, num_implicit_inputs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetImplicitInputs:
		unsafe extern "system" fn(node: *const OrtNode, implicit_inputs: *mut *const OrtValueInfo, num_implicit_inputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetNumAttributes: unsafe extern "system" fn(node: *const OrtNode, num_attributes: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetAttributes: unsafe extern "system" fn(node: *const OrtNode, attributes: *mut *const OrtOpAttr, num_attributes: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetAttributeByName:
		unsafe extern "system" fn(node: *const OrtNode, attribute_name: *const c_char, attribute: *mut *const OrtOpAttr) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub OpAttr_GetTensorAttributeAsOrtValue: unsafe extern "system" fn(attribute: *const OrtOpAttr, attr_tensor: *mut *mut OrtValue) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub OpAttr_GetType: unsafe extern "system" fn(attribute: *const OrtOpAttr, r#type: *mut OrtOpAttrType) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub OpAttr_GetName: unsafe extern "system" fn(attribute: *const OrtOpAttr, name: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetNumSubgraphs: unsafe extern "system" fn(node: *const OrtNode, num_subgraphs: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetSubgraphs: unsafe extern "system" fn(
		node: *const OrtNode,
		subgraphs: *mut *const OrtGraph,
		num_subgraphs: *mut usize,
		attribute_names: *mut *const c_char
	) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetGraph: unsafe extern "system" fn(node: *const OrtNode, graph: *mut *const OrtGraph) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Node_GetEpName: unsafe extern "system" fn(node: *const OrtNode, out: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ReleaseExternalInitializerInfo: unsafe extern "system" fn(value: *mut OrtExternalInitializerInfo),
	#[cfg(feature = "api-23")]
	pub ExternalInitializerInfo_GetFilePath: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> *const os_char,
	#[cfg(feature = "api-23")]
	pub ExternalInitializerInfo_GetFileOffset: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> i64,
	#[cfg(feature = "api-23")]
	pub ExternalInitializerInfo_GetByteSize: unsafe extern "system" fn(info: *const OrtExternalInitializerInfo) -> usize,
	#[cfg(feature = "api-23")]
	pub GetRunConfigEntry: unsafe extern "system" fn(options: *const OrtRunOptions, config_key: *const c_char) -> *const c_char,
	#[cfg(feature = "api-23")]
	pub EpDevice_MemoryInfo: unsafe extern "system" fn(ep_device: *const OrtEpDevice, memory_type: OrtDeviceMemoryType) -> *const OrtMemoryInfo,
	#[cfg(feature = "api-23")]
	pub CreateSharedAllocator: unsafe extern "system" fn(
		env: *mut OrtEnv,
		ep_device: *const OrtEpDevice,
		mem_type: OrtDeviceMemoryType,
		allocator_type: OrtAllocatorType,
		allocator_options: *const OrtKeyValuePairs,
		allocator: *mut *mut OrtAllocator
	) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub GetSharedAllocator: unsafe extern "system" fn(env: *mut OrtEnv, mem_info: *const OrtMemoryInfo, allocator: *mut *mut OrtAllocator) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub ReleaseSharedAllocator: unsafe extern "system" fn(env: *mut OrtEnv, ep_device: *const OrtEpDevice, mem_type: OrtDeviceMemoryType) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub GetTensorData: unsafe extern "system" fn(value: *const OrtValue, out: *mut *const c_void) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub GetSessionOptionsConfigEntries: unsafe extern "system" fn(options: *const OrtSessionOptions, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub SessionGetMemoryInfoForInputs:
		unsafe extern "system" fn(session: *const OrtSession, inputs_memory_info: *mut *const OrtMemoryInfo, num_inputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub SessionGetMemoryInfoForOutputs:
		unsafe extern "system" fn(session: *const OrtSession, outputs_memory_info: *mut *const OrtMemoryInfo, num_outputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub SessionGetEpDeviceForInputs:
		unsafe extern "system" fn(session: *const OrtSession, inputs_ep_devices: *mut *const OrtEpDevice, num_inputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub CreateSyncStreamForEpDevice:
		unsafe extern "system" fn(ep_device: *const OrtEpDevice, stream_options: *const OrtKeyValuePairs, stream: *mut *mut OrtSyncStream) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub SyncStream_GetHandle: unsafe extern "system" fn(stream: *mut OrtSyncStream) -> *mut c_void,
	#[cfg(feature = "api-23")]
	pub ReleaseSyncStream: unsafe extern "system" fn(value: *mut OrtSyncStream),
	#[cfg(feature = "api-23")]
	pub CopyTensors: unsafe extern "system" fn(
		env: *mut OrtEnv,
		src_tensors: *const *const OrtValue,
		dst_tensors: *mut *const OrtValue,
		stream: *mut OrtSyncStream,
		num_tensors: usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub Graph_GetModelMetadata: unsafe extern "system" fn(graph: *mut OrtGraph, out: *mut *mut OrtModelMetadata) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub GetModelCompatibilityForEpDevices: unsafe extern "system" fn(
		ep_devices: *const *const OrtEpDevice,
		num_ep_devices: usize,
		compatibility_info: *const c_char,
		out_status: *mut OrtCompiledModelCompatibility
	) -> OrtStatusPtr,
	#[cfg(feature = "api-23")]
	pub CreateExternalInitializerInfo:
		unsafe extern "system" fn(filepath: *const os_char, file_offset: i64, byte_size: usize, out: *mut *mut OrtExternalInitializerInfo) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub TensorTypeAndShape_HasShape: unsafe extern "system" fn(info: *const OrtTensorTypeAndShapeInfo) -> bool,
	#[cfg(feature = "api-24")]
	pub KernelInfo_GetConfigEntries: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut *mut OrtKeyValuePairs) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub KernelInfo_GetOperatorDomain: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut c_char, size: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub KernelInfo_GetOperatorType: unsafe extern "system" fn(info: *const OrtKernelInfo, out: *mut c_char, size: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub KernelInfo_GetOperatorSinceVersion: unsafe extern "system" fn(info: *const OrtKernelInfo, since_version: *mut i32) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub GetInteropApi: unsafe extern "system" fn() -> *const OrtInteropApi,
	#[cfg(feature = "api-24")]
	pub SessionGetEpDeviceForOutputs:
		unsafe extern "system" fn(session: *const OrtSession, outputs_ep_devices: *mut *const OrtEpDevice, num_outputs: usize) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub GetNumHardwareDevices: unsafe extern "system" fn(env: *const OrtEnv, num_devices: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub GetHardwareDevices: unsafe extern "system" fn(env: *const OrtEnv, devices: *mut *const OrtHardwareDevice, num_devices: *mut usize) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub GetHardwareDeviceEpIncompatibilityDetails: unsafe extern "system" fn(
		env: *const OrtEnv,
		ep_name: *const c_char,
		hw: *const OrtHardwareDevice,
		details: *mut *mut OrtDeviceEpIncompatibilityDetails
	) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub DeviceEpIncompatibilityDetails_GetReasonsBitmask:
		unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, reasons_bitmask: *mut u32) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub DeviceEpIncompatibilityDetails_GetNotes:
		unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, notes: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub DeviceEpIncompatibilityDetails_GetErrorCode:
		unsafe extern "system" fn(details: *const OrtDeviceEpIncompatibilityDetails, error_code: *mut i32) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub ReleaseDeviceEpIncompatibilityDetails: unsafe extern "system" fn(value: *mut OrtDeviceEpIncompatibilityDetails),
	#[cfg(feature = "api-24")]
	pub GetCompatibilityInfoFromModel: unsafe extern "system" fn(
		model_path: *const os_char,
		ep_type: *const c_char,
		allocator: *mut OrtAllocator,
		compatibility_info: *mut *mut c_char
	) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub GetCompatibilityInfoFromModelBytes: unsafe extern "system" fn(
		model_data: *const c_void,
		model_data_length: usize,
		ep_type: *const c_char,
		allocator: *mut OrtAllocator,
		compatibility_info: *mut *mut c_char
	) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub CreateEnvWithOptions: unsafe extern "system" fn(options: *const OrtEnvCreationOptions, out: *mut *mut OrtEnv) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub Session_GetEpGraphAssignmentInfo: unsafe extern "system" fn(
		session: *const OrtSession,
		ep_subgraphs: *mut *const *const OrtEpAssignedSubgraph,
		num_ep_subgraphs: *mut usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub EpAssignedSubgraph_GetEpName: unsafe extern "system" fn(ep_subgraph: *const OrtEpAssignedSubgraph, out: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub EpAssignedSubgraph_GetNodes: unsafe extern "system" fn(
		ep_subgraph: *const OrtEpAssignedSubgraph,
		ep_nodes: *mut *const *const OrtEpAssignedNode,
		num_ep_nodes: *mut usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub EpAssignedNode_GetName: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub EpAssignedNode_GetDomain: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub EpAssignedNode_GetOperatorType: unsafe extern "system" fn(ep_node: *const OrtEpAssignedNode, out: *mut *const c_char) -> OrtStatusPtr,
	#[cfg(feature = "api-24")]
	pub RunOptionsSetSyncStream: unsafe extern "system" fn(options: *mut OrtRunOptions, sync_stream: *mut OrtSyncStream),
	#[cfg(feature = "api-24")]
	pub GetTensorElementTypeAndShapeDataReference: unsafe extern "system" fn(
		value: *const OrtValue,
		elem_type: *mut ONNXTensorElementDataType,
		shape_data: *mut *const i64,
		shape_data_count: *mut usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-25")]
	pub RunOptionsEnableProfiling: unsafe extern "system" fn(options: *mut OrtRunOptions, profile_file_prefix: *const os_char) -> OrtStatusPtr,
	#[cfg(feature = "api-25")]
	pub RunOptionsDisableProfiling: unsafe extern "system" fn(options: *mut OrtRunOptions) -> OrtStatusPtr,
	#[cfg(feature = "api-25")]
	pub KernelInfoGetAttributeArray_string: unsafe extern "system" fn(
		info: *const OrtKernelInfo,
		name: *const c_char,
		allocator: *mut OrtAllocator,
		out: *mut *mut *mut c_char,
		size: *mut usize
	) -> OrtStatusPtr,
	#[cfg(feature = "api-25")]
	pub SetPerSessionThreadPoolCallbacks: unsafe extern "system" fn(env: *mut OrtEnv, config: *const OrtThreadPoolCallbacksConfig) -> OrtStatusPtr,
	#[cfg(feature = "api-27")]
	pub GetMemPatternEnabled: unsafe extern "system" fn(options: *const OrtSessionOptions, out: *mut core::ffi::c_int) -> OrtStatusPtr,
	#[cfg(feature = "api-27")]
	pub GetSessionExecutionMode: unsafe extern "system" fn(options: *const OrtSessionOptions, out: *mut ExecutionMode) -> OrtStatusPtr,
	#[cfg(feature = "api-27")]
	pub SessionReleaseCapturedGraph: unsafe extern "system" fn(session: *mut OrtSession, graph_annotation_id: core::ffi::c_int) -> OrtStatusPtr,
	#[cfg(feature = "api-28")]
	pub GetExperimentalFunction: unsafe extern "system" fn(name: *const c_char) -> *const c_void,
	#[cfg(feature = "api-28")]
	pub KernelContext_GetSyncStream: unsafe extern "system" fn(context: *const OrtKernelContext, out: *mut *mut OrtSyncStream) -> OrtStatusPtr
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum OrtCustomOpInputOutputCharacteristic {
	INPUT_OUTPUT_REQUIRED = 0,
	INPUT_OUTPUT_OPTIONAL = 1,
	INPUT_OUTPUT_VARIADIC = 2
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct OrtCustomOp {
	pub version: u32,
	pub CreateKernel: Option<unsafe extern "system" fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo) -> *mut core::ffi::c_void>,
	pub GetName: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> *const core::ffi::c_char>,
	pub GetExecutionProviderType: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> *const core::ffi::c_char>,
	pub GetInputType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType>,
	pub GetInputTypeCount: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> usize>,
	pub GetOutputType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> ONNXTensorElementDataType>,
	pub GetOutputTypeCount: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> usize>,
	pub KernelCompute: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void, context: *mut OrtKernelContext)>,
	pub KernelDestroy: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void)>,
	pub GetInputCharacteristic: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic>,
	pub GetOutputCharacteristic: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtCustomOpInputOutputCharacteristic>,
	pub GetInputMemoryType: Option<unsafe extern "system" fn(op: *const OrtCustomOp, index: usize) -> OrtMemType>,
	pub GetVariadicInputMinArity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	pub GetVariadicInputHomogeneity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	pub GetVariadicOutputMinArity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	pub GetVariadicOutputHomogeneity: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	pub CreateKernelV2: Option<
		unsafe extern "system" fn(op: *const OrtCustomOp, api: *const OrtApi, info: *const OrtKernelInfo, kernel: *mut *mut core::ffi::c_void) -> OrtStatusPtr
	>,
	pub KernelComputeV2: Option<unsafe extern "system" fn(op_kernel: *mut core::ffi::c_void, context: *mut OrtKernelContext) -> OrtStatusPtr>,
	pub InferOutputShapeFn: Option<unsafe extern "system" fn(op: *const OrtCustomOp, arg1: *mut OrtShapeInferContext) -> OrtStatusPtr>,
	pub GetStartVersion: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	pub GetEndVersion: Option<unsafe extern "system" fn(op: *const OrtCustomOp) -> core::ffi::c_int>,
	#[cfg(feature = "api-18")]
	pub GetMayInplace: Option<unsafe extern "system" fn(input_index: *mut *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int) -> usize>,
	#[cfg(feature = "api-18")]
	pub ReleaseMayInplace: Option<unsafe extern "system" fn(input_index: *mut core::ffi::c_int, output_index: *mut core::ffi::c_int)>,
	#[cfg(feature = "api-18")]
	pub GetAliasMap: Option<unsafe extern "system" fn(input_index: *mut *mut core::ffi::c_int, output_index: *mut *mut core::ffi::c_int) -> usize>,
	#[cfg(feature = "api-18")]
	pub ReleaseAliasMap: Option<unsafe extern "system" fn(input_index: *mut core::ffi::c_int, output_index: *mut core::ffi::c_int)>
}
unsafe extern "system" {
	pub fn OrtSessionOptionsAppendExecutionProvider_CUDA(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
	pub fn OrtSessionOptionsAppendExecutionProvider_ROCM(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
	pub fn OrtSessionOptionsAppendExecutionProvider_MIGraphX(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
	pub fn OrtSessionOptionsAppendExecutionProvider_Dnnl(options: *mut OrtSessionOptions, use_arena: core::ffi::c_int) -> OrtStatusPtr;
	pub fn OrtSessionOptionsAppendExecutionProvider_Tensorrt(options: *mut OrtSessionOptions, device_id: core::ffi::c_int) -> OrtStatusPtr;
}