rsspice 0.1.0

Pure Rust port of the SPICE Toolkit for space geometry
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
use std::fmt::Formatter;

pub type Result<T> = std::result::Result<T, Error>;

/// SPICELIB errors.
///
/// If a SPICELIB function can fail, it will return [`rsspice::Result<_>`](Result).
/// This includes failures reported through SPICE's error system;
/// the possible errors are documented with each function.
/// It also includes unhandled IO errors,
/// attempts by the FORTRAN code to terminate the process with `STOP`/`EXIT`
/// (these are translated into `Error` so multithreaded applications can handle them nicely),
/// and other internal errors.
///
/// For example, [`str2et`](crate::raw::str2et) is documented as signaling `SPICE(UNPARSEDTIME)`.
/// In the Rust API, it will return `Err(Error::UNPARSEDTIME(long_description))`.
/// In most cases, you can catch any expected errors, react appropriately,
/// then continue using the same `SpiceContext`.
///
/// ```
/// # use rsspice::*;
/// # let mut spice = SpiceContext::new();
/// # spice.furnsh("testdata/lsk/naif0012.tls").unwrap();
/// assert!(matches!(spice.str2et("bogus"), Err(Error::UNPARSEDTIME(..))));
///
/// // Continue using the same context
/// assert!(spice.str2et("2000-01-01T00:00:00").is_ok());
/// ```
///
/// ## Details
///
/// We configure [SPICELIB's error handling mechanism](crate::required_reading::error) in
/// `RETURN` mode, meaning it will report errors then return up the call stack.
/// Once it reaches the Rust API wrapper, we use `GETSMS`/`GETLMS` to get the error
/// message and map it onto the matching `Error` value, then `RESET` the SPICELIB error state.
///
/// You should not use SPICELIB's error API directly, as it will likely conflict
/// with this wrapper.
pub enum Error {
    InternalError(f2rust_std::Error),

    // This should never happen,
    UnknownSpiceError(String, String),

    // rg "^\s*CALL\s*SIGERR\s*\(" tspice/src/spicelib/ | perl -lne'/SPICE\((.*?)\)/; print "$1(String),"' | sort -u
    ADDRESSOUTOFBOUNDS(String),
    AGENTLISTOVERFLOW(String),
    ARRAYSIZEMISMATCH(String),
    ARRAYTOOSMALL(String),
    AVALOUTOFRANGE(String),
    AXISUNDERFLOW(String),
    BADACTION(String),
    BADADDRESS(String),
    BADARRAYSIZE(String),
    BADATTRIBUTE(String),
    BADATTRIBUTES(String),
    BADAXIS(String),
    BADAXISLENGTH(String),
    BADAXISNUMBERS(String),
    BADBLOCKSIZE(String),
    BADBORESIGHTSPEC(String),
    BADBOUNDARY(String),
    BADCATALOGFILE(String),
    BADCK1SEGMENT(String),
    BADCK3SEGMENT(String),
    BADCOARSEVOXSCALE(String),
    BADCOLUMDECL(String),
    BADCOLUMNCOUNT(String),
    BADCOLUMNDECL(String),
    BADCOMMENTAREA(String),
    BADCOORDBOUNDS(String),
    BADCOORDSYS(String),
    BADCURVETYPE(String),
    BADDAFTRANSFERFILE(String),
    BADDASCOMMENTAREA(String),
    BADDASDIRECTORY(String),
    BADDASFILE(String),
    BADDASTRANSFERFILE(String),
    BADDEFAULTVALUE(String),
    BADDESCRTIMES(String),
    BADDIMENSION(String),
    BADDIMENSIONS(String),
    BADDIRECTION(String),
    BADECCENTRICITY(String),
    BADENDPOINTS(String),
    BADFINEVOXELSCALE(String),
    BADFRAME(String),
    BADFRAMECLASS(String),
    BADFRAMECOUNT(String),
    BADFRAMESPEC(String),
    BADFRAMESPEC2(String),
    BADGEOMETRY(String),
    BADGM(String),
    BADINDEX(String),
    BADINITSTATE(String),
    BADKERNELVARTYPE(String),
    BADLATITUDEBOUNDS(String),
    BADLATITUDERANGE(String),
    BADLATUSRECTUM(String),
    BADLEAPSECONDS(String),
    BADLIMBLOCUSMIX(String),
    BADLONGITUDERANGE(String),
    BADMEANMOTION(String),
    BADMECCENTRICITY(String),
    BADMETHODSYNTAX(String),
    BADMSEMIMAJOR(String),
    BADPARTNUMBER(String),
    BADPECCENTRICITY(String),
    BADPERIAPSEVALUE(String),
    BADPICTURE(String),
    BADPLATECOUNT(String),
    BADPRIORITYSPEC(String),
    BADQUATSIGN(String),
    BADRADIUS(String),
    BADRADIUSCOUNT(String),
    BADRECORDCOUNT(String),
    BADREFVECTORSPEC(String),
    BADROWCOUNT(String),
    BADSEMIAXIS(String),
    BADSEMILATUS(String),
    BADSHAPE(String),
    BADSOURCERADIUS(String),
    BADSTARINDEX(String),
    BADSTDIONAME(String),
    BADSTOPTIME(String),
    BADSUBSTR(String),
    BADSUBSTRINGBOUNDS(String),
    BADSURFACEMAP(String),
    BADTERMLOCUSMIX(String),
    BADTIMEBOUNDS(String),
    BADTIMECASE(String),
    BADTIMEITEM(String),
    BADTIMESPEC(String),
    BADTIMESTRING(String),
    BADTIMETYPE(String),
    BADTLE(String),
    BADTYPESHAPECOMBO(String),
    BADVARASSIGN(String),
    BADVARIABLESIZE(String),
    BADVARIABLETYPE(String),
    BADVARNAME(String),
    BADVECTOR(String),
    BADVERTEXCOUNT(String),
    BADVERTEXINDEX(String),
    BADWINDOWSIZE(String),
    BARRAYTOOSMALL(String),
    BARYCENTEREPHEM(String),
    BARYCENTERIDCODE(String),
    BEFOREBEGSTR(String),
    BLANKFILENAME(String),
    BLANKFILETYPE(String),
    BLANKNAMEASSIGNED(String),
    BLOCKSNOTEVEN(String),
    BODIESNOTDISTINCT(String),
    BODYANDCENTERSAME(String),
    BOGUSENTRY(String),
    BORESIGHTMISSING(String),
    BOUNDARYMISSING(String),
    BOUNDARYTOOBIG(String),
    BOUNDSDISAGREE(String),
    BOUNDSOUTOFORDER(String),
    BUFFEROVERFLOW(String),
    BUFFERTOOSMALL(String),
    BUG(String),
    BUG0(String),
    BUG1(String),
    BUG2(String),
    BUG3(String),
    BUG4(String),
    BUG5(String),
    CALLCKBSSFIRST(String),
    CALLEDOUTOFORDER(String),
    CALLZZDSKBSSFIRST(String),
    CANNOTFINDGRP(String),
    CANNOTGETPACKET(String),
    CANTFINDFRAME(String),
    CANTGETROTATIONTYPE(String),
    CELLARRAYTOOSMALL(String),
    CELLTOOSMALL(String),
    CKBOGUSENTRY(String),
    CKNONEXISTREC(String),
    CKTOOMANYFILES(String),
    CKUNKNOWNDATATYPE(String),
    CKWRONGDATATYPE(String),
    COARSEGRIDOVERFLOW(String),
    COLDESCTABLEFULL(String),
    COLUMNTOOSMALL(String),
    COMMENTTOOLONG(String),
    COMPETINGEPOCHSPEC(String),
    COMPETINGFRAMESPEC(String),
    COORDSYSNOTREC(String),
    COUNTMISMATCH(String),
    COUNTTOOLARGE(String),
    COVERAGEGAP(String),
    CROSSANGLEMISSING(String),
    DAFBADCRECLEN(String),
    DAFBEGGTEND(String),
    DAFCRNOTFOUND(String),
    DAFDPWRITEFAIL(String),
    DAFFRNOTFOUND(String),
    DAFFTFULL(String),
    DAFILLEGWRITE(String),
    DAFINVALIDACCESS(String),
    DAFINVALIDPARAMS(String),
    DAFNEGADDR(String),
    DAFNEWCONFLICT(String),
    DAFNOIFNMATCH(String),
    DAFNONAMEMATCH(String),
    DAFNORESV(String),
    DAFNOSEARCH(String),
    DAFNOSUCHADDR(String),
    DAFNOSUCHFILE(String),
    DAFNOSUCHHANDLE(String),
    DAFNOSUCHUNIT(String),
    DAFNOWRITE(String),
    DAFOVERFLOW(String),
    DAFREADFAIL(String),
    DAFWRITEFAIL(String),
    DASFILEREADFAILED(String),
    DASFILEWRITEFAILED(String),
    DASFTFULL(String),
    DASINVALIDACCESS(String),
    DASINVALIDCOUNT(String),
    DASINVALIDTYPE(String),
    DASNOSUCHADDRESS(String),
    DASNOSUCHFILE(String),
    DASNOSUCHHANDLE(String),
    DASNOSUCHUNIT(String),
    DASNOTEMPTY(String),
    DASREADFAIL(String),
    DASWRITEFAIL(String),
    DATEEXPECTED(String),
    DECODINGERROR(String),
    DEGENERATECASE(String),
    DEGENERATEINTERVAL(String),
    DEGENERATESURFACE(String),
    DEGREEOUTOFRANGE(String),
    DEPENDENTVECTORS(String),
    DEVICENAMETOOLONG(String),
    DIFFLINETOOLARGE(String),
    DIFFLINETOOSMALL(String),
    DISARRAY(String),
    DISORDER(String),
    DIVIDEBYZERO(String),
    DSKBOGUSENTRY(String),
    DSKDATANOTFOUND(String),
    DSKTOOMANYFILES(String),
    DTOUTOFRANGE(String),
    DUBIOUSMETHOD(String),
    ECCOUTOFBOUNDS(String),
    ECCOUTOFRANGE(String),
    EKCOLATTRTABLEFULL(String),
    EKCOLNUMMISMATCH(String),
    EKFILETABLEFULL(String),
    EKMISSINGCOLUMN(String),
    EKNOSEGMENTS(String),
    EKSEGTABLEFULL(String),
    EKTABLELISTFULL(String),
    ELEMENTSTOOSHORT(String),
    EMPTYSEGMENT(String),
    ENDPOINTSMATCH(String),
    EVECOUTOFRANGE(String),
    EVILBOGUSENTRY(String),
    EXTERNALOPEN(String),
    FACENOTFOUND(String),
    FILARCHMISMATCH(String),
    FILARCMISMATCH(String),
    FILECURRENTLYOPEN(String),
    FILEDELETEFAILED(String),
    FILEDOESNOTEXIST(String),
    FILEISNOTSPK(String),
    FILENAMETOOLONG(String),
    FILENOTCONNECTED(String),
    FILENOTFOUND(String),
    FILENOTOPEN(String),
    FILEOPENCONFLICT(String),
    FILEOPENERROR(String),
    FILEOPENFAIL(String),
    FILEOPENFAILED(String),
    FILEREADFAILED(String),
    FILETABLEFULL(String),
    FILEWRITEFAILED(String),
    FORMATERROR(String),
    FOVTOOWIDE(String),
    FRAMEDATANOTFOUND(String),
    FRAMEDEFERROR(String),
    FRAMEIDNOTFOUND(String),
    FRAMEINFONOTFOUND(String),
    FRAMEMISSING(String),
    FRAMENAMENOTFOUND(String),
    FTFULL(String),
    FTPXFERERROR(String),
    GRIDTOOLARGE(String),
    HANDLENOTFOUND(String),
    HASHISFULL(String),
    HLULOCKFAILED(String),
    IDCODENOTFOUND(String),
    IDSTRINGTOOLONG(String),
    ILLEGALCHARACTER(String),
    ILLEGSHIFTDIR(String),
    IMMUTABLEVALUE(String),
    IMPROPEROPEN(String),
    INCOMPATIBLEEOL(String),
    INCOMPATIBLENUMREF(String),
    INCOMPATIBLESCALE(String),
    INCOMPATIBLEUNITS(String),
    INCOMPLETEFRAME(String),
    INDEXOUTOFRANGE(String),
    INDEXTOOLARGE(String),
    INDICESOUTOFORDER(String),
    INPUTOUTOFBOUNDS(String),
    INPUTSTOOLARGE(String),
    INQUIREERROR(String),
    INQUIREFAILED(String),
    INSIDEBODY(String),
    INSUFFICIENTANGLES(String),
    INSUFFLEN(String),
    INTINDEXTOOSMALL(String),
    INTLENNOTPOS(String),
    INTOUTOFRANGE(String),
    INVALIDACCESS(String),
    INVALIDACTION(String),
    INVALIDADD(String),
    INVALIDADDRESS(String),
    INVALIDANGLE(String),
    INVALIDARCHTYPE(String),
    INVALIDARGUMENT(String),
    INVALIDAXIS(String),
    INVALIDAXISLENGTH(String),
    INVALIDCARDINALITY(String),
    INVALIDCASE(String),
    INVALIDCONSTSTEP(String),
    INVALIDCOUNT(String),
    INVALIDDATATYPE(String),
    INVALIDDEGREE(String),
    INVALIDDESCRTIME(String),
    INVALIDDIMENSION(String),
    INVALIDDIRECTION(String),
    INVALIDDIVISOR(String),
    INVALIDELLIPSE(String),
    INVALIDENDPNTSPEC(String),
    INVALIDEPOCH(String),
    INVALIDFILETYPE(String),
    INVALIDFIXREF(String),
    INVALIDFORMAT(String),
    INVALIDFOV(String),
    INVALIDFRAME(String),
    INVALIDFRAMEDEF(String),
    INVALIDGEOMETRY(String),
    INVALIDHANDLE(String),
    INVALIDINDEX(String),
    INVALIDLIMBTYPE(String),
    INVALIDLISTITEM(String),
    INVALIDLOCUS(String),
    INVALIDLONEXTENT(String),
    INVALIDMETADATA(String),
    INVALIDMETHOD(String),
    INVALIDMSGTYPE(String),
    INVALIDNAME(String),
    INVALIDNODE(String),
    INVALIDNUMINT(String),
    INVALIDNUMINTS(String),
    INVALIDNUMREC(String),
    INVALIDOCCTYPE(String),
    INVALIDOPERATION(String),
    INVALIDOPTION(String),
    INVALIDPLANE(String),
    INVALIDRADII(String),
    INVALIDRADIUS(String),
    INVALIDREFFRAME(String),
    INVALIDROLLSTEP(String),
    INVALIDSCLKRATE(String),
    INVALIDSCLKSTRING(String),
    INVALIDSCLKTIME(String),
    INVALIDSEARCHSTEP(String),
    INVALIDSELECTION(String),
    INVALIDSHADOW(String),
    INVALIDSHAPE(String),
    INVALIDSHAPECOMBO(String),
    INVALIDSIZE(String),
    INVALIDSTARTTIME(String),
    INVALIDSTATE(String),
    INVALIDSTEP(String),
    INVALIDSTEPSIZE(String),
    INVALIDSUBLIST(String),
    INVALIDSUBTYPE(String),
    INVALIDTABLENAME(String),
    INVALIDTABLESIZE(String),
    INVALIDTARGET(String),
    INVALIDTERMTYPE(String),
    INVALIDTEXT(String),
    INVALIDTIMEFORMAT(String),
    INVALIDTIMESTRING(String),
    INVALIDTOLERANCE(String),
    INVALIDTYPE(String),
    INVALIDVALUE(String),
    INVALIDVERTEX(String),
    IRFNOTREC(String),
    ITEMNOTFOUND(String),
    ITEMNOTRECOGNIZED(String),
    ITERATIONEXCEEDED(String),
    KERNELPOOLFULL(String),
    KERNELVARNOTFOUND(String),
    KERVARSETOVERFLOW(String),
    KERVARTOOBIG(String),
    LOWERBOUNDTOOLOW(String),
    MALFORMEDSEGMENT(String),
    MARKERNOTFOUND(String),
    MESSAGETOOLONG(String),
    MISSINGDATA(String),
    MISSINGFRAMEVAR(String),
    MISSINGKPV(String),
    MISSINGTIMEINFO(String),
    MISSINGVALUE(String),
    NAMESNOTRESOLVED(String),
    NAMETABLEFULL(String),
    NEGATIVEHASHVALUE1(String),
    NEGATIVEHASHVALUE2(String),
    NEGATIVETOL(String),
    NOARRAYSTARTED(String),
    NOAVDATA(String),
    NOCLASS(String),
    NOCONVERG(String),
    NOCONVERGENCE(String),
    NOCURRENTARRAY(String),
    NODETOOFULL(String),
    NODSKSEGMENTS(String),
    NOFRAME(String),
    NOFRAMECONNECT(String),
    NOFRAMEDATA(String),
    NOFRAMEINFO(String),
    NOFRAMENAME(String),
    NOFREELOGICALUNIT(String),
    NOFREENODES(String),
    NOINTERVAL(String),
    NOLEAPSECONDS(String),
    NOLOADEDDSKFILES(String),
    NOLOADEDFILES(String),
    NOMOREROOM(String),
    NONCONICMOTION(String),
    NONEMPTYENTRY(String),
    NONEMPTYTREE(String),
    NONEXISTELEMENTS(String),
    NONPOSITIVEAXIS(String),
    NONPOSITIVEMASS(String),
    NONPOSITIVERADIUS(String),
    NONPOSITIVESCALE(String),
    NONPOSITIVEVALUE(String),
    NONPOSPACKETSIZE(String),
    NONPRINTABLECHARS(String),
    NONPRINTINGCHAR(String),
    NONPRINTINGCHARS(String),
    NONUNITNORMAL(String),
    NOPARTITION(String),
    NOPICTURE(String),
    NOSEGMENTSFOUND(String),
    NOSEPARATION(String),
    NOSUCHFILE(String),
    NOSUCHHANDLE(String),
    NOSUCHSYMBOL(String),
    NOTADAFFILE(String),
    NOTADASFILE(String),
    NOTADPNUMBER(String),
    NOTANINTEGER(String),
    NOTAROTATION(String),
    NOTCOMPUTABLE(String),
    NOTDISJOINT(String),
    NOTDISTINCT(String),
    NOTINDEXED(String),
    NOTINITIALIZED(String),
    NOTINPART(String),
    NOTRANSLATION(String),
    NOTRECOGNIZED(String),
    NOTSEMCHECKED(String),
    NOTSUPPORTED(String),
    NUMBEREXPECTED(String),
    NUMCOEFFSNOTPOS(String),
    NUMCONSTANTSNEG(String),
    NUMERICOVERFLOW(String),
    NUMPACKETSNOTPOS(String),
    NUMPARTSUNEQUAL(String),
    NUMSTATESNOTPOS(String),
    OBJECTSTOOCLOSE(String),
    ORBITDECAY(String),
    OUTOFRANGE(String),
    OUTOFROOM(String),
    OUTPUTTOOSHORT(String),
    PARTIALFRAMESPEC(String),
    PASTENDSTR(String),
    PATHMISMATCH(String),
    PATHTOOLONG(String),
    PCKFILETABLEFULL(String),
    PCKKRECTOOLARGE(String),
    PLATELISTTOOSMALL(String),
    POINTEROUTOFRANGE(String),
    POINTERTABLEFULL(String),
    POINTNOTFOUND(String),
    POINTNOTINSEGMENT(String),
    POINTNOTONSURFACE(String),
    POINTOFFSURFACE(String),
    POINTONZAXIS(String),
    POINTTOOSMALL(String),
    PTRARRAYTOOSMALL(String),
    QUERYFAILURE(String),
    QUERYNOTPARSED(String),
    RADIIOUTOFORDER(String),
    RAYISZEROVECTOR(String),
    READFAILED(String),
    RECORDNOTFOUND(String),
    RECURSIONTOODEEP(String),
    RECURSIVELOADING(String),
    REFANGLEMISSING(String),
    REFVALNOTINTEGER(String),
    REFVECTORMISSING(String),
    REQUESTOUTOFBOUNDS(String),
    REQUESTOUTOFORDER(String),
    RWCONFLICT(String),
    SCLKTRUNCATED(String),
    SEGIDTOOLONG(String),
    SEGMENTNOTFOUND(String),
    SEGMENTTABLEFULL(String),
    SEGTABLETOOSMALL(String),
    SEGTYPECONFLICT(String),
    SETEXCESS(String),
    SETTOOSMALL(String),
    SHAPEMISSING(String),
    SHAPENOTSUPPORTED(String),
    SIZEMISMATCH(String),
    SIZEOUTOFRANGE(String),
    SPCRFLNOTCALLED(String),
    SPICEISTIRED(String),
    SPKFILETABLEFULL(String),
    SPKINSUFFDATA(String),
    SPKINVALIDOPTION(String),
    SPKNOTASUBSET(String),
    SPKRECTOOLARGE(String),
    SPKREFNOTSUPP(String),
    SPKSTRUCTUREERROR(String),
    SPKTYPENOTSUPP(String),
    STFULL(String),
    STRINGTOOSHORT(String),
    STRINGTRUNCATED(String),
    SUBORBITAL(String),
    SUBPOINTNOTFOUND(String),
    SYNTAXERROR(String),
    TABLENOTLOADED(String),
    TIMECONFLICT(String),
    TIMEOUTOFBOUNDS(String),
    TIMESDONTMATCH(String),
    TIMESOUTOFORDER(String),
    TIMEZONEERROR(String),
    TOOFEWPACKETS(String),
    TOOFEWPLATES(String),
    TOOFEWSTATES(String),
    TOOFEWVERTICES(String),
    TOOFEWWINDOWS(String),
    TOOMANYBASEFRAMES(String),
    TOOMANYFILESOPEN(String),
    TOOMANYHITS(String),
    TOOMANYPAIRS(String),
    TOOMANYPARTS(String),
    TOOMANYSURFACES(String),
    TOOMANYWATCHES(String),
    TRANSFERFILE(String),
    TYPE1TEXTEK(String),
    TYPEMISMATCH(String),
    TYPENOTSUPPORTED(String),
    UNALLOCATEDNODE(String),
    UNDEFINEDFRAME(String),
    UNINITIALIZED(String),
    UNINITIALIZEDHASH(String),
    UNINITIALIZEDVALUE(String),
    UNITSMISSING(String),
    UNITSNOTREC(String),
    UNKNONWNTIMESYSTEM(String),
    UNKNOWNBFF(String),
    UNKNOWNCKMETA(String),
    UNKNOWNCOMPARE(String),
    UNKNOWNFILARC(String),
    UNKNOWNFRAME(String),
    UNKNOWNFRAME2(String),
    UNKNOWNFRAMESPEC(String),
    UNKNOWNFRAMETYPE(String),
    UNKNOWNID(String),
    UNKNOWNINCLUSION(String),
    UNKNOWNINDEXTYPE(String),
    UNKNOWNKERNELTYPE(String),
    UNKNOWNMETAITEM(String),
    UNKNOWNMODE(String),
    UNKNOWNOP(String),
    UNKNOWNPCKTYPE(String),
    UNKNOWNREFDIR(String),
    UNKNOWNSPKTYPE(String),
    UNKNOWNSYSTEM(String),
    UNMATCHENDPTS(String),
    UNNATURALRELATION(String),
    UNORDEREDREFS(String),
    UNORDEREDTIMES(String),
    UNPARSEDQUERY(String),
    UNPARSEDTIME(String),
    UNRECOGNIZEDACTION(String),
    UNRECOGNIZEDTYPE(String),
    UNRESOLVEDNAMES(String),
    UNRESOLVEDTIMES(String),
    UNSUPPORTEDARCH(String),
    UNSUPPORTEDBFF(String),
    UNSUPPORTEDMETHOD(String),
    UNSUPPORTEDSPEC(String),
    UPDATEPENDING(String),
    UTFULL(String),
    VALUEOUTOFRANGE(String),
    VALUETABLEFULL(String),
    VARIABLENOTFOUND(String),
    VARNAMETOOLONG(String),
    VECTORTOOBIG(String),
    VERSIONMISMATCH1(String),
    VERSIONMISMATCH2(String),
    VERTEXNOTINGRID(String),
    WINDOWEXCESS(String),
    WINDOWSTOOSMALL(String),
    WINDOWTOOSMALL(String),
    WORKSPACETOOSMALL(String),
    WRITEERROR(String),
    WRITEFAILED(String),
    WRONGARCHITECTURE(String),
    WRONGCKTYPE(String),
    WRONGCONIC(String),
    WRONGDATATYPE(String),
    WRONGSEGMENT(String),
    WRONGSPKTYPE(String),
    YEAROUTOFRANGE(String),
    ZEROBORESIGHT(String),
    ZEROBOUNDSEXTENT(String),
    ZEROFRAMEID(String),
    ZEROLENGTHCOLUMN(String),
    ZEROPOSITION(String),
    ZEROQUATERNION(String),
    ZEROSTEP(String),
    ZEROVECTOR(String),
    ZEROVELOCITY(String),
    ZZHOLDDGETFAILED(String),
}

impl Error {
    pub(crate) fn from_spice(short: &str, long: &str) -> Self {
        let long = long.to_owned();
        if let Some(kind) = short
            .strip_prefix("SPICE(")
            .and_then(|s| s.strip_suffix(")"))
        {
            match kind {
                // rg "^\s*CALL\s*SIGERR\s*\(" tspice/src/spicelib/ | perl -lne'/SPICE\((.*?)\)/; print qq{"$1" => Error::$1(long),}' | sort -u
                "ADDRESSOUTOFBOUNDS" => Error::ADDRESSOUTOFBOUNDS(long),
                "AGENTLISTOVERFLOW" => Error::AGENTLISTOVERFLOW(long),
                "ARRAYSIZEMISMATCH" => Error::ARRAYSIZEMISMATCH(long),
                "ARRAYTOOSMALL" => Error::ARRAYTOOSMALL(long),
                "AVALOUTOFRANGE" => Error::AVALOUTOFRANGE(long),
                "AXISUNDERFLOW" => Error::AXISUNDERFLOW(long),
                "BADACTION" => Error::BADACTION(long),
                "BADADDRESS" => Error::BADADDRESS(long),
                "BADARRAYSIZE" => Error::BADARRAYSIZE(long),
                "BADATTRIBUTE" => Error::BADATTRIBUTE(long),
                "BADATTRIBUTES" => Error::BADATTRIBUTES(long),
                "BADAXIS" => Error::BADAXIS(long),
                "BADAXISLENGTH" => Error::BADAXISLENGTH(long),
                "BADAXISNUMBERS" => Error::BADAXISNUMBERS(long),
                "BADBLOCKSIZE" => Error::BADBLOCKSIZE(long),
                "BADBORESIGHTSPEC" => Error::BADBORESIGHTSPEC(long),
                "BADBOUNDARY" => Error::BADBOUNDARY(long),
                "BADCATALOGFILE" => Error::BADCATALOGFILE(long),
                "BADCK1SEGMENT" => Error::BADCK1SEGMENT(long),
                "BADCK3SEGMENT" => Error::BADCK3SEGMENT(long),
                "BADCOARSEVOXSCALE" => Error::BADCOARSEVOXSCALE(long),
                "BADCOLUMDECL" => Error::BADCOLUMDECL(long),
                "BADCOLUMNCOUNT" => Error::BADCOLUMNCOUNT(long),
                "BADCOLUMNDECL" => Error::BADCOLUMNDECL(long),
                "BADCOMMENTAREA" => Error::BADCOMMENTAREA(long),
                "BADCOORDBOUNDS" => Error::BADCOORDBOUNDS(long),
                "BADCOORDSYS" => Error::BADCOORDSYS(long),
                "BADCURVETYPE" => Error::BADCURVETYPE(long),
                "BADDAFTRANSFERFILE" => Error::BADDAFTRANSFERFILE(long),
                "BADDASCOMMENTAREA" => Error::BADDASCOMMENTAREA(long),
                "BADDASDIRECTORY" => Error::BADDASDIRECTORY(long),
                "BADDASFILE" => Error::BADDASFILE(long),
                "BADDASTRANSFERFILE" => Error::BADDASTRANSFERFILE(long),
                "BADDEFAULTVALUE" => Error::BADDEFAULTVALUE(long),
                "BADDESCRTIMES" => Error::BADDESCRTIMES(long),
                "BADDIMENSION" => Error::BADDIMENSION(long),
                "BADDIMENSIONS" => Error::BADDIMENSIONS(long),
                "BADDIRECTION" => Error::BADDIRECTION(long),
                "BADECCENTRICITY" => Error::BADECCENTRICITY(long),
                "BADENDPOINTS" => Error::BADENDPOINTS(long),
                "BADFINEVOXELSCALE" => Error::BADFINEVOXELSCALE(long),
                "BADFRAME" => Error::BADFRAME(long),
                "BADFRAMECLASS" => Error::BADFRAMECLASS(long),
                "BADFRAMECOUNT" => Error::BADFRAMECOUNT(long),
                "BADFRAMESPEC" => Error::BADFRAMESPEC(long),
                "BADFRAMESPEC2" => Error::BADFRAMESPEC2(long),
                "BADGEOMETRY" => Error::BADGEOMETRY(long),
                "BADGM" => Error::BADGM(long),
                "BADINDEX" => Error::BADINDEX(long),
                "BADINITSTATE" => Error::BADINITSTATE(long),
                "BADKERNELVARTYPE" => Error::BADKERNELVARTYPE(long),
                "BADLATITUDEBOUNDS" => Error::BADLATITUDEBOUNDS(long),
                "BADLATITUDERANGE" => Error::BADLATITUDERANGE(long),
                "BADLATUSRECTUM" => Error::BADLATUSRECTUM(long),
                "BADLEAPSECONDS" => Error::BADLEAPSECONDS(long),
                "BADLIMBLOCUSMIX" => Error::BADLIMBLOCUSMIX(long),
                "BADLONGITUDERANGE" => Error::BADLONGITUDERANGE(long),
                "BADMEANMOTION" => Error::BADMEANMOTION(long),
                "BADMECCENTRICITY" => Error::BADMECCENTRICITY(long),
                "BADMETHODSYNTAX" => Error::BADMETHODSYNTAX(long),
                "BADMSEMIMAJOR" => Error::BADMSEMIMAJOR(long),
                "BADPARTNUMBER" => Error::BADPARTNUMBER(long),
                "BADPECCENTRICITY" => Error::BADPECCENTRICITY(long),
                "BADPERIAPSEVALUE" => Error::BADPERIAPSEVALUE(long),
                "BADPICTURE" => Error::BADPICTURE(long),
                "BADPLATECOUNT" => Error::BADPLATECOUNT(long),
                "BADPRIORITYSPEC" => Error::BADPRIORITYSPEC(long),
                "BADQUATSIGN" => Error::BADQUATSIGN(long),
                "BADRADIUS" => Error::BADRADIUS(long),
                "BADRADIUSCOUNT" => Error::BADRADIUSCOUNT(long),
                "BADRECORDCOUNT" => Error::BADRECORDCOUNT(long),
                "BADREFVECTORSPEC" => Error::BADREFVECTORSPEC(long),
                "BADROWCOUNT" => Error::BADROWCOUNT(long),
                "BADSEMIAXIS" => Error::BADSEMIAXIS(long),
                "BADSEMILATUS" => Error::BADSEMILATUS(long),
                "BADSHAPE" => Error::BADSHAPE(long),
                "BADSOURCERADIUS" => Error::BADSOURCERADIUS(long),
                "BADSTARINDEX" => Error::BADSTARINDEX(long),
                "BADSTDIONAME" => Error::BADSTDIONAME(long),
                "BADSTOPTIME" => Error::BADSTOPTIME(long),
                "BADSUBSTR" => Error::BADSUBSTR(long),
                "BADSUBSTRINGBOUNDS" => Error::BADSUBSTRINGBOUNDS(long),
                "BADSURFACEMAP" => Error::BADSURFACEMAP(long),
                "BADTERMLOCUSMIX" => Error::BADTERMLOCUSMIX(long),
                "BADTIMEBOUNDS" => Error::BADTIMEBOUNDS(long),
                "BADTIMECASE" => Error::BADTIMECASE(long),
                "BADTIMEITEM" => Error::BADTIMEITEM(long),
                "BADTIMESPEC" => Error::BADTIMESPEC(long),
                "BADTIMESTRING" => Error::BADTIMESTRING(long),
                "BADTIMETYPE" => Error::BADTIMETYPE(long),
                "BADTLE" => Error::BADTLE(long),
                "BADTYPESHAPECOMBO" => Error::BADTYPESHAPECOMBO(long),
                "BADVARASSIGN" => Error::BADVARASSIGN(long),
                "BADVARIABLESIZE" => Error::BADVARIABLESIZE(long),
                "BADVARIABLETYPE" => Error::BADVARIABLETYPE(long),
                "BADVARNAME" => Error::BADVARNAME(long),
                "BADVECTOR" => Error::BADVECTOR(long),
                "BADVERTEXCOUNT" => Error::BADVERTEXCOUNT(long),
                "BADVERTEXINDEX" => Error::BADVERTEXINDEX(long),
                "BADWINDOWSIZE" => Error::BADWINDOWSIZE(long),
                "BARRAYTOOSMALL" => Error::BARRAYTOOSMALL(long),
                "BARYCENTEREPHEM" => Error::BARYCENTEREPHEM(long),
                "BARYCENTERIDCODE" => Error::BARYCENTERIDCODE(long),
                "BEFOREBEGSTR" => Error::BEFOREBEGSTR(long),
                "BLANKFILENAME" => Error::BLANKFILENAME(long),
                "BLANKFILETYPE" => Error::BLANKFILETYPE(long),
                "BLANKNAMEASSIGNED" => Error::BLANKNAMEASSIGNED(long),
                "BLOCKSNOTEVEN" => Error::BLOCKSNOTEVEN(long),
                "BODIESNOTDISTINCT" => Error::BODIESNOTDISTINCT(long),
                "BODYANDCENTERSAME" => Error::BODYANDCENTERSAME(long),
                "BOGUSENTRY" => Error::BOGUSENTRY(long),
                "BORESIGHTMISSING" => Error::BORESIGHTMISSING(long),
                "BOUNDARYMISSING" => Error::BOUNDARYMISSING(long),
                "BOUNDARYTOOBIG" => Error::BOUNDARYTOOBIG(long),
                "BOUNDSDISAGREE" => Error::BOUNDSDISAGREE(long),
                "BOUNDSOUTOFORDER" => Error::BOUNDSOUTOFORDER(long),
                "BUFFEROVERFLOW" => Error::BUFFEROVERFLOW(long),
                "BUFFERTOOSMALL" => Error::BUFFERTOOSMALL(long),
                "BUG" => Error::BUG(long),
                "BUG0" => Error::BUG0(long),
                "BUG1" => Error::BUG1(long),
                "BUG2" => Error::BUG2(long),
                "BUG3" => Error::BUG3(long),
                "BUG4" => Error::BUG4(long),
                "BUG5" => Error::BUG5(long),
                "CALLCKBSSFIRST" => Error::CALLCKBSSFIRST(long),
                "CALLEDOUTOFORDER" => Error::CALLEDOUTOFORDER(long),
                "CALLZZDSKBSSFIRST" => Error::CALLZZDSKBSSFIRST(long),
                "CANNOTFINDGRP" => Error::CANNOTFINDGRP(long),
                "CANNOTGETPACKET" => Error::CANNOTGETPACKET(long),
                "CANTFINDFRAME" => Error::CANTFINDFRAME(long),
                "CANTGETROTATIONTYPE" => Error::CANTGETROTATIONTYPE(long),
                "CELLARRAYTOOSMALL" => Error::CELLARRAYTOOSMALL(long),
                "CELLTOOSMALL" => Error::CELLTOOSMALL(long),
                "CKBOGUSENTRY" => Error::CKBOGUSENTRY(long),
                "CKNONEXISTREC" => Error::CKNONEXISTREC(long),
                "CKTOOMANYFILES" => Error::CKTOOMANYFILES(long),
                "CKUNKNOWNDATATYPE" => Error::CKUNKNOWNDATATYPE(long),
                "CKWRONGDATATYPE" => Error::CKWRONGDATATYPE(long),
                "COARSEGRIDOVERFLOW" => Error::COARSEGRIDOVERFLOW(long),
                "COLDESCTABLEFULL" => Error::COLDESCTABLEFULL(long),
                "COLUMNTOOSMALL" => Error::COLUMNTOOSMALL(long),
                "COMMENTTOOLONG" => Error::COMMENTTOOLONG(long),
                "COMPETINGEPOCHSPEC" => Error::COMPETINGEPOCHSPEC(long),
                "COMPETINGFRAMESPEC" => Error::COMPETINGFRAMESPEC(long),
                "COORDSYSNOTREC" => Error::COORDSYSNOTREC(long),
                "COUNTMISMATCH" => Error::COUNTMISMATCH(long),
                "COUNTTOOLARGE" => Error::COUNTTOOLARGE(long),
                "COVERAGEGAP" => Error::COVERAGEGAP(long),
                "CROSSANGLEMISSING" => Error::CROSSANGLEMISSING(long),
                "DAFBADCRECLEN" => Error::DAFBADCRECLEN(long),
                "DAFBEGGTEND" => Error::DAFBEGGTEND(long),
                "DAFCRNOTFOUND" => Error::DAFCRNOTFOUND(long),
                "DAFDPWRITEFAIL" => Error::DAFDPWRITEFAIL(long),
                "DAFFRNOTFOUND" => Error::DAFFRNOTFOUND(long),
                "DAFFTFULL" => Error::DAFFTFULL(long),
                "DAFILLEGWRITE" => Error::DAFILLEGWRITE(long),
                "DAFINVALIDACCESS" => Error::DAFINVALIDACCESS(long),
                "DAFINVALIDPARAMS" => Error::DAFINVALIDPARAMS(long),
                "DAFNEGADDR" => Error::DAFNEGADDR(long),
                "DAFNEWCONFLICT" => Error::DAFNEWCONFLICT(long),
                "DAFNOIFNMATCH" => Error::DAFNOIFNMATCH(long),
                "DAFNONAMEMATCH" => Error::DAFNONAMEMATCH(long),
                "DAFNORESV" => Error::DAFNORESV(long),
                "DAFNOSEARCH" => Error::DAFNOSEARCH(long),
                "DAFNOSUCHADDR" => Error::DAFNOSUCHADDR(long),
                "DAFNOSUCHFILE" => Error::DAFNOSUCHFILE(long),
                "DAFNOSUCHHANDLE" => Error::DAFNOSUCHHANDLE(long),
                "DAFNOSUCHUNIT" => Error::DAFNOSUCHUNIT(long),
                "DAFNOWRITE" => Error::DAFNOWRITE(long),
                "DAFOVERFLOW" => Error::DAFOVERFLOW(long),
                "DAFREADFAIL" => Error::DAFREADFAIL(long),
                "DAFWRITEFAIL" => Error::DAFWRITEFAIL(long),
                "DASFILEREADFAILED" => Error::DASFILEREADFAILED(long),
                "DASFILEWRITEFAILED" => Error::DASFILEWRITEFAILED(long),
                "DASFTFULL" => Error::DASFTFULL(long),
                "DASINVALIDACCESS" => Error::DASINVALIDACCESS(long),
                "DASINVALIDCOUNT" => Error::DASINVALIDCOUNT(long),
                "DASINVALIDTYPE" => Error::DASINVALIDTYPE(long),
                "DASNOSUCHADDRESS" => Error::DASNOSUCHADDRESS(long),
                "DASNOSUCHFILE" => Error::DASNOSUCHFILE(long),
                "DASNOSUCHHANDLE" => Error::DASNOSUCHHANDLE(long),
                "DASNOSUCHUNIT" => Error::DASNOSUCHUNIT(long),
                "DASNOTEMPTY" => Error::DASNOTEMPTY(long),
                "DASREADFAIL" => Error::DASREADFAIL(long),
                "DASWRITEFAIL" => Error::DASWRITEFAIL(long),
                "DATEEXPECTED" => Error::DATEEXPECTED(long),
                "DECODINGERROR" => Error::DECODINGERROR(long),
                "DEGENERATECASE" => Error::DEGENERATECASE(long),
                "DEGENERATEINTERVAL" => Error::DEGENERATEINTERVAL(long),
                "DEGENERATESURFACE" => Error::DEGENERATESURFACE(long),
                "DEGREEOUTOFRANGE" => Error::DEGREEOUTOFRANGE(long),
                "DEPENDENTVECTORS" => Error::DEPENDENTVECTORS(long),
                "DEVICENAMETOOLONG" => Error::DEVICENAMETOOLONG(long),
                "DIFFLINETOOLARGE" => Error::DIFFLINETOOLARGE(long),
                "DIFFLINETOOSMALL" => Error::DIFFLINETOOSMALL(long),
                "DISARRAY" => Error::DISARRAY(long),
                "DISORDER" => Error::DISORDER(long),
                "DIVIDEBYZERO" => Error::DIVIDEBYZERO(long),
                "DSKBOGUSENTRY" => Error::DSKBOGUSENTRY(long),
                "DSKDATANOTFOUND" => Error::DSKDATANOTFOUND(long),
                "DSKTOOMANYFILES" => Error::DSKTOOMANYFILES(long),
                "DTOUTOFRANGE" => Error::DTOUTOFRANGE(long),
                "DUBIOUSMETHOD" => Error::DUBIOUSMETHOD(long),
                "ECCOUTOFBOUNDS" => Error::ECCOUTOFBOUNDS(long),
                "ECCOUTOFRANGE" => Error::ECCOUTOFRANGE(long),
                "EKCOLATTRTABLEFULL" => Error::EKCOLATTRTABLEFULL(long),
                "EKCOLNUMMISMATCH" => Error::EKCOLNUMMISMATCH(long),
                "EKFILETABLEFULL" => Error::EKFILETABLEFULL(long),
                "EKMISSINGCOLUMN" => Error::EKMISSINGCOLUMN(long),
                "EKNOSEGMENTS" => Error::EKNOSEGMENTS(long),
                "EKSEGTABLEFULL" => Error::EKSEGTABLEFULL(long),
                "EKTABLELISTFULL" => Error::EKTABLELISTFULL(long),
                "ELEMENTSTOOSHORT" => Error::ELEMENTSTOOSHORT(long),
                "EMPTYSEGMENT" => Error::EMPTYSEGMENT(long),
                "ENDPOINTSMATCH" => Error::ENDPOINTSMATCH(long),
                "EVECOUTOFRANGE" => Error::EVECOUTOFRANGE(long),
                "EVILBOGUSENTRY" => Error::EVILBOGUSENTRY(long),
                "EXTERNALOPEN" => Error::EXTERNALOPEN(long),
                "FACENOTFOUND" => Error::FACENOTFOUND(long),
                "FILARCHMISMATCH" => Error::FILARCHMISMATCH(long),
                "FILARCMISMATCH" => Error::FILARCMISMATCH(long),
                "FILECURRENTLYOPEN" => Error::FILECURRENTLYOPEN(long),
                "FILEDELETEFAILED" => Error::FILEDELETEFAILED(long),
                "FILEDOESNOTEXIST" => Error::FILEDOESNOTEXIST(long),
                "FILEISNOTSPK" => Error::FILEISNOTSPK(long),
                "FILENAMETOOLONG" => Error::FILENAMETOOLONG(long),
                "FILENOTCONNECTED" => Error::FILENOTCONNECTED(long),
                "FILENOTFOUND" => Error::FILENOTFOUND(long),
                "FILENOTOPEN" => Error::FILENOTOPEN(long),
                "FILEOPENCONFLICT" => Error::FILEOPENCONFLICT(long),
                "FILEOPENERROR" => Error::FILEOPENERROR(long),
                "FILEOPENFAIL" => Error::FILEOPENFAIL(long),
                "FILEOPENFAILED" => Error::FILEOPENFAILED(long),
                "FILEREADFAILED" => Error::FILEREADFAILED(long),
                "FILETABLEFULL" => Error::FILETABLEFULL(long),
                "FILEWRITEFAILED" => Error::FILEWRITEFAILED(long),
                "FORMATERROR" => Error::FORMATERROR(long),
                "FOVTOOWIDE" => Error::FOVTOOWIDE(long),
                "FRAMEDATANOTFOUND" => Error::FRAMEDATANOTFOUND(long),
                "FRAMEDEFERROR" => Error::FRAMEDEFERROR(long),
                "FRAMEIDNOTFOUND" => Error::FRAMEIDNOTFOUND(long),
                "FRAMEINFONOTFOUND" => Error::FRAMEINFONOTFOUND(long),
                "FRAMEMISSING" => Error::FRAMEMISSING(long),
                "FRAMENAMENOTFOUND" => Error::FRAMENAMENOTFOUND(long),
                "FTFULL" => Error::FTFULL(long),
                "FTPXFERERROR" => Error::FTPXFERERROR(long),
                "GRIDTOOLARGE" => Error::GRIDTOOLARGE(long),
                "HANDLENOTFOUND" => Error::HANDLENOTFOUND(long),
                "HASHISFULL" => Error::HASHISFULL(long),
                "HLULOCKFAILED" => Error::HLULOCKFAILED(long),
                "IDCODENOTFOUND" => Error::IDCODENOTFOUND(long),
                "IDSTRINGTOOLONG" => Error::IDSTRINGTOOLONG(long),
                "ILLEGALCHARACTER" => Error::ILLEGALCHARACTER(long),
                "ILLEGSHIFTDIR" => Error::ILLEGSHIFTDIR(long),
                "IMMUTABLEVALUE" => Error::IMMUTABLEVALUE(long),
                "IMPROPEROPEN" => Error::IMPROPEROPEN(long),
                "INCOMPATIBLEEOL" => Error::INCOMPATIBLEEOL(long),
                "INCOMPATIBLENUMREF" => Error::INCOMPATIBLENUMREF(long),
                "INCOMPATIBLESCALE" => Error::INCOMPATIBLESCALE(long),
                "INCOMPATIBLEUNITS" => Error::INCOMPATIBLEUNITS(long),
                "INCOMPLETEFRAME" => Error::INCOMPLETEFRAME(long),
                "INDEXOUTOFRANGE" => Error::INDEXOUTOFRANGE(long),
                "INDEXTOOLARGE" => Error::INDEXTOOLARGE(long),
                "INDICESOUTOFORDER" => Error::INDICESOUTOFORDER(long),
                "INPUTOUTOFBOUNDS" => Error::INPUTOUTOFBOUNDS(long),
                "INPUTSTOOLARGE" => Error::INPUTSTOOLARGE(long),
                "INQUIREERROR" => Error::INQUIREERROR(long),
                "INQUIREFAILED" => Error::INQUIREFAILED(long),
                "INSIDEBODY" => Error::INSIDEBODY(long),
                "INSUFFICIENTANGLES" => Error::INSUFFICIENTANGLES(long),
                "INSUFFLEN" => Error::INSUFFLEN(long),
                "INTINDEXTOOSMALL" => Error::INTINDEXTOOSMALL(long),
                "INTLENNOTPOS" => Error::INTLENNOTPOS(long),
                "INTOUTOFRANGE" => Error::INTOUTOFRANGE(long),
                "INVALIDACCESS" => Error::INVALIDACCESS(long),
                "INVALIDACTION" => Error::INVALIDACTION(long),
                "INVALIDADD" => Error::INVALIDADD(long),
                "INVALIDADDRESS" => Error::INVALIDADDRESS(long),
                "INVALIDANGLE" => Error::INVALIDANGLE(long),
                "INVALIDARCHTYPE" => Error::INVALIDARCHTYPE(long),
                "INVALIDARGUMENT" => Error::INVALIDARGUMENT(long),
                "INVALIDAXIS" => Error::INVALIDAXIS(long),
                "INVALIDAXISLENGTH" => Error::INVALIDAXISLENGTH(long),
                "INVALIDCARDINALITY" => Error::INVALIDCARDINALITY(long),
                "INVALIDCASE" => Error::INVALIDCASE(long),
                "INVALIDCONSTSTEP" => Error::INVALIDCONSTSTEP(long),
                "INVALIDCOUNT" => Error::INVALIDCOUNT(long),
                "INVALIDDATATYPE" => Error::INVALIDDATATYPE(long),
                "INVALIDDEGREE" => Error::INVALIDDEGREE(long),
                "INVALIDDESCRTIME" => Error::INVALIDDESCRTIME(long),
                "INVALIDDIMENSION" => Error::INVALIDDIMENSION(long),
                "INVALIDDIRECTION" => Error::INVALIDDIRECTION(long),
                "INVALIDDIVISOR" => Error::INVALIDDIVISOR(long),
                "INVALIDELLIPSE" => Error::INVALIDELLIPSE(long),
                "INVALIDENDPNTSPEC" => Error::INVALIDENDPNTSPEC(long),
                "INVALIDEPOCH" => Error::INVALIDEPOCH(long),
                "INVALIDFILETYPE" => Error::INVALIDFILETYPE(long),
                "INVALIDFIXREF" => Error::INVALIDFIXREF(long),
                "INVALIDFORMAT" => Error::INVALIDFORMAT(long),
                "INVALIDFOV" => Error::INVALIDFOV(long),
                "INVALIDFRAME" => Error::INVALIDFRAME(long),
                "INVALIDFRAMEDEF" => Error::INVALIDFRAMEDEF(long),
                "INVALIDGEOMETRY" => Error::INVALIDGEOMETRY(long),
                "INVALIDHANDLE" => Error::INVALIDHANDLE(long),
                "INVALIDINDEX" => Error::INVALIDINDEX(long),
                "INVALIDLIMBTYPE" => Error::INVALIDLIMBTYPE(long),
                "INVALIDLISTITEM" => Error::INVALIDLISTITEM(long),
                "INVALIDLOCUS" => Error::INVALIDLOCUS(long),
                "INVALIDLONEXTENT" => Error::INVALIDLONEXTENT(long),
                "INVALIDMETADATA" => Error::INVALIDMETADATA(long),
                "INVALIDMETHOD" => Error::INVALIDMETHOD(long),
                "INVALIDMSGTYPE" => Error::INVALIDMSGTYPE(long),
                "INVALIDNAME" => Error::INVALIDNAME(long),
                "INVALIDNODE" => Error::INVALIDNODE(long),
                "INVALIDNUMINT" => Error::INVALIDNUMINT(long),
                "INVALIDNUMINTS" => Error::INVALIDNUMINTS(long),
                "INVALIDNUMREC" => Error::INVALIDNUMREC(long),
                "INVALIDOCCTYPE" => Error::INVALIDOCCTYPE(long),
                "INVALIDOPERATION" => Error::INVALIDOPERATION(long),
                "INVALIDOPTION" => Error::INVALIDOPTION(long),
                "INVALIDPLANE" => Error::INVALIDPLANE(long),
                "INVALIDRADII" => Error::INVALIDRADII(long),
                "INVALIDRADIUS" => Error::INVALIDRADIUS(long),
                "INVALIDREFFRAME" => Error::INVALIDREFFRAME(long),
                "INVALIDROLLSTEP" => Error::INVALIDROLLSTEP(long),
                "INVALIDSCLKRATE" => Error::INVALIDSCLKRATE(long),
                "INVALIDSCLKSTRING" => Error::INVALIDSCLKSTRING(long),
                "INVALIDSCLKTIME" => Error::INVALIDSCLKTIME(long),
                "INVALIDSEARCHSTEP" => Error::INVALIDSEARCHSTEP(long),
                "INVALIDSELECTION" => Error::INVALIDSELECTION(long),
                "INVALIDSHADOW" => Error::INVALIDSHADOW(long),
                "INVALIDSHAPE" => Error::INVALIDSHAPE(long),
                "INVALIDSHAPECOMBO" => Error::INVALIDSHAPECOMBO(long),
                "INVALIDSIZE" => Error::INVALIDSIZE(long),
                "INVALIDSTARTTIME" => Error::INVALIDSTARTTIME(long),
                "INVALIDSTATE" => Error::INVALIDSTATE(long),
                "INVALIDSTEP" => Error::INVALIDSTEP(long),
                "INVALIDSTEPSIZE" => Error::INVALIDSTEPSIZE(long),
                "INVALIDSUBLIST" => Error::INVALIDSUBLIST(long),
                "INVALIDSUBTYPE" => Error::INVALIDSUBTYPE(long),
                "INVALIDTABLENAME" => Error::INVALIDTABLENAME(long),
                "INVALIDTABLESIZE" => Error::INVALIDTABLESIZE(long),
                "INVALIDTARGET" => Error::INVALIDTARGET(long),
                "INVALIDTERMTYPE" => Error::INVALIDTERMTYPE(long),
                "INVALIDTEXT" => Error::INVALIDTEXT(long),
                "INVALIDTIMEFORMAT" => Error::INVALIDTIMEFORMAT(long),
                "INVALIDTIMESTRING" => Error::INVALIDTIMESTRING(long),
                "INVALIDTOLERANCE" => Error::INVALIDTOLERANCE(long),
                "INVALIDTYPE" => Error::INVALIDTYPE(long),
                "INVALIDVALUE" => Error::INVALIDVALUE(long),
                "INVALIDVERTEX" => Error::INVALIDVERTEX(long),
                "IRFNOTREC" => Error::IRFNOTREC(long),
                "ITEMNOTFOUND" => Error::ITEMNOTFOUND(long),
                "ITEMNOTRECOGNIZED" => Error::ITEMNOTRECOGNIZED(long),
                "ITERATIONEXCEEDED" => Error::ITERATIONEXCEEDED(long),
                "KERNELPOOLFULL" => Error::KERNELPOOLFULL(long),
                "KERNELVARNOTFOUND" => Error::KERNELVARNOTFOUND(long),
                "KERVARSETOVERFLOW" => Error::KERVARSETOVERFLOW(long),
                "KERVARTOOBIG" => Error::KERVARTOOBIG(long),
                "LOWERBOUNDTOOLOW" => Error::LOWERBOUNDTOOLOW(long),
                "MALFORMEDSEGMENT" => Error::MALFORMEDSEGMENT(long),
                "MARKERNOTFOUND" => Error::MARKERNOTFOUND(long),
                "MESSAGETOOLONG" => Error::MESSAGETOOLONG(long),
                "MISSINGDATA" => Error::MISSINGDATA(long),
                "MISSINGFRAMEVAR" => Error::MISSINGFRAMEVAR(long),
                "MISSINGKPV" => Error::MISSINGKPV(long),
                "MISSINGTIMEINFO" => Error::MISSINGTIMEINFO(long),
                "MISSINGVALUE" => Error::MISSINGVALUE(long),
                "NAMESNOTRESOLVED" => Error::NAMESNOTRESOLVED(long),
                "NAMETABLEFULL" => Error::NAMETABLEFULL(long),
                "NEGATIVEHASHVALUE1" => Error::NEGATIVEHASHVALUE1(long),
                "NEGATIVEHASHVALUE2" => Error::NEGATIVEHASHVALUE2(long),
                "NEGATIVETOL" => Error::NEGATIVETOL(long),
                "NOARRAYSTARTED" => Error::NOARRAYSTARTED(long),
                "NOAVDATA" => Error::NOAVDATA(long),
                "NOCLASS" => Error::NOCLASS(long),
                "NOCONVERG" => Error::NOCONVERG(long),
                "NOCONVERGENCE" => Error::NOCONVERGENCE(long),
                "NOCURRENTARRAY" => Error::NOCURRENTARRAY(long),
                "NODETOOFULL" => Error::NODETOOFULL(long),
                "NODSKSEGMENTS" => Error::NODSKSEGMENTS(long),
                "NOFRAME" => Error::NOFRAME(long),
                "NOFRAMECONNECT" => Error::NOFRAMECONNECT(long),
                "NOFRAMEDATA" => Error::NOFRAMEDATA(long),
                "NOFRAMEINFO" => Error::NOFRAMEINFO(long),
                "NOFRAMENAME" => Error::NOFRAMENAME(long),
                "NOFREELOGICALUNIT" => Error::NOFREELOGICALUNIT(long),
                "NOFREENODES" => Error::NOFREENODES(long),
                "NOINTERVAL" => Error::NOINTERVAL(long),
                "NOLEAPSECONDS" => Error::NOLEAPSECONDS(long),
                "NOLOADEDDSKFILES" => Error::NOLOADEDDSKFILES(long),
                "NOLOADEDFILES" => Error::NOLOADEDFILES(long),
                "NOMOREROOM" => Error::NOMOREROOM(long),
                "NONCONICMOTION" => Error::NONCONICMOTION(long),
                "NONEMPTYENTRY" => Error::NONEMPTYENTRY(long),
                "NONEMPTYTREE" => Error::NONEMPTYTREE(long),
                "NONEXISTELEMENTS" => Error::NONEXISTELEMENTS(long),
                "NONPOSITIVEAXIS" => Error::NONPOSITIVEAXIS(long),
                "NONPOSITIVEMASS" => Error::NONPOSITIVEMASS(long),
                "NONPOSITIVERADIUS" => Error::NONPOSITIVERADIUS(long),
                "NONPOSITIVESCALE" => Error::NONPOSITIVESCALE(long),
                "NONPOSITIVEVALUE" => Error::NONPOSITIVEVALUE(long),
                "NONPOSPACKETSIZE" => Error::NONPOSPACKETSIZE(long),
                "NONPRINTABLECHARS" => Error::NONPRINTABLECHARS(long),
                "NONPRINTINGCHAR" => Error::NONPRINTINGCHAR(long),
                "NONPRINTINGCHARS" => Error::NONPRINTINGCHARS(long),
                "NONUNITNORMAL" => Error::NONUNITNORMAL(long),
                "NOPARTITION" => Error::NOPARTITION(long),
                "NOPICTURE" => Error::NOPICTURE(long),
                "NOSEGMENTSFOUND" => Error::NOSEGMENTSFOUND(long),
                "NOSEPARATION" => Error::NOSEPARATION(long),
                "NOSUCHFILE" => Error::NOSUCHFILE(long),
                "NOSUCHHANDLE" => Error::NOSUCHHANDLE(long),
                "NOSUCHSYMBOL" => Error::NOSUCHSYMBOL(long),
                "NOTADAFFILE" => Error::NOTADAFFILE(long),
                "NOTADASFILE" => Error::NOTADASFILE(long),
                "NOTADPNUMBER" => Error::NOTADPNUMBER(long),
                "NOTANINTEGER" => Error::NOTANINTEGER(long),
                "NOTAROTATION" => Error::NOTAROTATION(long),
                "NOTCOMPUTABLE" => Error::NOTCOMPUTABLE(long),
                "NOTDISJOINT" => Error::NOTDISJOINT(long),
                "NOTDISTINCT" => Error::NOTDISTINCT(long),
                "NOTINDEXED" => Error::NOTINDEXED(long),
                "NOTINITIALIZED" => Error::NOTINITIALIZED(long),
                "NOTINPART" => Error::NOTINPART(long),
                "NOTRANSLATION" => Error::NOTRANSLATION(long),
                "NOTRECOGNIZED" => Error::NOTRECOGNIZED(long),
                "NOTSEMCHECKED" => Error::NOTSEMCHECKED(long),
                "NOTSUPPORTED" => Error::NOTSUPPORTED(long),
                "NUMBEREXPECTED" => Error::NUMBEREXPECTED(long),
                "NUMCOEFFSNOTPOS" => Error::NUMCOEFFSNOTPOS(long),
                "NUMCONSTANTSNEG" => Error::NUMCONSTANTSNEG(long),
                "NUMERICOVERFLOW" => Error::NUMERICOVERFLOW(long),
                "NUMPACKETSNOTPOS" => Error::NUMPACKETSNOTPOS(long),
                "NUMPARTSUNEQUAL" => Error::NUMPARTSUNEQUAL(long),
                "NUMSTATESNOTPOS" => Error::NUMSTATESNOTPOS(long),
                "OBJECTSTOOCLOSE" => Error::OBJECTSTOOCLOSE(long),
                "ORBITDECAY" => Error::ORBITDECAY(long),
                "OUTOFRANGE" => Error::OUTOFRANGE(long),
                "OUTOFROOM" => Error::OUTOFROOM(long),
                "OUTPUTTOOSHORT" => Error::OUTPUTTOOSHORT(long),
                "PARTIALFRAMESPEC" => Error::PARTIALFRAMESPEC(long),
                "PASTENDSTR" => Error::PASTENDSTR(long),
                "PATHMISMATCH" => Error::PATHMISMATCH(long),
                "PATHTOOLONG" => Error::PATHTOOLONG(long),
                "PCKFILETABLEFULL" => Error::PCKFILETABLEFULL(long),
                "PCKKRECTOOLARGE" => Error::PCKKRECTOOLARGE(long),
                "PLATELISTTOOSMALL" => Error::PLATELISTTOOSMALL(long),
                "POINTEROUTOFRANGE" => Error::POINTEROUTOFRANGE(long),
                "POINTERTABLEFULL" => Error::POINTERTABLEFULL(long),
                "POINTNOTFOUND" => Error::POINTNOTFOUND(long),
                "POINTNOTINSEGMENT" => Error::POINTNOTINSEGMENT(long),
                "POINTNOTONSURFACE" => Error::POINTNOTONSURFACE(long),
                "POINTOFFSURFACE" => Error::POINTOFFSURFACE(long),
                "POINTONZAXIS" => Error::POINTONZAXIS(long),
                "POINTTOOSMALL" => Error::POINTTOOSMALL(long),
                "PTRARRAYTOOSMALL" => Error::PTRARRAYTOOSMALL(long),
                "QUERYFAILURE" => Error::QUERYFAILURE(long),
                "QUERYNOTPARSED" => Error::QUERYNOTPARSED(long),
                "RADIIOUTOFORDER" => Error::RADIIOUTOFORDER(long),
                "RAYISZEROVECTOR" => Error::RAYISZEROVECTOR(long),
                "READFAILED" => Error::READFAILED(long),
                "RECORDNOTFOUND" => Error::RECORDNOTFOUND(long),
                "RECURSIONTOODEEP" => Error::RECURSIONTOODEEP(long),
                "RECURSIVELOADING" => Error::RECURSIVELOADING(long),
                "REFANGLEMISSING" => Error::REFANGLEMISSING(long),
                "REFVALNOTINTEGER" => Error::REFVALNOTINTEGER(long),
                "REFVECTORMISSING" => Error::REFVECTORMISSING(long),
                "REQUESTOUTOFBOUNDS" => Error::REQUESTOUTOFBOUNDS(long),
                "REQUESTOUTOFORDER" => Error::REQUESTOUTOFORDER(long),
                "RWCONFLICT" => Error::RWCONFLICT(long),
                "SCLKTRUNCATED" => Error::SCLKTRUNCATED(long),
                "SEGIDTOOLONG" => Error::SEGIDTOOLONG(long),
                "SEGMENTNOTFOUND" => Error::SEGMENTNOTFOUND(long),
                "SEGMENTTABLEFULL" => Error::SEGMENTTABLEFULL(long),
                "SEGTABLETOOSMALL" => Error::SEGTABLETOOSMALL(long),
                "SEGTYPECONFLICT" => Error::SEGTYPECONFLICT(long),
                "SETEXCESS" => Error::SETEXCESS(long),
                "SETTOOSMALL" => Error::SETTOOSMALL(long),
                "SHAPEMISSING" => Error::SHAPEMISSING(long),
                "SHAPENOTSUPPORTED" => Error::SHAPENOTSUPPORTED(long),
                "SIZEMISMATCH" => Error::SIZEMISMATCH(long),
                "SIZEOUTOFRANGE" => Error::SIZEOUTOFRANGE(long),
                "SPCRFLNOTCALLED" => Error::SPCRFLNOTCALLED(long),
                "SPICEISTIRED" => Error::SPICEISTIRED(long),
                "SPKFILETABLEFULL" => Error::SPKFILETABLEFULL(long),
                "SPKINSUFFDATA" => Error::SPKINSUFFDATA(long),
                "SPKINVALIDOPTION" => Error::SPKINVALIDOPTION(long),
                "SPKNOTASUBSET" => Error::SPKNOTASUBSET(long),
                "SPKRECTOOLARGE" => Error::SPKRECTOOLARGE(long),
                "SPKREFNOTSUPP" => Error::SPKREFNOTSUPP(long),
                "SPKSTRUCTUREERROR" => Error::SPKSTRUCTUREERROR(long),
                "SPKTYPENOTSUPP" => Error::SPKTYPENOTSUPP(long),
                "STFULL" => Error::STFULL(long),
                "STRINGTOOSHORT" => Error::STRINGTOOSHORT(long),
                "STRINGTRUNCATED" => Error::STRINGTRUNCATED(long),
                "SUBORBITAL" => Error::SUBORBITAL(long),
                "SUBPOINTNOTFOUND" => Error::SUBPOINTNOTFOUND(long),
                "SYNTAXERROR" => Error::SYNTAXERROR(long),
                "TABLENOTLOADED" => Error::TABLENOTLOADED(long),
                "TIMECONFLICT" => Error::TIMECONFLICT(long),
                "TIMEOUTOFBOUNDS" => Error::TIMEOUTOFBOUNDS(long),
                "TIMESDONTMATCH" => Error::TIMESDONTMATCH(long),
                "TIMESOUTOFORDER" => Error::TIMESOUTOFORDER(long),
                "TIMEZONEERROR" => Error::TIMEZONEERROR(long),
                "TOOFEWPACKETS" => Error::TOOFEWPACKETS(long),
                "TOOFEWPLATES" => Error::TOOFEWPLATES(long),
                "TOOFEWSTATES" => Error::TOOFEWSTATES(long),
                "TOOFEWVERTICES" => Error::TOOFEWVERTICES(long),
                "TOOFEWWINDOWS" => Error::TOOFEWWINDOWS(long),
                "TOOMANYBASEFRAMES" => Error::TOOMANYBASEFRAMES(long),
                "TOOMANYFILESOPEN" => Error::TOOMANYFILESOPEN(long),
                "TOOMANYHITS" => Error::TOOMANYHITS(long),
                "TOOMANYPAIRS" => Error::TOOMANYPAIRS(long),
                "TOOMANYPARTS" => Error::TOOMANYPARTS(long),
                "TOOMANYSURFACES" => Error::TOOMANYSURFACES(long),
                "TOOMANYWATCHES" => Error::TOOMANYWATCHES(long),
                "TRANSFERFILE" => Error::TRANSFERFILE(long),
                "TYPE1TEXTEK" => Error::TYPE1TEXTEK(long),
                "TYPEMISMATCH" => Error::TYPEMISMATCH(long),
                "TYPENOTSUPPORTED" => Error::TYPENOTSUPPORTED(long),
                "UNALLOCATEDNODE" => Error::UNALLOCATEDNODE(long),
                "UNDEFINEDFRAME" => Error::UNDEFINEDFRAME(long),
                "UNINITIALIZED" => Error::UNINITIALIZED(long),
                "UNINITIALIZEDHASH" => Error::UNINITIALIZEDHASH(long),
                "UNINITIALIZEDVALUE" => Error::UNINITIALIZEDVALUE(long),
                "UNITSMISSING" => Error::UNITSMISSING(long),
                "UNITSNOTREC" => Error::UNITSNOTREC(long),
                "UNKNONWNTIMESYSTEM" => Error::UNKNONWNTIMESYSTEM(long),
                "UNKNOWNBFF" => Error::UNKNOWNBFF(long),
                "UNKNOWNCKMETA" => Error::UNKNOWNCKMETA(long),
                "UNKNOWNCOMPARE" => Error::UNKNOWNCOMPARE(long),
                "UNKNOWNFILARC" => Error::UNKNOWNFILARC(long),
                "UNKNOWNFRAME" => Error::UNKNOWNFRAME(long),
                "UNKNOWNFRAME2" => Error::UNKNOWNFRAME2(long),
                "UNKNOWNFRAMESPEC" => Error::UNKNOWNFRAMESPEC(long),
                "UNKNOWNFRAMETYPE" => Error::UNKNOWNFRAMETYPE(long),
                "UNKNOWNID" => Error::UNKNOWNID(long),
                "UNKNOWNINCLUSION" => Error::UNKNOWNINCLUSION(long),
                "UNKNOWNINDEXTYPE" => Error::UNKNOWNINDEXTYPE(long),
                "UNKNOWNKERNELTYPE" => Error::UNKNOWNKERNELTYPE(long),
                "UNKNOWNMETAITEM" => Error::UNKNOWNMETAITEM(long),
                "UNKNOWNMODE" => Error::UNKNOWNMODE(long),
                "UNKNOWNOP" => Error::UNKNOWNOP(long),
                "UNKNOWNPCKTYPE" => Error::UNKNOWNPCKTYPE(long),
                "UNKNOWNREFDIR" => Error::UNKNOWNREFDIR(long),
                "UNKNOWNSPKTYPE" => Error::UNKNOWNSPKTYPE(long),
                "UNKNOWNSYSTEM" => Error::UNKNOWNSYSTEM(long),
                "UNMATCHENDPTS" => Error::UNMATCHENDPTS(long),
                "UNNATURALRELATION" => Error::UNNATURALRELATION(long),
                "UNORDEREDREFS" => Error::UNORDEREDREFS(long),
                "UNORDEREDTIMES" => Error::UNORDEREDTIMES(long),
                "UNPARSEDQUERY" => Error::UNPARSEDQUERY(long),
                "UNPARSEDTIME" => Error::UNPARSEDTIME(long),
                "UNRECOGNIZEDACTION" => Error::UNRECOGNIZEDACTION(long),
                "UNRECOGNIZEDTYPE" => Error::UNRECOGNIZEDTYPE(long),
                "UNRESOLVEDNAMES" => Error::UNRESOLVEDNAMES(long),
                "UNRESOLVEDTIMES" => Error::UNRESOLVEDTIMES(long),
                "UNSUPPORTEDARCH" => Error::UNSUPPORTEDARCH(long),
                "UNSUPPORTEDBFF" => Error::UNSUPPORTEDBFF(long),
                "UNSUPPORTEDMETHOD" => Error::UNSUPPORTEDMETHOD(long),
                "UNSUPPORTEDSPEC" => Error::UNSUPPORTEDSPEC(long),
                "UPDATEPENDING" => Error::UPDATEPENDING(long),
                "UTFULL" => Error::UTFULL(long),
                "VALUEOUTOFRANGE" => Error::VALUEOUTOFRANGE(long),
                "VALUETABLEFULL" => Error::VALUETABLEFULL(long),
                "VARIABLENOTFOUND" => Error::VARIABLENOTFOUND(long),
                "VARNAMETOOLONG" => Error::VARNAMETOOLONG(long),
                "VECTORTOOBIG" => Error::VECTORTOOBIG(long),
                "VERSIONMISMATCH1" => Error::VERSIONMISMATCH1(long),
                "VERSIONMISMATCH2" => Error::VERSIONMISMATCH2(long),
                "VERTEXNOTINGRID" => Error::VERTEXNOTINGRID(long),
                "WINDOWEXCESS" => Error::WINDOWEXCESS(long),
                "WINDOWSTOOSMALL" => Error::WINDOWSTOOSMALL(long),
                "WINDOWTOOSMALL" => Error::WINDOWTOOSMALL(long),
                "WORKSPACETOOSMALL" => Error::WORKSPACETOOSMALL(long),
                "WRITEERROR" => Error::WRITEERROR(long),
                "WRITEFAILED" => Error::WRITEFAILED(long),
                "WRONGARCHITECTURE" => Error::WRONGARCHITECTURE(long),
                "WRONGCKTYPE" => Error::WRONGCKTYPE(long),
                "WRONGCONIC" => Error::WRONGCONIC(long),
                "WRONGDATATYPE" => Error::WRONGDATATYPE(long),
                "WRONGSEGMENT" => Error::WRONGSEGMENT(long),
                "WRONGSPKTYPE" => Error::WRONGSPKTYPE(long),
                "YEAROUTOFRANGE" => Error::YEAROUTOFRANGE(long),
                "ZEROBORESIGHT" => Error::ZEROBORESIGHT(long),
                "ZEROBOUNDSEXTENT" => Error::ZEROBOUNDSEXTENT(long),
                "ZEROFRAMEID" => Error::ZEROFRAMEID(long),
                "ZEROLENGTHCOLUMN" => Error::ZEROLENGTHCOLUMN(long),
                "ZEROPOSITION" => Error::ZEROPOSITION(long),
                "ZEROQUATERNION" => Error::ZEROQUATERNION(long),
                "ZEROSTEP" => Error::ZEROSTEP(long),
                "ZEROVECTOR" => Error::ZEROVECTOR(long),
                "ZEROVELOCITY" => Error::ZEROVELOCITY(long),
                "ZZHOLDDGETFAILED" => Error::ZZHOLDDGETFAILED(long),

                _ => Error::UnknownSpiceError(short.to_owned(), long),
            }
        } else {
            Error::UnknownSpiceError(short.to_owned(), long)
        }
    }
}

impl From<f2rust_std::Error> for Error {
    fn from(e: f2rust_std::Error) -> Self {
        Error::InternalError(e)
    }
}

fn fmt_spice(f: &mut Formatter<'_>, short: &str, long: &str) -> std::fmt::Result {
    let mut msg = String::new();
    msg += "SPICE(";
    msg += short;
    msg += ")";

    let mut expln = " ".repeat(256);
    crate::generated::spicelib::api::expln(&msg, &mut expln);
    let expln = expln.trim_ascii_end();

    if !expln.is_empty() {
        msg += " (";
        msg += expln;
        msg += ")";
    }

    msg += ": ";
    msg += long;

    f.write_str(&msg)
}

impl std::fmt::Debug for Error {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        std::fmt::Display::fmt(&self, f)
    }
}

impl std::fmt::Display for Error {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        match self {
            Error::InternalError(e) => e.fmt(f),

            Error::UnknownSpiceError(short, long) => fmt_spice(f, short, long),

            // rg "^\s*CALL\s*SIGERR\s*\(" tspice/src/spicelib/ | perl -lne'/SPICE\((.*?)\)/; print qq{Error::$1(long) => fmt_spice(f, "$1", long),}' | sort -u
            Error::ADDRESSOUTOFBOUNDS(long) => fmt_spice(f, "ADDRESSOUTOFBOUNDS", long),
            Error::AGENTLISTOVERFLOW(long) => fmt_spice(f, "AGENTLISTOVERFLOW", long),
            Error::ARRAYSIZEMISMATCH(long) => fmt_spice(f, "ARRAYSIZEMISMATCH", long),
            Error::ARRAYTOOSMALL(long) => fmt_spice(f, "ARRAYTOOSMALL", long),
            Error::AVALOUTOFRANGE(long) => fmt_spice(f, "AVALOUTOFRANGE", long),
            Error::AXISUNDERFLOW(long) => fmt_spice(f, "AXISUNDERFLOW", long),
            Error::BADACTION(long) => fmt_spice(f, "BADACTION", long),
            Error::BADADDRESS(long) => fmt_spice(f, "BADADDRESS", long),
            Error::BADARRAYSIZE(long) => fmt_spice(f, "BADARRAYSIZE", long),
            Error::BADATTRIBUTE(long) => fmt_spice(f, "BADATTRIBUTE", long),
            Error::BADATTRIBUTES(long) => fmt_spice(f, "BADATTRIBUTES", long),
            Error::BADAXIS(long) => fmt_spice(f, "BADAXIS", long),
            Error::BADAXISLENGTH(long) => fmt_spice(f, "BADAXISLENGTH", long),
            Error::BADAXISNUMBERS(long) => fmt_spice(f, "BADAXISNUMBERS", long),
            Error::BADBLOCKSIZE(long) => fmt_spice(f, "BADBLOCKSIZE", long),
            Error::BADBORESIGHTSPEC(long) => fmt_spice(f, "BADBORESIGHTSPEC", long),
            Error::BADBOUNDARY(long) => fmt_spice(f, "BADBOUNDARY", long),
            Error::BADCATALOGFILE(long) => fmt_spice(f, "BADCATALOGFILE", long),
            Error::BADCK1SEGMENT(long) => fmt_spice(f, "BADCK1SEGMENT", long),
            Error::BADCK3SEGMENT(long) => fmt_spice(f, "BADCK3SEGMENT", long),
            Error::BADCOARSEVOXSCALE(long) => fmt_spice(f, "BADCOARSEVOXSCALE", long),
            Error::BADCOLUMDECL(long) => fmt_spice(f, "BADCOLUMDECL", long),
            Error::BADCOLUMNCOUNT(long) => fmt_spice(f, "BADCOLUMNCOUNT", long),
            Error::BADCOLUMNDECL(long) => fmt_spice(f, "BADCOLUMNDECL", long),
            Error::BADCOMMENTAREA(long) => fmt_spice(f, "BADCOMMENTAREA", long),
            Error::BADCOORDBOUNDS(long) => fmt_spice(f, "BADCOORDBOUNDS", long),
            Error::BADCOORDSYS(long) => fmt_spice(f, "BADCOORDSYS", long),
            Error::BADCURVETYPE(long) => fmt_spice(f, "BADCURVETYPE", long),
            Error::BADDAFTRANSFERFILE(long) => fmt_spice(f, "BADDAFTRANSFERFILE", long),
            Error::BADDASCOMMENTAREA(long) => fmt_spice(f, "BADDASCOMMENTAREA", long),
            Error::BADDASDIRECTORY(long) => fmt_spice(f, "BADDASDIRECTORY", long),
            Error::BADDASFILE(long) => fmt_spice(f, "BADDASFILE", long),
            Error::BADDASTRANSFERFILE(long) => fmt_spice(f, "BADDASTRANSFERFILE", long),
            Error::BADDEFAULTVALUE(long) => fmt_spice(f, "BADDEFAULTVALUE", long),
            Error::BADDESCRTIMES(long) => fmt_spice(f, "BADDESCRTIMES", long),
            Error::BADDIMENSION(long) => fmt_spice(f, "BADDIMENSION", long),
            Error::BADDIMENSIONS(long) => fmt_spice(f, "BADDIMENSIONS", long),
            Error::BADDIRECTION(long) => fmt_spice(f, "BADDIRECTION", long),
            Error::BADECCENTRICITY(long) => fmt_spice(f, "BADECCENTRICITY", long),
            Error::BADENDPOINTS(long) => fmt_spice(f, "BADENDPOINTS", long),
            Error::BADFINEVOXELSCALE(long) => fmt_spice(f, "BADFINEVOXELSCALE", long),
            Error::BADFRAME(long) => fmt_spice(f, "BADFRAME", long),
            Error::BADFRAMECLASS(long) => fmt_spice(f, "BADFRAMECLASS", long),
            Error::BADFRAMECOUNT(long) => fmt_spice(f, "BADFRAMECOUNT", long),
            Error::BADFRAMESPEC(long) => fmt_spice(f, "BADFRAMESPEC", long),
            Error::BADFRAMESPEC2(long) => fmt_spice(f, "BADFRAMESPEC2", long),
            Error::BADGEOMETRY(long) => fmt_spice(f, "BADGEOMETRY", long),
            Error::BADGM(long) => fmt_spice(f, "BADGM", long),
            Error::BADINDEX(long) => fmt_spice(f, "BADINDEX", long),
            Error::BADINITSTATE(long) => fmt_spice(f, "BADINITSTATE", long),
            Error::BADKERNELVARTYPE(long) => fmt_spice(f, "BADKERNELVARTYPE", long),
            Error::BADLATITUDEBOUNDS(long) => fmt_spice(f, "BADLATITUDEBOUNDS", long),
            Error::BADLATITUDERANGE(long) => fmt_spice(f, "BADLATITUDERANGE", long),
            Error::BADLATUSRECTUM(long) => fmt_spice(f, "BADLATUSRECTUM", long),
            Error::BADLEAPSECONDS(long) => fmt_spice(f, "BADLEAPSECONDS", long),
            Error::BADLIMBLOCUSMIX(long) => fmt_spice(f, "BADLIMBLOCUSMIX", long),
            Error::BADLONGITUDERANGE(long) => fmt_spice(f, "BADLONGITUDERANGE", long),
            Error::BADMEANMOTION(long) => fmt_spice(f, "BADMEANMOTION", long),
            Error::BADMECCENTRICITY(long) => fmt_spice(f, "BADMECCENTRICITY", long),
            Error::BADMETHODSYNTAX(long) => fmt_spice(f, "BADMETHODSYNTAX", long),
            Error::BADMSEMIMAJOR(long) => fmt_spice(f, "BADMSEMIMAJOR", long),
            Error::BADPARTNUMBER(long) => fmt_spice(f, "BADPARTNUMBER", long),
            Error::BADPECCENTRICITY(long) => fmt_spice(f, "BADPECCENTRICITY", long),
            Error::BADPERIAPSEVALUE(long) => fmt_spice(f, "BADPERIAPSEVALUE", long),
            Error::BADPICTURE(long) => fmt_spice(f, "BADPICTURE", long),
            Error::BADPLATECOUNT(long) => fmt_spice(f, "BADPLATECOUNT", long),
            Error::BADPRIORITYSPEC(long) => fmt_spice(f, "BADPRIORITYSPEC", long),
            Error::BADQUATSIGN(long) => fmt_spice(f, "BADQUATSIGN", long),
            Error::BADRADIUS(long) => fmt_spice(f, "BADRADIUS", long),
            Error::BADRADIUSCOUNT(long) => fmt_spice(f, "BADRADIUSCOUNT", long),
            Error::BADRECORDCOUNT(long) => fmt_spice(f, "BADRECORDCOUNT", long),
            Error::BADREFVECTORSPEC(long) => fmt_spice(f, "BADREFVECTORSPEC", long),
            Error::BADROWCOUNT(long) => fmt_spice(f, "BADROWCOUNT", long),
            Error::BADSEMIAXIS(long) => fmt_spice(f, "BADSEMIAXIS", long),
            Error::BADSEMILATUS(long) => fmt_spice(f, "BADSEMILATUS", long),
            Error::BADSHAPE(long) => fmt_spice(f, "BADSHAPE", long),
            Error::BADSOURCERADIUS(long) => fmt_spice(f, "BADSOURCERADIUS", long),
            Error::BADSTARINDEX(long) => fmt_spice(f, "BADSTARINDEX", long),
            Error::BADSTDIONAME(long) => fmt_spice(f, "BADSTDIONAME", long),
            Error::BADSTOPTIME(long) => fmt_spice(f, "BADSTOPTIME", long),
            Error::BADSUBSTR(long) => fmt_spice(f, "BADSUBSTR", long),
            Error::BADSUBSTRINGBOUNDS(long) => fmt_spice(f, "BADSUBSTRINGBOUNDS", long),
            Error::BADSURFACEMAP(long) => fmt_spice(f, "BADSURFACEMAP", long),
            Error::BADTERMLOCUSMIX(long) => fmt_spice(f, "BADTERMLOCUSMIX", long),
            Error::BADTIMEBOUNDS(long) => fmt_spice(f, "BADTIMEBOUNDS", long),
            Error::BADTIMECASE(long) => fmt_spice(f, "BADTIMECASE", long),
            Error::BADTIMEITEM(long) => fmt_spice(f, "BADTIMEITEM", long),
            Error::BADTIMESPEC(long) => fmt_spice(f, "BADTIMESPEC", long),
            Error::BADTIMESTRING(long) => fmt_spice(f, "BADTIMESTRING", long),
            Error::BADTIMETYPE(long) => fmt_spice(f, "BADTIMETYPE", long),
            Error::BADTLE(long) => fmt_spice(f, "BADTLE", long),
            Error::BADTYPESHAPECOMBO(long) => fmt_spice(f, "BADTYPESHAPECOMBO", long),
            Error::BADVARASSIGN(long) => fmt_spice(f, "BADVARASSIGN", long),
            Error::BADVARIABLESIZE(long) => fmt_spice(f, "BADVARIABLESIZE", long),
            Error::BADVARIABLETYPE(long) => fmt_spice(f, "BADVARIABLETYPE", long),
            Error::BADVARNAME(long) => fmt_spice(f, "BADVARNAME", long),
            Error::BADVECTOR(long) => fmt_spice(f, "BADVECTOR", long),
            Error::BADVERTEXCOUNT(long) => fmt_spice(f, "BADVERTEXCOUNT", long),
            Error::BADVERTEXINDEX(long) => fmt_spice(f, "BADVERTEXINDEX", long),
            Error::BADWINDOWSIZE(long) => fmt_spice(f, "BADWINDOWSIZE", long),
            Error::BARRAYTOOSMALL(long) => fmt_spice(f, "BARRAYTOOSMALL", long),
            Error::BARYCENTEREPHEM(long) => fmt_spice(f, "BARYCENTEREPHEM", long),
            Error::BARYCENTERIDCODE(long) => fmt_spice(f, "BARYCENTERIDCODE", long),
            Error::BEFOREBEGSTR(long) => fmt_spice(f, "BEFOREBEGSTR", long),
            Error::BLANKFILENAME(long) => fmt_spice(f, "BLANKFILENAME", long),
            Error::BLANKFILETYPE(long) => fmt_spice(f, "BLANKFILETYPE", long),
            Error::BLANKNAMEASSIGNED(long) => fmt_spice(f, "BLANKNAMEASSIGNED", long),
            Error::BLOCKSNOTEVEN(long) => fmt_spice(f, "BLOCKSNOTEVEN", long),
            Error::BODIESNOTDISTINCT(long) => fmt_spice(f, "BODIESNOTDISTINCT", long),
            Error::BODYANDCENTERSAME(long) => fmt_spice(f, "BODYANDCENTERSAME", long),
            Error::BOGUSENTRY(long) => fmt_spice(f, "BOGUSENTRY", long),
            Error::BORESIGHTMISSING(long) => fmt_spice(f, "BORESIGHTMISSING", long),
            Error::BOUNDARYMISSING(long) => fmt_spice(f, "BOUNDARYMISSING", long),
            Error::BOUNDARYTOOBIG(long) => fmt_spice(f, "BOUNDARYTOOBIG", long),
            Error::BOUNDSDISAGREE(long) => fmt_spice(f, "BOUNDSDISAGREE", long),
            Error::BOUNDSOUTOFORDER(long) => fmt_spice(f, "BOUNDSOUTOFORDER", long),
            Error::BUFFEROVERFLOW(long) => fmt_spice(f, "BUFFEROVERFLOW", long),
            Error::BUFFERTOOSMALL(long) => fmt_spice(f, "BUFFERTOOSMALL", long),
            Error::BUG(long) => fmt_spice(f, "BUG", long),
            Error::BUG0(long) => fmt_spice(f, "BUG0", long),
            Error::BUG1(long) => fmt_spice(f, "BUG1", long),
            Error::BUG2(long) => fmt_spice(f, "BUG2", long),
            Error::BUG3(long) => fmt_spice(f, "BUG3", long),
            Error::BUG4(long) => fmt_spice(f, "BUG4", long),
            Error::BUG5(long) => fmt_spice(f, "BUG5", long),
            Error::CALLCKBSSFIRST(long) => fmt_spice(f, "CALLCKBSSFIRST", long),
            Error::CALLEDOUTOFORDER(long) => fmt_spice(f, "CALLEDOUTOFORDER", long),
            Error::CALLZZDSKBSSFIRST(long) => fmt_spice(f, "CALLZZDSKBSSFIRST", long),
            Error::CANNOTFINDGRP(long) => fmt_spice(f, "CANNOTFINDGRP", long),
            Error::CANNOTGETPACKET(long) => fmt_spice(f, "CANNOTGETPACKET", long),
            Error::CANTFINDFRAME(long) => fmt_spice(f, "CANTFINDFRAME", long),
            Error::CANTGETROTATIONTYPE(long) => fmt_spice(f, "CANTGETROTATIONTYPE", long),
            Error::CELLARRAYTOOSMALL(long) => fmt_spice(f, "CELLARRAYTOOSMALL", long),
            Error::CELLTOOSMALL(long) => fmt_spice(f, "CELLTOOSMALL", long),
            Error::CKBOGUSENTRY(long) => fmt_spice(f, "CKBOGUSENTRY", long),
            Error::CKNONEXISTREC(long) => fmt_spice(f, "CKNONEXISTREC", long),
            Error::CKTOOMANYFILES(long) => fmt_spice(f, "CKTOOMANYFILES", long),
            Error::CKUNKNOWNDATATYPE(long) => fmt_spice(f, "CKUNKNOWNDATATYPE", long),
            Error::CKWRONGDATATYPE(long) => fmt_spice(f, "CKWRONGDATATYPE", long),
            Error::COARSEGRIDOVERFLOW(long) => fmt_spice(f, "COARSEGRIDOVERFLOW", long),
            Error::COLDESCTABLEFULL(long) => fmt_spice(f, "COLDESCTABLEFULL", long),
            Error::COLUMNTOOSMALL(long) => fmt_spice(f, "COLUMNTOOSMALL", long),
            Error::COMMENTTOOLONG(long) => fmt_spice(f, "COMMENTTOOLONG", long),
            Error::COMPETINGEPOCHSPEC(long) => fmt_spice(f, "COMPETINGEPOCHSPEC", long),
            Error::COMPETINGFRAMESPEC(long) => fmt_spice(f, "COMPETINGFRAMESPEC", long),
            Error::COORDSYSNOTREC(long) => fmt_spice(f, "COORDSYSNOTREC", long),
            Error::COUNTMISMATCH(long) => fmt_spice(f, "COUNTMISMATCH", long),
            Error::COUNTTOOLARGE(long) => fmt_spice(f, "COUNTTOOLARGE", long),
            Error::COVERAGEGAP(long) => fmt_spice(f, "COVERAGEGAP", long),
            Error::CROSSANGLEMISSING(long) => fmt_spice(f, "CROSSANGLEMISSING", long),
            Error::DAFBADCRECLEN(long) => fmt_spice(f, "DAFBADCRECLEN", long),
            Error::DAFBEGGTEND(long) => fmt_spice(f, "DAFBEGGTEND", long),
            Error::DAFCRNOTFOUND(long) => fmt_spice(f, "DAFCRNOTFOUND", long),
            Error::DAFDPWRITEFAIL(long) => fmt_spice(f, "DAFDPWRITEFAIL", long),
            Error::DAFFRNOTFOUND(long) => fmt_spice(f, "DAFFRNOTFOUND", long),
            Error::DAFFTFULL(long) => fmt_spice(f, "DAFFTFULL", long),
            Error::DAFILLEGWRITE(long) => fmt_spice(f, "DAFILLEGWRITE", long),
            Error::DAFINVALIDACCESS(long) => fmt_spice(f, "DAFINVALIDACCESS", long),
            Error::DAFINVALIDPARAMS(long) => fmt_spice(f, "DAFINVALIDPARAMS", long),
            Error::DAFNEGADDR(long) => fmt_spice(f, "DAFNEGADDR", long),
            Error::DAFNEWCONFLICT(long) => fmt_spice(f, "DAFNEWCONFLICT", long),
            Error::DAFNOIFNMATCH(long) => fmt_spice(f, "DAFNOIFNMATCH", long),
            Error::DAFNONAMEMATCH(long) => fmt_spice(f, "DAFNONAMEMATCH", long),
            Error::DAFNORESV(long) => fmt_spice(f, "DAFNORESV", long),
            Error::DAFNOSEARCH(long) => fmt_spice(f, "DAFNOSEARCH", long),
            Error::DAFNOSUCHADDR(long) => fmt_spice(f, "DAFNOSUCHADDR", long),
            Error::DAFNOSUCHFILE(long) => fmt_spice(f, "DAFNOSUCHFILE", long),
            Error::DAFNOSUCHHANDLE(long) => fmt_spice(f, "DAFNOSUCHHANDLE", long),
            Error::DAFNOSUCHUNIT(long) => fmt_spice(f, "DAFNOSUCHUNIT", long),
            Error::DAFNOWRITE(long) => fmt_spice(f, "DAFNOWRITE", long),
            Error::DAFOVERFLOW(long) => fmt_spice(f, "DAFOVERFLOW", long),
            Error::DAFREADFAIL(long) => fmt_spice(f, "DAFREADFAIL", long),
            Error::DAFWRITEFAIL(long) => fmt_spice(f, "DAFWRITEFAIL", long),
            Error::DASFILEREADFAILED(long) => fmt_spice(f, "DASFILEREADFAILED", long),
            Error::DASFILEWRITEFAILED(long) => fmt_spice(f, "DASFILEWRITEFAILED", long),
            Error::DASFTFULL(long) => fmt_spice(f, "DASFTFULL", long),
            Error::DASINVALIDACCESS(long) => fmt_spice(f, "DASINVALIDACCESS", long),
            Error::DASINVALIDCOUNT(long) => fmt_spice(f, "DASINVALIDCOUNT", long),
            Error::DASINVALIDTYPE(long) => fmt_spice(f, "DASINVALIDTYPE", long),
            Error::DASNOSUCHADDRESS(long) => fmt_spice(f, "DASNOSUCHADDRESS", long),
            Error::DASNOSUCHFILE(long) => fmt_spice(f, "DASNOSUCHFILE", long),
            Error::DASNOSUCHHANDLE(long) => fmt_spice(f, "DASNOSUCHHANDLE", long),
            Error::DASNOSUCHUNIT(long) => fmt_spice(f, "DASNOSUCHUNIT", long),
            Error::DASNOTEMPTY(long) => fmt_spice(f, "DASNOTEMPTY", long),
            Error::DASREADFAIL(long) => fmt_spice(f, "DASREADFAIL", long),
            Error::DASWRITEFAIL(long) => fmt_spice(f, "DASWRITEFAIL", long),
            Error::DATEEXPECTED(long) => fmt_spice(f, "DATEEXPECTED", long),
            Error::DECODINGERROR(long) => fmt_spice(f, "DECODINGERROR", long),
            Error::DEGENERATECASE(long) => fmt_spice(f, "DEGENERATECASE", long),
            Error::DEGENERATEINTERVAL(long) => fmt_spice(f, "DEGENERATEINTERVAL", long),
            Error::DEGENERATESURFACE(long) => fmt_spice(f, "DEGENERATESURFACE", long),
            Error::DEGREEOUTOFRANGE(long) => fmt_spice(f, "DEGREEOUTOFRANGE", long),
            Error::DEPENDENTVECTORS(long) => fmt_spice(f, "DEPENDENTVECTORS", long),
            Error::DEVICENAMETOOLONG(long) => fmt_spice(f, "DEVICENAMETOOLONG", long),
            Error::DIFFLINETOOLARGE(long) => fmt_spice(f, "DIFFLINETOOLARGE", long),
            Error::DIFFLINETOOSMALL(long) => fmt_spice(f, "DIFFLINETOOSMALL", long),
            Error::DISARRAY(long) => fmt_spice(f, "DISARRAY", long),
            Error::DISORDER(long) => fmt_spice(f, "DISORDER", long),
            Error::DIVIDEBYZERO(long) => fmt_spice(f, "DIVIDEBYZERO", long),
            Error::DSKBOGUSENTRY(long) => fmt_spice(f, "DSKBOGUSENTRY", long),
            Error::DSKDATANOTFOUND(long) => fmt_spice(f, "DSKDATANOTFOUND", long),
            Error::DSKTOOMANYFILES(long) => fmt_spice(f, "DSKTOOMANYFILES", long),
            Error::DTOUTOFRANGE(long) => fmt_spice(f, "DTOUTOFRANGE", long),
            Error::DUBIOUSMETHOD(long) => fmt_spice(f, "DUBIOUSMETHOD", long),
            Error::ECCOUTOFBOUNDS(long) => fmt_spice(f, "ECCOUTOFBOUNDS", long),
            Error::ECCOUTOFRANGE(long) => fmt_spice(f, "ECCOUTOFRANGE", long),
            Error::EKCOLATTRTABLEFULL(long) => fmt_spice(f, "EKCOLATTRTABLEFULL", long),
            Error::EKCOLNUMMISMATCH(long) => fmt_spice(f, "EKCOLNUMMISMATCH", long),
            Error::EKFILETABLEFULL(long) => fmt_spice(f, "EKFILETABLEFULL", long),
            Error::EKMISSINGCOLUMN(long) => fmt_spice(f, "EKMISSINGCOLUMN", long),
            Error::EKNOSEGMENTS(long) => fmt_spice(f, "EKNOSEGMENTS", long),
            Error::EKSEGTABLEFULL(long) => fmt_spice(f, "EKSEGTABLEFULL", long),
            Error::EKTABLELISTFULL(long) => fmt_spice(f, "EKTABLELISTFULL", long),
            Error::ELEMENTSTOOSHORT(long) => fmt_spice(f, "ELEMENTSTOOSHORT", long),
            Error::EMPTYSEGMENT(long) => fmt_spice(f, "EMPTYSEGMENT", long),
            Error::ENDPOINTSMATCH(long) => fmt_spice(f, "ENDPOINTSMATCH", long),
            Error::EVECOUTOFRANGE(long) => fmt_spice(f, "EVECOUTOFRANGE", long),
            Error::EVILBOGUSENTRY(long) => fmt_spice(f, "EVILBOGUSENTRY", long),
            Error::EXTERNALOPEN(long) => fmt_spice(f, "EXTERNALOPEN", long),
            Error::FACENOTFOUND(long) => fmt_spice(f, "FACENOTFOUND", long),
            Error::FILARCHMISMATCH(long) => fmt_spice(f, "FILARCHMISMATCH", long),
            Error::FILARCMISMATCH(long) => fmt_spice(f, "FILARCMISMATCH", long),
            Error::FILECURRENTLYOPEN(long) => fmt_spice(f, "FILECURRENTLYOPEN", long),
            Error::FILEDELETEFAILED(long) => fmt_spice(f, "FILEDELETEFAILED", long),
            Error::FILEDOESNOTEXIST(long) => fmt_spice(f, "FILEDOESNOTEXIST", long),
            Error::FILEISNOTSPK(long) => fmt_spice(f, "FILEISNOTSPK", long),
            Error::FILENAMETOOLONG(long) => fmt_spice(f, "FILENAMETOOLONG", long),
            Error::FILENOTCONNECTED(long) => fmt_spice(f, "FILENOTCONNECTED", long),
            Error::FILENOTFOUND(long) => fmt_spice(f, "FILENOTFOUND", long),
            Error::FILENOTOPEN(long) => fmt_spice(f, "FILENOTOPEN", long),
            Error::FILEOPENCONFLICT(long) => fmt_spice(f, "FILEOPENCONFLICT", long),
            Error::FILEOPENERROR(long) => fmt_spice(f, "FILEOPENERROR", long),
            Error::FILEOPENFAIL(long) => fmt_spice(f, "FILEOPENFAIL", long),
            Error::FILEOPENFAILED(long) => fmt_spice(f, "FILEOPENFAILED", long),
            Error::FILEREADFAILED(long) => fmt_spice(f, "FILEREADFAILED", long),
            Error::FILETABLEFULL(long) => fmt_spice(f, "FILETABLEFULL", long),
            Error::FILEWRITEFAILED(long) => fmt_spice(f, "FILEWRITEFAILED", long),
            Error::FORMATERROR(long) => fmt_spice(f, "FORMATERROR", long),
            Error::FOVTOOWIDE(long) => fmt_spice(f, "FOVTOOWIDE", long),
            Error::FRAMEDATANOTFOUND(long) => fmt_spice(f, "FRAMEDATANOTFOUND", long),
            Error::FRAMEDEFERROR(long) => fmt_spice(f, "FRAMEDEFERROR", long),
            Error::FRAMEIDNOTFOUND(long) => fmt_spice(f, "FRAMEIDNOTFOUND", long),
            Error::FRAMEINFONOTFOUND(long) => fmt_spice(f, "FRAMEINFONOTFOUND", long),
            Error::FRAMEMISSING(long) => fmt_spice(f, "FRAMEMISSING", long),
            Error::FRAMENAMENOTFOUND(long) => fmt_spice(f, "FRAMENAMENOTFOUND", long),
            Error::FTFULL(long) => fmt_spice(f, "FTFULL", long),
            Error::FTPXFERERROR(long) => fmt_spice(f, "FTPXFERERROR", long),
            Error::GRIDTOOLARGE(long) => fmt_spice(f, "GRIDTOOLARGE", long),
            Error::HANDLENOTFOUND(long) => fmt_spice(f, "HANDLENOTFOUND", long),
            Error::HASHISFULL(long) => fmt_spice(f, "HASHISFULL", long),
            Error::HLULOCKFAILED(long) => fmt_spice(f, "HLULOCKFAILED", long),
            Error::IDCODENOTFOUND(long) => fmt_spice(f, "IDCODENOTFOUND", long),
            Error::IDSTRINGTOOLONG(long) => fmt_spice(f, "IDSTRINGTOOLONG", long),
            Error::ILLEGALCHARACTER(long) => fmt_spice(f, "ILLEGALCHARACTER", long),
            Error::ILLEGSHIFTDIR(long) => fmt_spice(f, "ILLEGSHIFTDIR", long),
            Error::IMMUTABLEVALUE(long) => fmt_spice(f, "IMMUTABLEVALUE", long),
            Error::IMPROPEROPEN(long) => fmt_spice(f, "IMPROPEROPEN", long),
            Error::INCOMPATIBLEEOL(long) => fmt_spice(f, "INCOMPATIBLEEOL", long),
            Error::INCOMPATIBLENUMREF(long) => fmt_spice(f, "INCOMPATIBLENUMREF", long),
            Error::INCOMPATIBLESCALE(long) => fmt_spice(f, "INCOMPATIBLESCALE", long),
            Error::INCOMPATIBLEUNITS(long) => fmt_spice(f, "INCOMPATIBLEUNITS", long),
            Error::INCOMPLETEFRAME(long) => fmt_spice(f, "INCOMPLETEFRAME", long),
            Error::INDEXOUTOFRANGE(long) => fmt_spice(f, "INDEXOUTOFRANGE", long),
            Error::INDEXTOOLARGE(long) => fmt_spice(f, "INDEXTOOLARGE", long),
            Error::INDICESOUTOFORDER(long) => fmt_spice(f, "INDICESOUTOFORDER", long),
            Error::INPUTOUTOFBOUNDS(long) => fmt_spice(f, "INPUTOUTOFBOUNDS", long),
            Error::INPUTSTOOLARGE(long) => fmt_spice(f, "INPUTSTOOLARGE", long),
            Error::INQUIREERROR(long) => fmt_spice(f, "INQUIREERROR", long),
            Error::INQUIREFAILED(long) => fmt_spice(f, "INQUIREFAILED", long),
            Error::INSIDEBODY(long) => fmt_spice(f, "INSIDEBODY", long),
            Error::INSUFFICIENTANGLES(long) => fmt_spice(f, "INSUFFICIENTANGLES", long),
            Error::INSUFFLEN(long) => fmt_spice(f, "INSUFFLEN", long),
            Error::INTINDEXTOOSMALL(long) => fmt_spice(f, "INTINDEXTOOSMALL", long),
            Error::INTLENNOTPOS(long) => fmt_spice(f, "INTLENNOTPOS", long),
            Error::INTOUTOFRANGE(long) => fmt_spice(f, "INTOUTOFRANGE", long),
            Error::INVALIDACCESS(long) => fmt_spice(f, "INVALIDACCESS", long),
            Error::INVALIDACTION(long) => fmt_spice(f, "INVALIDACTION", long),
            Error::INVALIDADD(long) => fmt_spice(f, "INVALIDADD", long),
            Error::INVALIDADDRESS(long) => fmt_spice(f, "INVALIDADDRESS", long),
            Error::INVALIDANGLE(long) => fmt_spice(f, "INVALIDANGLE", long),
            Error::INVALIDARCHTYPE(long) => fmt_spice(f, "INVALIDARCHTYPE", long),
            Error::INVALIDARGUMENT(long) => fmt_spice(f, "INVALIDARGUMENT", long),
            Error::INVALIDAXIS(long) => fmt_spice(f, "INVALIDAXIS", long),
            Error::INVALIDAXISLENGTH(long) => fmt_spice(f, "INVALIDAXISLENGTH", long),
            Error::INVALIDCARDINALITY(long) => fmt_spice(f, "INVALIDCARDINALITY", long),
            Error::INVALIDCASE(long) => fmt_spice(f, "INVALIDCASE", long),
            Error::INVALIDCONSTSTEP(long) => fmt_spice(f, "INVALIDCONSTSTEP", long),
            Error::INVALIDCOUNT(long) => fmt_spice(f, "INVALIDCOUNT", long),
            Error::INVALIDDATATYPE(long) => fmt_spice(f, "INVALIDDATATYPE", long),
            Error::INVALIDDEGREE(long) => fmt_spice(f, "INVALIDDEGREE", long),
            Error::INVALIDDESCRTIME(long) => fmt_spice(f, "INVALIDDESCRTIME", long),
            Error::INVALIDDIMENSION(long) => fmt_spice(f, "INVALIDDIMENSION", long),
            Error::INVALIDDIRECTION(long) => fmt_spice(f, "INVALIDDIRECTION", long),
            Error::INVALIDDIVISOR(long) => fmt_spice(f, "INVALIDDIVISOR", long),
            Error::INVALIDELLIPSE(long) => fmt_spice(f, "INVALIDELLIPSE", long),
            Error::INVALIDENDPNTSPEC(long) => fmt_spice(f, "INVALIDENDPNTSPEC", long),
            Error::INVALIDEPOCH(long) => fmt_spice(f, "INVALIDEPOCH", long),
            Error::INVALIDFILETYPE(long) => fmt_spice(f, "INVALIDFILETYPE", long),
            Error::INVALIDFIXREF(long) => fmt_spice(f, "INVALIDFIXREF", long),
            Error::INVALIDFORMAT(long) => fmt_spice(f, "INVALIDFORMAT", long),
            Error::INVALIDFOV(long) => fmt_spice(f, "INVALIDFOV", long),
            Error::INVALIDFRAME(long) => fmt_spice(f, "INVALIDFRAME", long),
            Error::INVALIDFRAMEDEF(long) => fmt_spice(f, "INVALIDFRAMEDEF", long),
            Error::INVALIDGEOMETRY(long) => fmt_spice(f, "INVALIDGEOMETRY", long),
            Error::INVALIDHANDLE(long) => fmt_spice(f, "INVALIDHANDLE", long),
            Error::INVALIDINDEX(long) => fmt_spice(f, "INVALIDINDEX", long),
            Error::INVALIDLIMBTYPE(long) => fmt_spice(f, "INVALIDLIMBTYPE", long),
            Error::INVALIDLISTITEM(long) => fmt_spice(f, "INVALIDLISTITEM", long),
            Error::INVALIDLOCUS(long) => fmt_spice(f, "INVALIDLOCUS", long),
            Error::INVALIDLONEXTENT(long) => fmt_spice(f, "INVALIDLONEXTENT", long),
            Error::INVALIDMETADATA(long) => fmt_spice(f, "INVALIDMETADATA", long),
            Error::INVALIDMETHOD(long) => fmt_spice(f, "INVALIDMETHOD", long),
            Error::INVALIDMSGTYPE(long) => fmt_spice(f, "INVALIDMSGTYPE", long),
            Error::INVALIDNAME(long) => fmt_spice(f, "INVALIDNAME", long),
            Error::INVALIDNODE(long) => fmt_spice(f, "INVALIDNODE", long),
            Error::INVALIDNUMINT(long) => fmt_spice(f, "INVALIDNUMINT", long),
            Error::INVALIDNUMINTS(long) => fmt_spice(f, "INVALIDNUMINTS", long),
            Error::INVALIDNUMREC(long) => fmt_spice(f, "INVALIDNUMREC", long),
            Error::INVALIDOCCTYPE(long) => fmt_spice(f, "INVALIDOCCTYPE", long),
            Error::INVALIDOPERATION(long) => fmt_spice(f, "INVALIDOPERATION", long),
            Error::INVALIDOPTION(long) => fmt_spice(f, "INVALIDOPTION", long),
            Error::INVALIDPLANE(long) => fmt_spice(f, "INVALIDPLANE", long),
            Error::INVALIDRADII(long) => fmt_spice(f, "INVALIDRADII", long),
            Error::INVALIDRADIUS(long) => fmt_spice(f, "INVALIDRADIUS", long),
            Error::INVALIDREFFRAME(long) => fmt_spice(f, "INVALIDREFFRAME", long),
            Error::INVALIDROLLSTEP(long) => fmt_spice(f, "INVALIDROLLSTEP", long),
            Error::INVALIDSCLKRATE(long) => fmt_spice(f, "INVALIDSCLKRATE", long),
            Error::INVALIDSCLKSTRING(long) => fmt_spice(f, "INVALIDSCLKSTRING", long),
            Error::INVALIDSCLKTIME(long) => fmt_spice(f, "INVALIDSCLKTIME", long),
            Error::INVALIDSEARCHSTEP(long) => fmt_spice(f, "INVALIDSEARCHSTEP", long),
            Error::INVALIDSELECTION(long) => fmt_spice(f, "INVALIDSELECTION", long),
            Error::INVALIDSHADOW(long) => fmt_spice(f, "INVALIDSHADOW", long),
            Error::INVALIDSHAPE(long) => fmt_spice(f, "INVALIDSHAPE", long),
            Error::INVALIDSHAPECOMBO(long) => fmt_spice(f, "INVALIDSHAPECOMBO", long),
            Error::INVALIDSIZE(long) => fmt_spice(f, "INVALIDSIZE", long),
            Error::INVALIDSTARTTIME(long) => fmt_spice(f, "INVALIDSTARTTIME", long),
            Error::INVALIDSTATE(long) => fmt_spice(f, "INVALIDSTATE", long),
            Error::INVALIDSTEP(long) => fmt_spice(f, "INVALIDSTEP", long),
            Error::INVALIDSTEPSIZE(long) => fmt_spice(f, "INVALIDSTEPSIZE", long),
            Error::INVALIDSUBLIST(long) => fmt_spice(f, "INVALIDSUBLIST", long),
            Error::INVALIDSUBTYPE(long) => fmt_spice(f, "INVALIDSUBTYPE", long),
            Error::INVALIDTABLENAME(long) => fmt_spice(f, "INVALIDTABLENAME", long),
            Error::INVALIDTABLESIZE(long) => fmt_spice(f, "INVALIDTABLESIZE", long),
            Error::INVALIDTARGET(long) => fmt_spice(f, "INVALIDTARGET", long),
            Error::INVALIDTERMTYPE(long) => fmt_spice(f, "INVALIDTERMTYPE", long),
            Error::INVALIDTEXT(long) => fmt_spice(f, "INVALIDTEXT", long),
            Error::INVALIDTIMEFORMAT(long) => fmt_spice(f, "INVALIDTIMEFORMAT", long),
            Error::INVALIDTIMESTRING(long) => fmt_spice(f, "INVALIDTIMESTRING", long),
            Error::INVALIDTOLERANCE(long) => fmt_spice(f, "INVALIDTOLERANCE", long),
            Error::INVALIDTYPE(long) => fmt_spice(f, "INVALIDTYPE", long),
            Error::INVALIDVALUE(long) => fmt_spice(f, "INVALIDVALUE", long),
            Error::INVALIDVERTEX(long) => fmt_spice(f, "INVALIDVERTEX", long),
            Error::IRFNOTREC(long) => fmt_spice(f, "IRFNOTREC", long),
            Error::ITEMNOTFOUND(long) => fmt_spice(f, "ITEMNOTFOUND", long),
            Error::ITEMNOTRECOGNIZED(long) => fmt_spice(f, "ITEMNOTRECOGNIZED", long),
            Error::ITERATIONEXCEEDED(long) => fmt_spice(f, "ITERATIONEXCEEDED", long),
            Error::KERNELPOOLFULL(long) => fmt_spice(f, "KERNELPOOLFULL", long),
            Error::KERNELVARNOTFOUND(long) => fmt_spice(f, "KERNELVARNOTFOUND", long),
            Error::KERVARSETOVERFLOW(long) => fmt_spice(f, "KERVARSETOVERFLOW", long),
            Error::KERVARTOOBIG(long) => fmt_spice(f, "KERVARTOOBIG", long),
            Error::LOWERBOUNDTOOLOW(long) => fmt_spice(f, "LOWERBOUNDTOOLOW", long),
            Error::MALFORMEDSEGMENT(long) => fmt_spice(f, "MALFORMEDSEGMENT", long),
            Error::MARKERNOTFOUND(long) => fmt_spice(f, "MARKERNOTFOUND", long),
            Error::MESSAGETOOLONG(long) => fmt_spice(f, "MESSAGETOOLONG", long),
            Error::MISSINGDATA(long) => fmt_spice(f, "MISSINGDATA", long),
            Error::MISSINGFRAMEVAR(long) => fmt_spice(f, "MISSINGFRAMEVAR", long),
            Error::MISSINGKPV(long) => fmt_spice(f, "MISSINGKPV", long),
            Error::MISSINGTIMEINFO(long) => fmt_spice(f, "MISSINGTIMEINFO", long),
            Error::MISSINGVALUE(long) => fmt_spice(f, "MISSINGVALUE", long),
            Error::NAMESNOTRESOLVED(long) => fmt_spice(f, "NAMESNOTRESOLVED", long),
            Error::NAMETABLEFULL(long) => fmt_spice(f, "NAMETABLEFULL", long),
            Error::NEGATIVEHASHVALUE1(long) => fmt_spice(f, "NEGATIVEHASHVALUE1", long),
            Error::NEGATIVEHASHVALUE2(long) => fmt_spice(f, "NEGATIVEHASHVALUE2", long),
            Error::NEGATIVETOL(long) => fmt_spice(f, "NEGATIVETOL", long),
            Error::NOARRAYSTARTED(long) => fmt_spice(f, "NOARRAYSTARTED", long),
            Error::NOAVDATA(long) => fmt_spice(f, "NOAVDATA", long),
            Error::NOCLASS(long) => fmt_spice(f, "NOCLASS", long),
            Error::NOCONVERG(long) => fmt_spice(f, "NOCONVERG", long),
            Error::NOCONVERGENCE(long) => fmt_spice(f, "NOCONVERGENCE", long),
            Error::NOCURRENTARRAY(long) => fmt_spice(f, "NOCURRENTARRAY", long),
            Error::NODETOOFULL(long) => fmt_spice(f, "NODETOOFULL", long),
            Error::NODSKSEGMENTS(long) => fmt_spice(f, "NODSKSEGMENTS", long),
            Error::NOFRAME(long) => fmt_spice(f, "NOFRAME", long),
            Error::NOFRAMECONNECT(long) => fmt_spice(f, "NOFRAMECONNECT", long),
            Error::NOFRAMEDATA(long) => fmt_spice(f, "NOFRAMEDATA", long),
            Error::NOFRAMEINFO(long) => fmt_spice(f, "NOFRAMEINFO", long),
            Error::NOFRAMENAME(long) => fmt_spice(f, "NOFRAMENAME", long),
            Error::NOFREELOGICALUNIT(long) => fmt_spice(f, "NOFREELOGICALUNIT", long),
            Error::NOFREENODES(long) => fmt_spice(f, "NOFREENODES", long),
            Error::NOINTERVAL(long) => fmt_spice(f, "NOINTERVAL", long),
            Error::NOLEAPSECONDS(long) => fmt_spice(f, "NOLEAPSECONDS", long),
            Error::NOLOADEDDSKFILES(long) => fmt_spice(f, "NOLOADEDDSKFILES", long),
            Error::NOLOADEDFILES(long) => fmt_spice(f, "NOLOADEDFILES", long),
            Error::NOMOREROOM(long) => fmt_spice(f, "NOMOREROOM", long),
            Error::NONCONICMOTION(long) => fmt_spice(f, "NONCONICMOTION", long),
            Error::NONEMPTYENTRY(long) => fmt_spice(f, "NONEMPTYENTRY", long),
            Error::NONEMPTYTREE(long) => fmt_spice(f, "NONEMPTYTREE", long),
            Error::NONEXISTELEMENTS(long) => fmt_spice(f, "NONEXISTELEMENTS", long),
            Error::NONPOSITIVEAXIS(long) => fmt_spice(f, "NONPOSITIVEAXIS", long),
            Error::NONPOSITIVEMASS(long) => fmt_spice(f, "NONPOSITIVEMASS", long),
            Error::NONPOSITIVERADIUS(long) => fmt_spice(f, "NONPOSITIVERADIUS", long),
            Error::NONPOSITIVESCALE(long) => fmt_spice(f, "NONPOSITIVESCALE", long),
            Error::NONPOSITIVEVALUE(long) => fmt_spice(f, "NONPOSITIVEVALUE", long),
            Error::NONPOSPACKETSIZE(long) => fmt_spice(f, "NONPOSPACKETSIZE", long),
            Error::NONPRINTABLECHARS(long) => fmt_spice(f, "NONPRINTABLECHARS", long),
            Error::NONPRINTINGCHAR(long) => fmt_spice(f, "NONPRINTINGCHAR", long),
            Error::NONPRINTINGCHARS(long) => fmt_spice(f, "NONPRINTINGCHARS", long),
            Error::NONUNITNORMAL(long) => fmt_spice(f, "NONUNITNORMAL", long),
            Error::NOPARTITION(long) => fmt_spice(f, "NOPARTITION", long),
            Error::NOPICTURE(long) => fmt_spice(f, "NOPICTURE", long),
            Error::NOSEGMENTSFOUND(long) => fmt_spice(f, "NOSEGMENTSFOUND", long),
            Error::NOSEPARATION(long) => fmt_spice(f, "NOSEPARATION", long),
            Error::NOSUCHFILE(long) => fmt_spice(f, "NOSUCHFILE", long),
            Error::NOSUCHHANDLE(long) => fmt_spice(f, "NOSUCHHANDLE", long),
            Error::NOSUCHSYMBOL(long) => fmt_spice(f, "NOSUCHSYMBOL", long),
            Error::NOTADAFFILE(long) => fmt_spice(f, "NOTADAFFILE", long),
            Error::NOTADASFILE(long) => fmt_spice(f, "NOTADASFILE", long),
            Error::NOTADPNUMBER(long) => fmt_spice(f, "NOTADPNUMBER", long),
            Error::NOTANINTEGER(long) => fmt_spice(f, "NOTANINTEGER", long),
            Error::NOTAROTATION(long) => fmt_spice(f, "NOTAROTATION", long),
            Error::NOTCOMPUTABLE(long) => fmt_spice(f, "NOTCOMPUTABLE", long),
            Error::NOTDISJOINT(long) => fmt_spice(f, "NOTDISJOINT", long),
            Error::NOTDISTINCT(long) => fmt_spice(f, "NOTDISTINCT", long),
            Error::NOTINDEXED(long) => fmt_spice(f, "NOTINDEXED", long),
            Error::NOTINITIALIZED(long) => fmt_spice(f, "NOTINITIALIZED", long),
            Error::NOTINPART(long) => fmt_spice(f, "NOTINPART", long),
            Error::NOTRANSLATION(long) => fmt_spice(f, "NOTRANSLATION", long),
            Error::NOTRECOGNIZED(long) => fmt_spice(f, "NOTRECOGNIZED", long),
            Error::NOTSEMCHECKED(long) => fmt_spice(f, "NOTSEMCHECKED", long),
            Error::NOTSUPPORTED(long) => fmt_spice(f, "NOTSUPPORTED", long),
            Error::NUMBEREXPECTED(long) => fmt_spice(f, "NUMBEREXPECTED", long),
            Error::NUMCOEFFSNOTPOS(long) => fmt_spice(f, "NUMCOEFFSNOTPOS", long),
            Error::NUMCONSTANTSNEG(long) => fmt_spice(f, "NUMCONSTANTSNEG", long),
            Error::NUMERICOVERFLOW(long) => fmt_spice(f, "NUMERICOVERFLOW", long),
            Error::NUMPACKETSNOTPOS(long) => fmt_spice(f, "NUMPACKETSNOTPOS", long),
            Error::NUMPARTSUNEQUAL(long) => fmt_spice(f, "NUMPARTSUNEQUAL", long),
            Error::NUMSTATESNOTPOS(long) => fmt_spice(f, "NUMSTATESNOTPOS", long),
            Error::OBJECTSTOOCLOSE(long) => fmt_spice(f, "OBJECTSTOOCLOSE", long),
            Error::ORBITDECAY(long) => fmt_spice(f, "ORBITDECAY", long),
            Error::OUTOFRANGE(long) => fmt_spice(f, "OUTOFRANGE", long),
            Error::OUTOFROOM(long) => fmt_spice(f, "OUTOFROOM", long),
            Error::OUTPUTTOOSHORT(long) => fmt_spice(f, "OUTPUTTOOSHORT", long),
            Error::PARTIALFRAMESPEC(long) => fmt_spice(f, "PARTIALFRAMESPEC", long),
            Error::PASTENDSTR(long) => fmt_spice(f, "PASTENDSTR", long),
            Error::PATHMISMATCH(long) => fmt_spice(f, "PATHMISMATCH", long),
            Error::PATHTOOLONG(long) => fmt_spice(f, "PATHTOOLONG", long),
            Error::PCKFILETABLEFULL(long) => fmt_spice(f, "PCKFILETABLEFULL", long),
            Error::PCKKRECTOOLARGE(long) => fmt_spice(f, "PCKKRECTOOLARGE", long),
            Error::PLATELISTTOOSMALL(long) => fmt_spice(f, "PLATELISTTOOSMALL", long),
            Error::POINTEROUTOFRANGE(long) => fmt_spice(f, "POINTEROUTOFRANGE", long),
            Error::POINTERTABLEFULL(long) => fmt_spice(f, "POINTERTABLEFULL", long),
            Error::POINTNOTFOUND(long) => fmt_spice(f, "POINTNOTFOUND", long),
            Error::POINTNOTINSEGMENT(long) => fmt_spice(f, "POINTNOTINSEGMENT", long),
            Error::POINTNOTONSURFACE(long) => fmt_spice(f, "POINTNOTONSURFACE", long),
            Error::POINTOFFSURFACE(long) => fmt_spice(f, "POINTOFFSURFACE", long),
            Error::POINTONZAXIS(long) => fmt_spice(f, "POINTONZAXIS", long),
            Error::POINTTOOSMALL(long) => fmt_spice(f, "POINTTOOSMALL", long),
            Error::PTRARRAYTOOSMALL(long) => fmt_spice(f, "PTRARRAYTOOSMALL", long),
            Error::QUERYFAILURE(long) => fmt_spice(f, "QUERYFAILURE", long),
            Error::QUERYNOTPARSED(long) => fmt_spice(f, "QUERYNOTPARSED", long),
            Error::RADIIOUTOFORDER(long) => fmt_spice(f, "RADIIOUTOFORDER", long),
            Error::RAYISZEROVECTOR(long) => fmt_spice(f, "RAYISZEROVECTOR", long),
            Error::READFAILED(long) => fmt_spice(f, "READFAILED", long),
            Error::RECORDNOTFOUND(long) => fmt_spice(f, "RECORDNOTFOUND", long),
            Error::RECURSIONTOODEEP(long) => fmt_spice(f, "RECURSIONTOODEEP", long),
            Error::RECURSIVELOADING(long) => fmt_spice(f, "RECURSIVELOADING", long),
            Error::REFANGLEMISSING(long) => fmt_spice(f, "REFANGLEMISSING", long),
            Error::REFVALNOTINTEGER(long) => fmt_spice(f, "REFVALNOTINTEGER", long),
            Error::REFVECTORMISSING(long) => fmt_spice(f, "REFVECTORMISSING", long),
            Error::REQUESTOUTOFBOUNDS(long) => fmt_spice(f, "REQUESTOUTOFBOUNDS", long),
            Error::REQUESTOUTOFORDER(long) => fmt_spice(f, "REQUESTOUTOFORDER", long),
            Error::RWCONFLICT(long) => fmt_spice(f, "RWCONFLICT", long),
            Error::SCLKTRUNCATED(long) => fmt_spice(f, "SCLKTRUNCATED", long),
            Error::SEGIDTOOLONG(long) => fmt_spice(f, "SEGIDTOOLONG", long),
            Error::SEGMENTNOTFOUND(long) => fmt_spice(f, "SEGMENTNOTFOUND", long),
            Error::SEGMENTTABLEFULL(long) => fmt_spice(f, "SEGMENTTABLEFULL", long),
            Error::SEGTABLETOOSMALL(long) => fmt_spice(f, "SEGTABLETOOSMALL", long),
            Error::SEGTYPECONFLICT(long) => fmt_spice(f, "SEGTYPECONFLICT", long),
            Error::SETEXCESS(long) => fmt_spice(f, "SETEXCESS", long),
            Error::SETTOOSMALL(long) => fmt_spice(f, "SETTOOSMALL", long),
            Error::SHAPEMISSING(long) => fmt_spice(f, "SHAPEMISSING", long),
            Error::SHAPENOTSUPPORTED(long) => fmt_spice(f, "SHAPENOTSUPPORTED", long),
            Error::SIZEMISMATCH(long) => fmt_spice(f, "SIZEMISMATCH", long),
            Error::SIZEOUTOFRANGE(long) => fmt_spice(f, "SIZEOUTOFRANGE", long),
            Error::SPCRFLNOTCALLED(long) => fmt_spice(f, "SPCRFLNOTCALLED", long),
            Error::SPICEISTIRED(long) => fmt_spice(f, "SPICEISTIRED", long),
            Error::SPKFILETABLEFULL(long) => fmt_spice(f, "SPKFILETABLEFULL", long),
            Error::SPKINSUFFDATA(long) => fmt_spice(f, "SPKINSUFFDATA", long),
            Error::SPKINVALIDOPTION(long) => fmt_spice(f, "SPKINVALIDOPTION", long),
            Error::SPKNOTASUBSET(long) => fmt_spice(f, "SPKNOTASUBSET", long),
            Error::SPKRECTOOLARGE(long) => fmt_spice(f, "SPKRECTOOLARGE", long),
            Error::SPKREFNOTSUPP(long) => fmt_spice(f, "SPKREFNOTSUPP", long),
            Error::SPKSTRUCTUREERROR(long) => fmt_spice(f, "SPKSTRUCTUREERROR", long),
            Error::SPKTYPENOTSUPP(long) => fmt_spice(f, "SPKTYPENOTSUPP", long),
            Error::STFULL(long) => fmt_spice(f, "STFULL", long),
            Error::STRINGTOOSHORT(long) => fmt_spice(f, "STRINGTOOSHORT", long),
            Error::STRINGTRUNCATED(long) => fmt_spice(f, "STRINGTRUNCATED", long),
            Error::SUBORBITAL(long) => fmt_spice(f, "SUBORBITAL", long),
            Error::SUBPOINTNOTFOUND(long) => fmt_spice(f, "SUBPOINTNOTFOUND", long),
            Error::SYNTAXERROR(long) => fmt_spice(f, "SYNTAXERROR", long),
            Error::TABLENOTLOADED(long) => fmt_spice(f, "TABLENOTLOADED", long),
            Error::TIMECONFLICT(long) => fmt_spice(f, "TIMECONFLICT", long),
            Error::TIMEOUTOFBOUNDS(long) => fmt_spice(f, "TIMEOUTOFBOUNDS", long),
            Error::TIMESDONTMATCH(long) => fmt_spice(f, "TIMESDONTMATCH", long),
            Error::TIMESOUTOFORDER(long) => fmt_spice(f, "TIMESOUTOFORDER", long),
            Error::TIMEZONEERROR(long) => fmt_spice(f, "TIMEZONEERROR", long),
            Error::TOOFEWPACKETS(long) => fmt_spice(f, "TOOFEWPACKETS", long),
            Error::TOOFEWPLATES(long) => fmt_spice(f, "TOOFEWPLATES", long),
            Error::TOOFEWSTATES(long) => fmt_spice(f, "TOOFEWSTATES", long),
            Error::TOOFEWVERTICES(long) => fmt_spice(f, "TOOFEWVERTICES", long),
            Error::TOOFEWWINDOWS(long) => fmt_spice(f, "TOOFEWWINDOWS", long),
            Error::TOOMANYBASEFRAMES(long) => fmt_spice(f, "TOOMANYBASEFRAMES", long),
            Error::TOOMANYFILESOPEN(long) => fmt_spice(f, "TOOMANYFILESOPEN", long),
            Error::TOOMANYHITS(long) => fmt_spice(f, "TOOMANYHITS", long),
            Error::TOOMANYPAIRS(long) => fmt_spice(f, "TOOMANYPAIRS", long),
            Error::TOOMANYPARTS(long) => fmt_spice(f, "TOOMANYPARTS", long),
            Error::TOOMANYSURFACES(long) => fmt_spice(f, "TOOMANYSURFACES", long),
            Error::TOOMANYWATCHES(long) => fmt_spice(f, "TOOMANYWATCHES", long),
            Error::TRANSFERFILE(long) => fmt_spice(f, "TRANSFERFILE", long),
            Error::TYPE1TEXTEK(long) => fmt_spice(f, "TYPE1TEXTEK", long),
            Error::TYPEMISMATCH(long) => fmt_spice(f, "TYPEMISMATCH", long),
            Error::TYPENOTSUPPORTED(long) => fmt_spice(f, "TYPENOTSUPPORTED", long),
            Error::UNALLOCATEDNODE(long) => fmt_spice(f, "UNALLOCATEDNODE", long),
            Error::UNDEFINEDFRAME(long) => fmt_spice(f, "UNDEFINEDFRAME", long),
            Error::UNINITIALIZED(long) => fmt_spice(f, "UNINITIALIZED", long),
            Error::UNINITIALIZEDHASH(long) => fmt_spice(f, "UNINITIALIZEDHASH", long),
            Error::UNINITIALIZEDVALUE(long) => fmt_spice(f, "UNINITIALIZEDVALUE", long),
            Error::UNITSMISSING(long) => fmt_spice(f, "UNITSMISSING", long),
            Error::UNITSNOTREC(long) => fmt_spice(f, "UNITSNOTREC", long),
            Error::UNKNONWNTIMESYSTEM(long) => fmt_spice(f, "UNKNONWNTIMESYSTEM", long),
            Error::UNKNOWNBFF(long) => fmt_spice(f, "UNKNOWNBFF", long),
            Error::UNKNOWNCKMETA(long) => fmt_spice(f, "UNKNOWNCKMETA", long),
            Error::UNKNOWNCOMPARE(long) => fmt_spice(f, "UNKNOWNCOMPARE", long),
            Error::UNKNOWNFILARC(long) => fmt_spice(f, "UNKNOWNFILARC", long),
            Error::UNKNOWNFRAME(long) => fmt_spice(f, "UNKNOWNFRAME", long),
            Error::UNKNOWNFRAME2(long) => fmt_spice(f, "UNKNOWNFRAME2", long),
            Error::UNKNOWNFRAMESPEC(long) => fmt_spice(f, "UNKNOWNFRAMESPEC", long),
            Error::UNKNOWNFRAMETYPE(long) => fmt_spice(f, "UNKNOWNFRAMETYPE", long),
            Error::UNKNOWNID(long) => fmt_spice(f, "UNKNOWNID", long),
            Error::UNKNOWNINCLUSION(long) => fmt_spice(f, "UNKNOWNINCLUSION", long),
            Error::UNKNOWNINDEXTYPE(long) => fmt_spice(f, "UNKNOWNINDEXTYPE", long),
            Error::UNKNOWNKERNELTYPE(long) => fmt_spice(f, "UNKNOWNKERNELTYPE", long),
            Error::UNKNOWNMETAITEM(long) => fmt_spice(f, "UNKNOWNMETAITEM", long),
            Error::UNKNOWNMODE(long) => fmt_spice(f, "UNKNOWNMODE", long),
            Error::UNKNOWNOP(long) => fmt_spice(f, "UNKNOWNOP", long),
            Error::UNKNOWNPCKTYPE(long) => fmt_spice(f, "UNKNOWNPCKTYPE", long),
            Error::UNKNOWNREFDIR(long) => fmt_spice(f, "UNKNOWNREFDIR", long),
            Error::UNKNOWNSPKTYPE(long) => fmt_spice(f, "UNKNOWNSPKTYPE", long),
            Error::UNKNOWNSYSTEM(long) => fmt_spice(f, "UNKNOWNSYSTEM", long),
            Error::UNMATCHENDPTS(long) => fmt_spice(f, "UNMATCHENDPTS", long),
            Error::UNNATURALRELATION(long) => fmt_spice(f, "UNNATURALRELATION", long),
            Error::UNORDEREDREFS(long) => fmt_spice(f, "UNORDEREDREFS", long),
            Error::UNORDEREDTIMES(long) => fmt_spice(f, "UNORDEREDTIMES", long),
            Error::UNPARSEDQUERY(long) => fmt_spice(f, "UNPARSEDQUERY", long),
            Error::UNPARSEDTIME(long) => fmt_spice(f, "UNPARSEDTIME", long),
            Error::UNRECOGNIZEDACTION(long) => fmt_spice(f, "UNRECOGNIZEDACTION", long),
            Error::UNRECOGNIZEDTYPE(long) => fmt_spice(f, "UNRECOGNIZEDTYPE", long),
            Error::UNRESOLVEDNAMES(long) => fmt_spice(f, "UNRESOLVEDNAMES", long),
            Error::UNRESOLVEDTIMES(long) => fmt_spice(f, "UNRESOLVEDTIMES", long),
            Error::UNSUPPORTEDARCH(long) => fmt_spice(f, "UNSUPPORTEDARCH", long),
            Error::UNSUPPORTEDBFF(long) => fmt_spice(f, "UNSUPPORTEDBFF", long),
            Error::UNSUPPORTEDMETHOD(long) => fmt_spice(f, "UNSUPPORTEDMETHOD", long),
            Error::UNSUPPORTEDSPEC(long) => fmt_spice(f, "UNSUPPORTEDSPEC", long),
            Error::UPDATEPENDING(long) => fmt_spice(f, "UPDATEPENDING", long),
            Error::UTFULL(long) => fmt_spice(f, "UTFULL", long),
            Error::VALUEOUTOFRANGE(long) => fmt_spice(f, "VALUEOUTOFRANGE", long),
            Error::VALUETABLEFULL(long) => fmt_spice(f, "VALUETABLEFULL", long),
            Error::VARIABLENOTFOUND(long) => fmt_spice(f, "VARIABLENOTFOUND", long),
            Error::VARNAMETOOLONG(long) => fmt_spice(f, "VARNAMETOOLONG", long),
            Error::VECTORTOOBIG(long) => fmt_spice(f, "VECTORTOOBIG", long),
            Error::VERSIONMISMATCH1(long) => fmt_spice(f, "VERSIONMISMATCH1", long),
            Error::VERSIONMISMATCH2(long) => fmt_spice(f, "VERSIONMISMATCH2", long),
            Error::VERTEXNOTINGRID(long) => fmt_spice(f, "VERTEXNOTINGRID", long),
            Error::WINDOWEXCESS(long) => fmt_spice(f, "WINDOWEXCESS", long),
            Error::WINDOWSTOOSMALL(long) => fmt_spice(f, "WINDOWSTOOSMALL", long),
            Error::WINDOWTOOSMALL(long) => fmt_spice(f, "WINDOWTOOSMALL", long),
            Error::WORKSPACETOOSMALL(long) => fmt_spice(f, "WORKSPACETOOSMALL", long),
            Error::WRITEERROR(long) => fmt_spice(f, "WRITEERROR", long),
            Error::WRITEFAILED(long) => fmt_spice(f, "WRITEFAILED", long),
            Error::WRONGARCHITECTURE(long) => fmt_spice(f, "WRONGARCHITECTURE", long),
            Error::WRONGCKTYPE(long) => fmt_spice(f, "WRONGCKTYPE", long),
            Error::WRONGCONIC(long) => fmt_spice(f, "WRONGCONIC", long),
            Error::WRONGDATATYPE(long) => fmt_spice(f, "WRONGDATATYPE", long),
            Error::WRONGSEGMENT(long) => fmt_spice(f, "WRONGSEGMENT", long),
            Error::WRONGSPKTYPE(long) => fmt_spice(f, "WRONGSPKTYPE", long),
            Error::YEAROUTOFRANGE(long) => fmt_spice(f, "YEAROUTOFRANGE", long),
            Error::ZEROBORESIGHT(long) => fmt_spice(f, "ZEROBORESIGHT", long),
            Error::ZEROBOUNDSEXTENT(long) => fmt_spice(f, "ZEROBOUNDSEXTENT", long),
            Error::ZEROFRAMEID(long) => fmt_spice(f, "ZEROFRAMEID", long),
            Error::ZEROLENGTHCOLUMN(long) => fmt_spice(f, "ZEROLENGTHCOLUMN", long),
            Error::ZEROPOSITION(long) => fmt_spice(f, "ZEROPOSITION", long),
            Error::ZEROQUATERNION(long) => fmt_spice(f, "ZEROQUATERNION", long),
            Error::ZEROSTEP(long) => fmt_spice(f, "ZEROSTEP", long),
            Error::ZEROVECTOR(long) => fmt_spice(f, "ZEROVECTOR", long),
            Error::ZEROVELOCITY(long) => fmt_spice(f, "ZEROVELOCITY", long),
            Error::ZZHOLDDGETFAILED(long) => fmt_spice(f, "ZZHOLDDGETFAILED", long),
        }
    }
}