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
//! This crate collates a number of standardised terms for book and ebook metadata and makes them available to use //! as Rust enums. //! It is primarily a library structure to let tagged metadata be used across different crates and includes //! little functionality of its own. #![deny(dead_code)] #![deny(unreachable_patterns)] #![deny(unused_extern_crates)] #![deny(unused_imports)] #![deny(unused_qualifications)] #![deny(clippy::all)] #![deny(missing_debug_implementations)] #![deny(unused_results)] #![deny(variant_size_differences)] use serde::{Deserialize, Serialize}; use std::convert::TryFrom; use std::str::FromStr; // Sources: // dc dublin core elements // dcterms http://purl.org/dc/terms/ // marc http://id.loc.gov/vocabulary/ // onix http://www.editeur.org/ONIX/book/codelists/current.html# // structural semantics https://idpf.github.io/epub-vocabs/structure/ /// The role of a contributor, either as an ONIX or MARC code #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum ContributorRole { /// An onix code Onix(OnixContributorCode), /// A marc code Marc(MarcRelator), } impl FromStr for ContributorRole { type Err = (); fn from_str(s: &str) -> Result<Self, Self::Err> { let as_marc_relator = s.parse::<MarcRelator>(); if let Ok(m) = as_marc_relator { return Ok(ContributorRole::Marc(m)); } if let Ok(o) = s.parse::<OnixContributorCode>() { return Ok(ContributorRole::Onix(o)); } Err(()) } } impl TryFrom<ContributorRole> for MarcRelator { type Error = (); fn try_from(c: ContributorRole) -> Result<Self, Self::Error> { match c { ContributorRole::Marc(m) => Ok(m), ContributorRole::Onix(o) => { if let Some(m) = o.map_code() { Ok(m) } else { Err(()) } } } } } // https://idpf.github.io/epub-vocabs/structure/#sections /// Document partitions #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum DocumentPartition { /// the cover of a document Cover, /// Frontmatter Frontmatter, /// Bodymatter Bodymatter, /// Backmatter Backmatter, } /// A mainmatter division of a document #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum DocumentDivision { Volume, Part, Chapter, } /// #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum DocumentSectionOrComponent { Abstract, Foreword, Preface, Prologue, Introduction, Preamble, Conclusion, Epilogue, Afterword, Epigraph, } #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum DocumentNavigation { Toc, TocBrief, Landmarks, Loa, Loi, Lot, Lov, } #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum DocumentReferenceSection { Appendix, Colophon, Credits, Keywords, } #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum PreliminarySection { Titlepage, Halftitlepage, CopyrightPage, SeriesPage, Acknowledgements, Imprint, Imprimatur, Contributors, OtherCredits, Errata, Dedication, RevisionHistory, } #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum TitlesAndHeadings { Halftitle, Fulltitle, Covertitle, Title, Subtitle, Bridgehead, } #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum Notes { Footnote, Endnote, Footnotes, Endnotes, NoteRef, } /// Marc relators (<http://id.loc.gov/vocabulary/relators.html/>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] #[serde(rename_all = "lowercase")] pub enum MarcRelator { /// Abridger: A person, family, or organization contributing to a resource by shortening or condensing the original work but leaving the nature and content of the original work substantially unchanged. For substantial modifications that result in the creation of a new work, see author Abr, /// Actor: A performer contributing to an expression of a work by acting as a cast member or player in a musical or dramatic presentation, etc. Act, /// Adapter: A person or organization who 1) reworks a musical composition, usually for a different medium, or 2) rewrites novels or stories for motion pictures or other audiovisual medium. Adp, /// Addressee: A person, family, or organization to whom the correspondence in a work is addressed Rcp, /// Analyst: A person or organization that reviews, examines and interprets data or information in a specific area Anl, /// Animator: A person contributing to a moving image work or computer program by giving apparent movement to inanimate objects or drawings. For the creator of the drawings that are animated, see artist Anm, /// Annotator: A person who makes manuscript annotations on an item Ann, /// Appellant: A person or organization who appeals a lower court's decision Apl, /// Appellee: A person or organization against whom an appeal is taken Ape, /// Applicant: A person or organization responsible for the submission of an application or who is named as eligible for the results of the processing of the application (e.g., bestowing of rights, reward, title, position) App, /// Architect: A person, family, or organization responsible for creating an architectural design, including a pictorial representation intended to show how a building, etc., will look when completed. It also oversees the construction of structures Arc, /// Arranger: A person, family, or organization contributing to a musical work by rewriting the composition for a medium of performance different from that for which the work was originally intended, or modifying the work for the same medium of performance, etc., such that the musical substance of the original composition remains essentially unchanged. For extensive modification that effectively results in the creation of a new musical work, see composer Arr, /// Art copyist: A person (e.g., a painter or sculptor) who makes copies of works of visual art Acp, /// Art director: A person contributing to a motion picture or television production by overseeing the artists and craftspeople who build the sets Adi, /// Artist: A person, family, or organization responsible for creating a work by conceiving, and implementing, an original graphic design, drawing, painting, etc. For book illustrators, prefer Illustrator [ill] Art, /// Artistic director: A person responsible for controlling the development of the artistic style of an entire production, including the choice of works to be presented and selection of senior production staff Ard, /// Assignee: A person or organization to whom a license for printing or publishing has been transferred Asg, /// Associated name: A person or organization associated with or found in an item or collection, which cannot be determined to be that of a Former owner [fmo] or other designated relationship indicative of provenance Asn, /// Attributed name: An author, artist, etc., relating him/her to a resource for which there is or once was substantial authority for designating that person as author, creator, etc. of the work Att, /// Auctioneer: A person or organization in charge of the estimation and public auctioning of goods, particularly books, artistic works, etc. Auc, /// Author: A person, family, or organization responsible for creating a work that is primarily textual in content, regardless of media type (e.g., printed text, spoken word, electronic text, tactile text) or genre (e.g., poems, novels, screenplays, blogs). Use also for persons, etc., creating a new work by paraphrasing, rewriting, or adapting works by another creator such that the modification has substantially changed the nature and content of the original or changed the medium of expression Aut, /// Author in quotations or text abstracts: A person or organization whose work is largely quoted or extracted in works to which he or she did not contribute directly. Such quotations are found particularly in exhibition catalogs, collections of photographs, etc. Aqt, /// Author of afterword, colophon, etc.: A person or organization responsible for an afterword, postface, colophon, etc. but who is not the chief author of a work Aft, /// Author of dialog: A person or organization responsible for the dialog or spoken commentary for a screenplay or sound recording Aud, /// Author of introduction, etc.: A person or organization responsible for an introduction, preface, foreword, or other critical introductory matter, but who is not the chief author Aui, /// Autographer: A person whose manuscript signature appears on an item Ato, /// Bibliographic antecedent: A person or organization responsible for a resource upon which the resource represented by the bibliographic description is based. This may be appropriate for adaptations, sequels, continuations, indexes, etc. Ant, /// Binder: A person who binds an item Bnd, /// Binding designer: A person or organization responsible for the binding design of a book, including the type of binding, the type of materials used, and any decorative aspects of the binding Bdd, /// Blurb writer: A person or organization responsible for writing a commendation or testimonial for a work, which appears on or within the publication itself, frequently on the back or dust jacket of print publications or on advertising material for all media Blw, /// Book designer: A person or organization involved in manufacturing a manifestation by being responsible for the entire graphic design of a book, including arrangement of type and illustration, choice of materials, and process used Bkd, /// Book producer: A person or organization responsible for the production of books and other print media Bkp, /// Bookjacket designer: A person or organization responsible for the design of flexible covers designed for or published with a book, including the type of materials used, and any decorative aspects of the bookjacket Bjd, /// Bookplate designer: A person or organization responsible for the design of a book owner's identification label that is most commonly pasted to the inside front cover of a book Bpd, /// Bookseller: A person or organization who makes books and other bibliographic materials available for purchase. Interest in the materials is primarily lucrative Bsl, /// Braille embosser: A person, family, or organization involved in manufacturing a resource by embossing Braille cells using a stylus, special embossing printer, or other device Brl, /// Broadcaster: A person, family, or organization involved in broadcasting a resource to an audience via radio, television, webcast, etc. Brd, /// Calligrapher: A person or organization who writes in an artistic hand, usually as a copyist and or engrosser Cll, /// Cartographer: A person, family, or organization responsible for creating a map, atlas, globe, or other cartographic work Ctg, /// Caster: A person, family, or organization involved in manufacturing a resource by pouring a liquid or molten substance into a mold and leaving it to solidify to take the shape of the mold Cas, /// Censor: A person or organization who examines bibliographic resources for the purpose of suppressing parts deemed objectionable on moral, political, military, or other grounds Cns, /// Choreographer: A person responsible for creating or contributing to a work of movement Chr, /// Cinematographer: A person in charge of photographing a motion picture, who plans the technical aspets of lighting and photographing of scenes, and often assists the director in the choice of angles, camera setups, and lighting moods. He or she may also supervise the further processing of filmed material up to the completion of the work print. Cinematographer is also referred to as director of photography. Do not confuse with videographer Cng, /// Client: A person or organization for whom another person or organization is acting Cli, /// Collection registrar: A curator who lists or inventories the items in an aggregate work such as a collection of items or works Cor, /// Collector: A curator who brings together items from various sources that are then arranged, described, and cataloged as a collection. A collector is neither the creator of the material nor a person to whom manuscripts in the collection may have been addressed Col, /// Collotyper: A person, family, or organization involved in manufacturing a manifestation of photographic prints from film or other colloid that has ink-receptive and ink-repellent surfaces Clt, /// Colorist: A person or organization responsible for applying color to drawings, prints, photographs, maps, moving images, etc Clr, /// Commentator: A performer contributing to a work by providing interpretation, analysis, or a discussion of the subject matter on a recording, film, or other audiovisual medium Cmm, /// Commentator for written text: A person or organization responsible for the commentary or explanatory notes about a text. For the writer of manuscript annotations in a printed book, use Annotator Cwt, /// Compiler: A person, family, or organization responsible for creating a new work (e.g., a bibliography, a directory) through the act of compilation, e.g., selecting, arranging, aggregating, and editing data, information, etc Com, /// Complainant: A person or organization who applies to the courts for redress, usually in an equity proceeding Cpl, /// Complainant-appellant: A complainant who takes an appeal from one court or jurisdiction to another to reverse the judgment, usually in an equity proceeding Cpt, /// Complainant-appellee: A complainant against whom an appeal is taken from one court or jurisdiction to another to reverse the judgment, usually in an equity proceeding Cpe, /// Composer: A person, family, or organization responsible for creating or contributing to a musical resource by adding music to a work that originally lacked it or supplements it Cmp, /// Compositor: A person or organization responsible for the creation of metal slug, or molds made of other materials, used to produce the text and images in printed matter Cmt, /// Conceptor: A person or organization responsible for the original idea on which a work is based, this includes the scientific author of an audio-visual item and the conceptor of an advertisement Ccp, /// Conductor: A performer contributing to a musical resource by leading a performing group (orchestra, chorus, opera, etc.) in a musical or dramatic presentation, etc. Cnd, /// Conservator: A person or organization responsible for documenting, preserving, or treating printed or manuscript material, works of art, artifacts, or other media Con, /// Consultant: A person or organization relevant to a resource, who is called upon for professional advice or services in a specialized field of knowledge or training Csl, /// Consultant to a project: A person or organization relevant to a resource, who is engaged specifically to provide an intellectual overview of a strategic or operational task and by analysis, specification, or instruction, to create or propose a cost-effective course of action or solution Csp, /// Contestant: A person(s) or organization who opposes, resists, or disputes, in a court of law, a claim, decision, result, etc. Cos, /// Contestant-appellant: A contestant who takes an appeal from one court of law or jurisdiction to another to reverse the judgment Cot, /// Contestant-appellee: A contestant against whom an appeal is taken from one court of law or jurisdiction to another to reverse the judgment Coe, /// Contestee: A person(s) or organization defending a claim, decision, result, etc. being opposed, resisted, or disputed in a court of law Cts, /// Contestee-appellant: A contestee who takes an appeal from one court or jurisdiction to another to reverse the judgment Ctt, /// Contestee-appellee: A contestee against whom an appeal is taken from one court or jurisdiction to another to reverse the judgment Cte, /// Contractor: A person or organization relevant to a resource, who enters into a contract with another person or organization to perform a specific Ctr, /// Contributor: A person, family or organization responsible for making contributions to the resource. This includes those whose work has been contributed to a larger work, such as an anthology, serial publication, or other compilation of individual works. If a more specific role is available, prefer that, e.g. editor, compiler, illustrator Ctb, /// Copyright claimant: A person or organization listed as a copyright owner at the time of registration. Copyright can be granted or later transferred to another person or organization, at which time the claimant becomes the copyright holder Cpc, /// Copyright holder: A person or organization to whom copy and legal rights have been granted or transferred for the intellectual content of a work. The copyright holder, although not necessarily the creator of the work, usually has the exclusive right to benefit financially from the sale and use of the work to which the associated copyright protection applies Cph, /// Corrector: A person or organization who is a corrector of manuscripts, such as the scriptorium official who corrected the work of a scribe. For printed matter, use Proofreader Crr, /// Correspondent: A person or organization who was either the writer or recipient of a letter or other communication Crp, /// Costume designer: A person, family, or organization that designs the costumes for a moving image production or for a musical or dramatic presentation or entertainment Cst, /// Court governed: A court governed by court rules, regardless of their official nature (e.g., laws, administrative regulations) Cou, /// Court reporter: A person, family, or organization contributing to a resource by preparing a court's opinions for publication Crt, /// Cover designer: A person or organization responsible for the graphic design of a book cover, album cover, slipcase, box, container, etc. For a person or organization responsible for the graphic design of an entire book, use Book designer; for book jackets, use Bookjacket designer Cov, /// Creator: A person or organization responsible for the intellectual or artistic content of a resource Cre, /// Curator: A person, family, or organization conceiving, aggregating, and/or organizing an exhibition, collection, or other item Cur, /// Dancer: A performer who dances in a musical, dramatic, etc., presentation Dnc, /// Data contributor: A person or organization that submits data for inclusion in a database or other collection of data Dtc, /// Data manager: A person or organization responsible for managing databases or other data sources Dtm, /// Dedicatee: A person, family, or organization to whom a resource is dedicated Dte, /// Dedicator: A person who writes a dedication, which may be a formal statement or in epistolary or verse form Dto, /// Defendant: A person or organization who is accused in a criminal proceeding or sued in a civil proceeding Dfd, /// Defendant-appellant: A defendant who takes an appeal from one court or jurisdiction to another to reverse the judgment, usually in a legal action Dft, /// Defendant-appellee: A defendant against whom an appeal is taken from one court or jurisdiction to another to reverse the judgment, usually in a legal action Dfe, /// Degree granting institution: A organization granting an academic degree Dgg, /// Degree supervisor: A person overseeing a higher level academic degree Dgs, /// Delineator: A person or organization executing technical drawings from others' designs Dln, /// Depicted: An entity depicted or portrayed in a work, particularly in a work of art Dpc, /// Depositor: A current owner of an item who deposited the item into the custody of another person, family, or organization, while still retaining ownership Dpt, /// Designer: A person, family, or organization responsible for creating a design for an object Dsr, /// Director: A person responsible for the general management and supervision of a filmed performance, a radio or television program, etc. Drt, /// Dissertant: A person who presents a thesis for a university or higher-level educational degree Dis, /// Distribution place: A place from which a resource, e.g., a serial, is distributed Dbp, /// Distributor: A person or organization that has exclusive or shared marketing rights for a resource Dst, /// Donor: A former owner of an item who donated that item to another owner Dnr, /// Draftsman: A person, family, or organization contributing to a resource by an architect, inventor, etc., by making detailed plans or drawings for buildings, ships, aircraft, machines, objects, etc Drm, /// Dubious author: A person or organization to which authorship has been dubiously or incorrectly ascribed Dub, /// Editor: A person, family, or organization contributing to a resource by revising or elucidating the content, e.g., adding an introduction, notes, or other critical matter. An editor may also prepare a resource for production, publication, or distribution. For major revisions, adaptations, etc., that substantially change the nature and content of the original work, resulting in a new work, see author Edt, /// Editor of compilation: A person, family, or organization contributing to a collective or aggregate work by selecting and putting together works, or parts of works, by one or more creators. For compilations of data, information, etc., that result in new works, see compiler Edc, /// Editor of moving image work: A person, family, or organization responsible for assembling, arranging, and trimming film, video, or other moving image formats, including both visual and audio aspects Edm, /// Electrician: A person responsible for setting up a lighting rig and focusing the lights for a production, and running the lighting at a performance Elg, /// Electrotyper: A person or organization who creates a duplicate printing surface by pressure molding and electrodepositing of metal that is then backed up with lead for printing Elt, /// Enacting jurisdiction: A jurisdiction enacting a law, regulation, constitution, court rule, etc. Enj, /// Engineer: A person or organization that is responsible for technical planning and design, particularly with construction Eng, /// Engraver: A person or organization who cuts letters, figures, etc. on a surface, such as a wooden or metal plate used for printing Egr, /// Etcher: A person or organization who produces text or images for printing by subjecting metal, glass, or some other surface to acid or the corrosive action of some other substance Etr, /// Event place: A place where an event such as a conference or a concert took place Evp, /// Expert: A person or organization in charge of the description and appraisal of the value of goods, particularly rare items, works of art, etc. Exp, /// Facsimilist: A person or organization that executed the facsimile Fac, /// Field director: A person or organization that manages or supervises the work done to collect raw data or do research in an actual setting or environment (typically applies to the natural and social sciences) Fld, /// Film director: A director responsible for the general management and supervision of a filmed performance Fmd, /// Film distributor: A person, family, or organization involved in distributing a moving image resource to theatres or other distribution channels Fds, /// Film editor: A person who, following the script and in creative cooperation with the Director, selects, arranges, and assembles the filmed material, controls the synchronization of picture and sound, and participates in other post-production tasks such as sound mixing and visual effects processing. Today, picture editing is often performed digitally. Flm, /// Film producer: A producer responsible for most of the business aspects of a film Fmp, /// Filmmaker: A person, family or organization responsible for creating an independent or personal film. A filmmaker is individually responsible for the conception and execution of all aspects of the film Fmk, /// First party: A person or organization who is identified as the only party or the party of the first party. In the case of transfer of rights, this is the assignor, transferor, licensor, grantor, etc. Multiple parties can be named jointly as the first party Fpy, /// Forger: A person or organization who makes or imitates something of value or importance, especially with the intent to defraud Frg, /// Former owner: A person, family, or organization formerly having legal possession of an item Fmo, /// Funder: A person or organization that furnished financial support for the production of the work Fnd, /// Geographic information specialist: A person responsible for geographic information system (GIS) development and integration with global positioning system data Gis, /// Honoree: A person, family, or organization honored by a work or item (e.g., the honoree of a festschrift, a person to whom a copy is presented) Hnr, /// Host: A performer contributing to a resource by leading a program (often broadcast) that includes other guests, performers, etc. (e.g., talk show host) Hst, /// Host institution: An organization hosting the event, exhibit, conference, etc., which gave rise to a resource, but having little or no responsibility for the content of the resource His, /// Illuminator: A person providing decoration to a specific item using precious metals or color, often with elaborate designs and motifs Ilu, /// Illustrator: A person, family, or organization contributing to a resource by supplementing the primary content with drawings, diagrams, photographs, etc. If the work is primarily the artistic content created by this entity, use artist or photographer Ill, /// Inscriber: A person who has written a statement of dedication or gift Ins, /// Instrumentalist: A performer contributing to a resource by playing a musical instrument Itr, /// Interviewee: A person, family or organization responsible for creating or contributing to a resource by responding to an interviewer, usually a reporter, pollster, or some other information gathering agent Ive, /// Interviewer: A person, family, or organization responsible for creating or contributing to a resource by acting as an interviewer, reporter, pollster, or some other information gathering agent Ivr, /// Inventor: A person, family, or organization responsible for creating a new device or process Inv, /// Issuing body: A person, family or organization issuing a work, such as an official organ of the body Isb, /// Judge: A person who hears and decides on legal matters in court. Jud, /// Jurisdiction governed: A jurisdiction governed by a law, regulation, etc., that was enacted by another jurisdiction Jug, /// Laboratory: An organization that provides scientific analyses of material samples Lbr, /// Laboratory director: A person or organization that manages or supervises work done in a controlled setting or environment Ldr, /// Landscape architect: An architect responsible for creating landscape works. This work involves coordinating the arrangement of existing and proposed land features and structures Lsa, /// Lead: A person or organization that takes primary responsibility for a particular activity or endeavor. May be combined with another relator term or code to show the greater importance this person or organization has regarding that particular role. If more than one relator is assigned to a heading, use the Lead relator only if it applies to all the relators Led, /// Lender: A person or organization permitting the temporary use of a book, manuscript, etc., such as for photocopying or microfilming Len, /// Libelant: A person or organization who files a libel in an ecclesiastical or admiralty case Lil, /// Libelant-appellant: A libelant who takes an appeal from one ecclesiastical court or admiralty to another to reverse the judgment Lit, /// Libelant-appellee: A libelant against whom an appeal is taken from one ecclesiastical court or admiralty to another to reverse the judgment Lie, /// Libelee: A person or organization against whom a libel has been filed in an ecclesiastical court or admiralty Lel, /// Libelee-appellant: A libelee who takes an appeal from one ecclesiastical court or admiralty to another to reverse the judgment Let, /// Libelee-appellee: A libelee against whom an appeal is taken from one ecclesiastical court or admiralty to another to reverse the judgment Lee, /// Librettist: An author of a libretto of an opera or other stage work, or an oratorio Lbt, /// Licensee: A person or organization who is an original recipient of the right to print or publish Lse, /// Licensor: A person or organization who is a signer of the license, imprimatur, etc Lso, /// Lighting designer: A person or organization who designs the lighting scheme for a theatrical presentation, entertainment, motion picture, etc. Lgd, /// Lithographer: A person or organization who prepares the stone or plate for lithographic printing, including a graphic artist creating a design directly on the surface from which printing will be done. Ltg, /// Lyricist: An author of the words of a non-dramatic musical work (e.g. the text of a song), except for oratorios Lyr, /// Manufacture place: The place of manufacture (e.g., printing, duplicating, casting, etc.) of a resource in a published form Mfp, /// Manufacturer: A person or organization responsible for printing, duplicating, casting, etc. a resource Mfr, /// Marbler: The entity responsible for marbling paper, cloth, leather, etc. used in construction of a resource Mrb, /// Markup editor: A person or organization performing the coding of SGML, HTML, or XML markup of metadata, text, etc. Mrk, /// Medium: A person held to be a channel of communication between the earthly world and a world Med, /// Metadata contact: A person or organization primarily responsible for compiling and maintaining the original description of a metadata set (e.g., geospatial metadata set) Mdc, /// Metal-engraver: An engraver responsible for decorations, illustrations, letters, etc. cut on a metal surface for printing or decoration Mte, /// Minute taker: A person, family, or organization responsible for recording the minutes of a meeting Mtk, /// Moderator: A performer contributing to a resource by leading a program (often broadcast) where topics are discussed, usually with participation of experts in fields related to the discussion Mod, /// Monitor: A person or organization that supervises compliance with the contract and is responsible for the report and controls its distribution. Sometimes referred to as the grantee, or controlling agency Mon, /// Music copyist: A person who transcribes or copies musical notation Mcp, /// Musical director: A person who coordinates the activities of the composer, the sound editor, and sound mixers for a moving image production or for a musical or dramatic presentation or entertainment Msd, /// Musician: A person or organization who performs music or contributes to the musical content of a work when it is not possible or desirable to identify the function more precisely Mus, /// Narrator: A performer contributing to a resource by reading or speaking in order to give an account of an act, occurrence, course of events, etc Nrt, /// Onscreen presenter: A performer contributing to an expression of a work by appearing on screen in nonfiction moving image materials or introductions to fiction moving image materials to provide contextual or background information. Use when another term (e.g., narrator, host) is either not applicable or not desired Osp, /// Opponent: A person or organization responsible for opposing a thesis or dissertation Opn, /// Organizer: A person, family, or organization organizing the exhibit, event, conference, etc., which gave rise to a resource Orm, /// Originator: A person or organization performing the work, i.e., the name of a person or organization associated with the intellectual content of the work. This category does not include the publisher or personal affiliation, or sponsor except where it is also the corporate author Org, /// Other: A role that has no equivalent in the MARC list. Oth, /// Owner: A person, family, or organization that currently owns an item or collection, i.e.has legal possession of a resource Own, /// Panelist: A performer contributing to a resource by participating in a program (often broadcast) where topics are discussed, usually with participation of experts in fields related to the discussion Pan, /// Papermaker: A person or organization responsible for the production of paper, usually from wood, cloth, or other fibrous material Ppm, /// Patent applicant: A person or organization that applied for a patent Pta, /// Patent holder: A person or organization that was granted the patent referred to by the item Pth, /// Patron: A person or organization responsible for commissioning a work. Usually a patron uses his or her means or influence to support the work of artists, writers, etc. This includes those who commission and pay for individual works Pat, /// Performer: A person contributing to a resource by performing music, acting, dancing, speaking, etc., often in a musical or dramatic presentation, etc. If specific codes are used, [prf] is used for a person whose principal skill is not known or specified Prf, /// Permitting agency: An organization (usually a government agency) that issues permits under which work is accomplished Pma, /// Photographer: A person, family, or organization responsible for creating a photographic work Pht, /// Plaintiff: A person or organization who brings a suit in a civil proceeding Ptf, /// Plaintiff-appellant: A plaintiff who takes an appeal from one court or jurisdiction to another to reverse the judgment, usually in a legal proceeding Ptt, /// Plaintiff-appellee: A plaintiff against whom an appeal is taken from one court or jurisdiction to another to reverse the judgment, usually in a legal proceeding Pte, /// Platemaker: A person, family, or organization involved in manufacturing a manifestation by preparing plates used in the production of printed images and/or text Plt, /// Praeses: A person who is the faculty moderator of an academic disputation, normally proposing a thesis and participating in the ensuing disputation Pra, /// Presenter: A person or organization mentioned in an “X presents” credit for moving image materials and who is associated with production, finance, or distribution in some way. A vanity credit; in early years, normally the head of a studio Pre, /// Printer: A person, family, or organization involved in manufacturing a manifestation of printed text, notated music, etc., from type or plates, such as a book, newspaper, magazine, broadside, score, etc Prt, /// Printer of plates: A person or organization who prints illustrations from plates. Pop, /// Printmaker: A person or organization who makes a relief, intaglio, or planographic printing surface Prm, /// Process contact: A person or organization primarily responsible for performing or initiating a process, such as is done with the collection of metadata sets Prc, /// Producer: A person, family, or organization responsible for most of the business aspects of a production for screen, audio recording, television, webcast, etc. The producer is generally responsible for fund raising, managing the production, hiring key personnel, arranging for distributors, etc. Pro, /// Production company: An organization that is responsible for financial, technical, and organizational management of a production for stage, screen, audio recording, television, webcast, etc. Prn, /// Production designer: A person or organization responsible for designing the overall visual appearance of a moving image production Prs, /// Production manager: A person responsible for all technical and business matters in a production Pmn, /// Production personnel: A person or organization associated with the production (props, lighting, special effects, etc.) of a musical or dramatic presentation or entertainment Prd, /// Production place: The place of production (e.g., inscription, fabrication, construction, etc.) of a resource in an unpublished form Prp, /// Programmer: A person, family, or organization responsible for creating a computer program Prg, /// Project director: A person or organization with primary responsibility for all essential aspects of a project, has overall responsibility for managing projects, or provides overall direction to a project manager Pdr, /// Proofreader: A person who corrects printed matter. For manuscripts, use Corrector [crr] Pfr, /// Provider: A person or organization who produces, publishes, manufactures, or distributes a resource if specific codes are not desired (e.g. [mfr], [pbl]) Prv, /// Publication place: The place where a resource is published Pup, /// Publisher: A person or organization responsible for publishing, releasing, or issuing a resource Pbl, /// Publishing director: A person or organization who presides over the elaboration of a collective work to ensure its coherence or continuity. This includes editors-in-chief, literary editors, editors of series, etc. Pbd, /// Puppeteer: A performer contributing to a resource by manipulating, controlling, or directing puppets or marionettes in a moving image production or a musical or dramatic presentation or entertainment Ppt, /// Radio director: A director responsible for the general management and supervision of a radio program Rdd, /// Radio producer: A producer responsible for most of the business aspects of a radio program Rpc, /// Recording engineer: A person contributing to a resource by supervising the technical aspects of a sound or video recording session Rce, /// Recordist: A person or organization who uses a recording device to capture sounds and/or video during a recording session, including field recordings of natural sounds, folkloric events, music, etc. Rcd, /// Redaktor: A person or organization who writes or develops the framework for an item without being intellectually responsible for its content Red, /// Renderer: A person or organization who prepares drawings of architectural designs (i.e., renderings) in accurate, representational perspective to show what the project will look like when completed Ren, /// Reporter: A person or organization who writes or presents reports of news or current events on air or in print Rpt, /// Repository: An organization that hosts data or material culture objects and provides services to promote long term, consistent and shared use of those data or objects Rps, /// Research team head: A person who directed or managed a research project Rth, /// Research team member: A person who participated in a research project but whose role did not involve direction or management of it Rtm, /// Researcher: A person or organization responsible for performing research Res, /// Respondent: A person or organization who makes an answer to the courts pursuant to an application for redress (usually in an equity proceeding) or a candidate for a degree who defends or opposes a thesis provided by the praeses in an academic disputation Rsp, /// Respondent-appellant: A respondent who takes an appeal from one court or jurisdiction to another to reverse the judgment, usually in an equity proceeding Rst, /// Respondent-appellee: A respondent against whom an appeal is taken from one court or jurisdiction to another to reverse the judgment, usually in an equity proceeding Rse, /// Responsible party: A person or organization legally responsible for the content of the published material Rpy, /// Restager: A person or organization, other than the original choreographer or director, responsible for restaging a choreographic or dramatic work and who contributes minimal new content Rsg, /// Restorationist: A person, family, or organization responsible for the set of technical, editorial, and intellectual procedures aimed at compensating for the degradation of an item by bringing it back to a state as close as possible to its original condition Rsr, /// Reviewer: A person or organization responsible for the review of a book, motion picture, performance, etc. Rev, /// Rubricator: A person or organization responsible for parts of a work, often headings or opening parts of a manuscript, that appear in a distinctive color, usually red Rbr, /// Scenarist: A person or organization who is the author of a motion picture screenplay, generally the person who wrote the scenarios for a motion picture during the silent era Sce, /// Scientific advisor: A person or organization who brings scientific, pedagogical, or historical competence to the conception and realization on a work, particularly in the case of audio-visual items Sad, /// Screenwriter: An author of a screenplay, script, or scene Aus, /// Scribe: A person who is an amanuensis and for a writer of manuscripts proper. For a person who makes pen-facsimiles, use Facsimilist [fac] Scr, /// Sculptor: An artist responsible for creating a three-dimensional work by modeling, carving, or similar technique Scl, /// Second party: A person or organization who is identified as the party of the second part. In the case of transfer of right, this is the assignee, transferee, licensee, grantee, etc. Multiple parties can be named jointly as the second party Spy, /// Secretary: A person or organization who is a recorder, redactor, or other person responsible for expressing the views of a organization Sec, /// Seller: A former owner of an item who sold that item to another owner Sll, /// Set designer: A person who translates the rough sketches of the art director into actual architectural structures for a theatrical presentation, entertainment, motion picture, etc. Set designers draw the detailed guides and specifications for building the set Std, /// Setting: An entity in which the activity or plot of a work takes place, e.g. a geographic place, a time period, a building, an event Stg, /// Signer: A person whose signature appears without a presentation or other statement indicative of provenance. When there is a presentation statement, use Inscriber [ins]. Sgn, /// Singer: A performer contributing to a resource by using his/her/their voice, with or without instrumental accompaniment, to produce music. A singer's performance may or may not include actual words Sng, /// Sound designer: A person who produces and reproduces the sound score (both live and recorded), the installation of microphones, the setting of sound levels, and the coordination of sources of sound for a production Sds, /// Speaker: A performer contributing to a resource by speaking words, such as a lecture, speech, etc. Spk, /// Sponsor: A person, family, or organization sponsoring some aspect of a resource, e.g., funding research, sponsoring an event Spn, /// Stage director: A person or organization contributing to a stage resource through the overall management and supervision of a performance Sgd, /// Stage manager: A person who is in charge of everything that occurs on a performance stage, and who acts as chief of all crews and assistant to a director during rehearsals Stm, /// Standards body: An organization responsible for the development or enforcement of a standard Stn, /// Stereotyper: A person or organization who creates a new plate for printing by molding or copying another printing surface Str, /// Storyteller: A performer contributing to a resource by relaying a creator's original story with dramatic or theatrical interpretation Stl, /// Supporting host: A person or organization that supports (by allocating facilities, staff, or other resources) a project, program, meeting, event, data objects, material culture objects, or other entities capable of support Sht, /// Surveyor: A person, family, or organization contributing to a cartographic resource by providing measurements or dimensional relationships for the geographic area represented Srv, /// Teacher: A performer contributing to a resource by giving instruction or providing a demonstration Tch, /// Technical director: A person who is ultimately in charge of scenery, props, lights and sound for a production Tcd, /// Television director: A director responsible for the general management and supervision of a television program Tld, /// Television producer: A producer responsible for most of the business aspects of a television program Tlp, /// Thesis advisor: A person under whose supervision a degree candidate develops and presents a thesis, mémoire, or text of a dissertation Ths, /// Transcriber: A person, family, or organization contributing to a resource by changing it from one system of notation to another. For a work transcribed for a different instrument or performing group, see Arranger [arr]. For makers of pen-facsimiles, use Facsimilist [fac] Trc, /// Translator: A person or organization who renders a text from one language into another, or from an older form of a language into the modern form Trl, /// Type designer: A person or organization who designs the type face used in a particular item Tyd, /// Typographer: A person or organization primarily responsible for choice and arrangement of type used in an item. If the typographer is also responsible for other aspects of the graphic design of a book (e.g., Book designer [bkd]), codes for both functions may be needed Tyg, /// University place: A place where a university that is associated with a resource is located, for example, a university where an academic dissertation or thesis was presented Uvp, /// Videographer: A person in charge of a video production, e.g. the video recording of a stage production as opposed to a commercial motion picture. The videographer may be the camera operator or may supervise one or more camera operators. Do not confuse with cinematographer Vdg, /// Voice actor: An actor contributing to a resource by providing the voice for characters in radio and audio productions and for animated characters in moving image works, as well as by providing voice overs in radio and television commercials, dubbed resources, etc. Vac, /// Witness: Use for a person who verifies the truthfulness of an event or action. Wit, /// Wood engraver: A person or organization who makes prints by cutting the image in relief on the end-grain of a wood block Wde, /// Woodcutter: A person or organization who makes prints by cutting the image in relief on the plank side of a wood block Wdc, /// Writer of accompanying material: A person or organization who writes significant material which accompanies a sound recording or other audiovisual material Wam, /// Writer of added commentary: A person, family, or organization contributing to an expression of a work by providing an interpretation or critical explanation of the original work Wac, /// Writer of added lyrics: A writer of words added to an expression of a musical work. For lyric writing in collaboration with a composer to form an original work, see lyricist Wal, /// Writer of added text: A person, family, or organization contributing to a non-textual resource by providing text for the non-textual work (e.g., writing captions for photographs, descriptions of maps). Wat, /// Writer of introduction: A person, family, or organization contributing to a resource by providing an introduction to the original work Win, /// Writer of preface: A person, family, or organization contributing to a resource by providing a preface to the original work Wpr, /// Writer of supplementary textual content: A person, family, or organization contributing to a resource by providing supplementary textual content (e.g., an introduction, a preface) to the original work Wst, } impl FromStr for MarcRelator { type Err = (); fn from_str(s: &str) -> Result<Self, Self::Err> { // the human readable names here are the ones pandoc uses match s { "abridger" | "abr" => Ok(MarcRelator::Abr), "actor" | "act" => Ok(MarcRelator::Act), "adapter" | "adp" => Ok(MarcRelator::Adp), "addressee" | "rcp" => Ok(MarcRelator::Rcp), "analyst" | "anl" => Ok(MarcRelator::Anl), "animator" | "anm" => Ok(MarcRelator::Anm), "annotator" | "ann" => Ok(MarcRelator::Ann), "appellant" | "apl" => Ok(MarcRelator::Apl), "appellee" | "ape" => Ok(MarcRelator::Ape), "applicant" | "app" => Ok(MarcRelator::App), "architect" | "arc" => Ok(MarcRelator::Arc), "arranger" | "arr" => Ok(MarcRelator::Arr), "art copyist" | "acp" => Ok(MarcRelator::Acp), "art director" | "adi" => Ok(MarcRelator::Adi), "artist" | "art" => Ok(MarcRelator::Art), "artistic director" | "ard" => Ok(MarcRelator::Ard), "assignee" | "asg" => Ok(MarcRelator::Asg), "associated name" | "asn" => Ok(MarcRelator::Asn), "attributed name" | "att" => Ok(MarcRelator::Att), "auctioneer" | "auc" => Ok(MarcRelator::Auc), "author" | "aut" => Ok(MarcRelator::Aut), "author in quotations or text abstracts" | "aqt" => Ok(MarcRelator::Aqt), "author of afterword, colophon, etc." | "aft" => Ok(MarcRelator::Aft), "author of dialog" | "aud" => Ok(MarcRelator::Aud), "author of introduction, etc." | "aui" => Ok(MarcRelator::Aui), "autographer" | "ato" => Ok(MarcRelator::Ato), "bibliographic antecedent" | "ant" => Ok(MarcRelator::Ant), "binder" | "bnd" => Ok(MarcRelator::Bnd), "binding designer" | "bdd" => Ok(MarcRelator::Bdd), "blurb writer" | "blw" => Ok(MarcRelator::Blw), "book designer" | "bkd" => Ok(MarcRelator::Bkd), "book producer" | "bkp" => Ok(MarcRelator::Bkp), "bookjacket designer" | "bjd" => Ok(MarcRelator::Bjd), "bookplate designer" | "bpd" => Ok(MarcRelator::Bpd), "bookseller" | "bsl" => Ok(MarcRelator::Bsl), "braille embosser" | "brl" => Ok(MarcRelator::Brl), "broadcaster" | "brd" => Ok(MarcRelator::Brd), "calligrapher" | "cll" => Ok(MarcRelator::Cll), "cartographer" | "ctg" => Ok(MarcRelator::Ctg), "caster" | "cas" => Ok(MarcRelator::Cas), "censor" | "cns" => Ok(MarcRelator::Cns), "choreographer" | "chr" => Ok(MarcRelator::Chr), "cinematographer" | "cng" => Ok(MarcRelator::Cng), "client" | "cli" => Ok(MarcRelator::Cli), "collection registrar" | "cor" => Ok(MarcRelator::Cor), "collector" | "col" => Ok(MarcRelator::Col), "collotyper" | "clt" => Ok(MarcRelator::Clt), "colorist" | "clr" => Ok(MarcRelator::Clr), "commentator" | "cmm" => Ok(MarcRelator::Cmm), "commentator for written text" | "cwt" => Ok(MarcRelator::Cwt), "compiler" | "com" => Ok(MarcRelator::Com), "complainant" | "cpl" => Ok(MarcRelator::Cpl), "complainant-appellant" | "cpt" => Ok(MarcRelator::Cpt), "complainant-appellee" | "cpe" => Ok(MarcRelator::Cpe), "composer" | "cmp" => Ok(MarcRelator::Cmp), "compositor" | "cmt" => Ok(MarcRelator::Cmt), "conceptor" | "ccp" => Ok(MarcRelator::Ccp), "conductor" | "cnd" => Ok(MarcRelator::Cnd), "conservator" | "con" => Ok(MarcRelator::Con), "consultant" | "csl" => Ok(MarcRelator::Csl), "consultant to a project" | "csp" => Ok(MarcRelator::Csp), "contestant" | "cos" => Ok(MarcRelator::Cos), "contestant-appellant" | "cot" => Ok(MarcRelator::Cot), "contestant-appellee" | "coe" => Ok(MarcRelator::Coe), "contestee" | "cts" => Ok(MarcRelator::Cts), "contestee-appellant" | "ctt" => Ok(MarcRelator::Ctt), "contestee-appellee" | "cte" => Ok(MarcRelator::Cte), "contractor" | "ctr" => Ok(MarcRelator::Ctr), "contributor" | "ctb" => Ok(MarcRelator::Ctb), "copyright claimant" | "cpc" => Ok(MarcRelator::Cpc), "copyright holder" | "cph" => Ok(MarcRelator::Cph), "corrector" | "crr" => Ok(MarcRelator::Crr), "correspondent" | "crp" => Ok(MarcRelator::Crp), "costume designer" | "cst" => Ok(MarcRelator::Cst), "court governed" | "cou" => Ok(MarcRelator::Cou), "court reporter" | "crt" => Ok(MarcRelator::Crt), "cover designer" | "cov" => Ok(MarcRelator::Cov), "creator" | "cre" => Ok(MarcRelator::Cre), "curator" | "cur" => Ok(MarcRelator::Cur), "dancer" | "dnc" => Ok(MarcRelator::Dnc), "data contributor" | "dtc" => Ok(MarcRelator::Dtc), "data manager" | "dtm" => Ok(MarcRelator::Dtm), "dedicatee" | "dte" => Ok(MarcRelator::Dte), "dedicator" | "dto" => Ok(MarcRelator::Dto), "defendant" | "dfd" => Ok(MarcRelator::Dfd), "defendant-appellant" | "dft" => Ok(MarcRelator::Dft), "defendant-appellee" | "dfe" => Ok(MarcRelator::Dfe), "degree granting institution" | "dgg" => Ok(MarcRelator::Dgg), "delineator" | "dln" => Ok(MarcRelator::Dln), "depicted" | "dpc" => Ok(MarcRelator::Dpc), "depositor" | "dpt" => Ok(MarcRelator::Dpt), "designer" | "dsr" => Ok(MarcRelator::Dsr), "director" | "drt" => Ok(MarcRelator::Drt), "dissertant" | "dis" => Ok(MarcRelator::Dis), "distribution place" | "dbp" => Ok(MarcRelator::Dbp), "distributor" | "dst" => Ok(MarcRelator::Dst), "donor" | "dnr" => Ok(MarcRelator::Dnr), "draftsman" | "drm" => Ok(MarcRelator::Drm), "dubious author" | "dub" => Ok(MarcRelator::Dub), "editor" | "edt" => Ok(MarcRelator::Edt), "editor of compilation" | "edc" => Ok(MarcRelator::Edc), "editor of moving image work" | "edm" => Ok(MarcRelator::Edm), "electrician" | "elg" => Ok(MarcRelator::Elg), "electrotyper" | "elt" => Ok(MarcRelator::Elt), "enacting jurisdiction" | "enj" => Ok(MarcRelator::Enj), "engineer" | "eng" => Ok(MarcRelator::Eng), "engraver" | "egr" => Ok(MarcRelator::Egr), "etcher" | "etr" => Ok(MarcRelator::Etr), "event place" | "evp" => Ok(MarcRelator::Evp), "expert" | "exp" => Ok(MarcRelator::Exp), "facsimilist" | "fac" => Ok(MarcRelator::Fac), "field director" | "fld" => Ok(MarcRelator::Fld), "film director" | "fmd" => Ok(MarcRelator::Fmd), "film distributor" | "fds" => Ok(MarcRelator::Fds), "film editor" | "flm" => Ok(MarcRelator::Flm), "film producer" | "fmp" => Ok(MarcRelator::Fmp), "filmmaker" | "fmk" => Ok(MarcRelator::Fmk), "first party" | "fpy" => Ok(MarcRelator::Fpy), "forger" | "frg" => Ok(MarcRelator::Frg), "former owner" | "fmo" => Ok(MarcRelator::Fmo), "funder" | "fnd" => Ok(MarcRelator::Fnd), "geographic information specialist" | "gis" => Ok(MarcRelator::Gis), "honoree" | "hnr" => Ok(MarcRelator::Hnr), "host" | "hst" => Ok(MarcRelator::Hst), "host institution" | "his" => Ok(MarcRelator::His), "illuminator" | "ilu" => Ok(MarcRelator::Ilu), "illustrator" | "ill" => Ok(MarcRelator::Ill), "inscriber" | "ins" => Ok(MarcRelator::Ins), "instrumentalist" | "itr" => Ok(MarcRelator::Itr), "interviewee" | "ive" => Ok(MarcRelator::Ive), "interviewer" | "ivr" => Ok(MarcRelator::Ivr), "inventor" | "inv" => Ok(MarcRelator::Inv), "issuing body" | "isb" => Ok(MarcRelator::Isb), "judge" | "jud" => Ok(MarcRelator::Jud), "jurisdiction governed" | "jug" => Ok(MarcRelator::Jug), "laboratory" | "lbr" => Ok(MarcRelator::Lbr), "laboratory director" | "ldr" => Ok(MarcRelator::Ldr), "landscape architect" | "lsa" => Ok(MarcRelator::Lsa), "lead" | "led" => Ok(MarcRelator::Led), "lender" | "len" => Ok(MarcRelator::Len), "libelant" | "lil" => Ok(MarcRelator::Lil), "libelant-appellant" | "lit" => Ok(MarcRelator::Lit), "libelant-appellee" | "lie" => Ok(MarcRelator::Lie), "libelee" | "lel" => Ok(MarcRelator::Lel), "libelee-appellant" | "let" => Ok(MarcRelator::Let), "libelee-appellee" | "lee" => Ok(MarcRelator::Lee), "librettist" | "lbt" => Ok(MarcRelator::Lbt), "licensee" | "lse" => Ok(MarcRelator::Lse), "licensor" | "lso" => Ok(MarcRelator::Lso), "lighting designer" | "lgd" => Ok(MarcRelator::Lgd), "lithographer" | "ltg" => Ok(MarcRelator::Ltg), "lyricist" | "lyr" => Ok(MarcRelator::Lyr), "manufacture place" | "mfp" => Ok(MarcRelator::Mfp), "manufacturer" | "mfr" => Ok(MarcRelator::Mfr), "marbler" | "mrb" => Ok(MarcRelator::Mrb), "markup editor" | "mrk" => Ok(MarcRelator::Mrk), "metadata contact" | "mdc" => Ok(MarcRelator::Mdc), "metal-engraver" | "mte" => Ok(MarcRelator::Mte), "moderator" | "mod" => Ok(MarcRelator::Mod), "monitor" | "mon" => Ok(MarcRelator::Mon), "music copyist" | "mcp" => Ok(MarcRelator::Mcp), "musical director" | "msd" => Ok(MarcRelator::Msd), "musician" | "mus" => Ok(MarcRelator::Mus), "narrator" | "nrt" => Ok(MarcRelator::Nrt), "onscreen presenter" | "osp" => Ok(MarcRelator::Osp), "opponent" | "opn" => Ok(MarcRelator::Opn), "organizer of meeting" | "orm" => Ok(MarcRelator::Orm), "originator" | "org" => Ok(MarcRelator::Org), "other" | "oth" => Ok(MarcRelator::Oth), "owner" | "own" => Ok(MarcRelator::Own), "panelist" | "pan" => Ok(MarcRelator::Pan), "papermaker" | "ppm" => Ok(MarcRelator::Ppm), "patent applicant" | "pta" => Ok(MarcRelator::Pta), "patent holder" | "pth" => Ok(MarcRelator::Pth), "patron" | "pat" => Ok(MarcRelator::Pat), "performer" | "prf" => Ok(MarcRelator::Prf), "permitting agency" | "pma" => Ok(MarcRelator::Pma), "photographer" | "pht" => Ok(MarcRelator::Pht), "plaintiff" | "ptf" => Ok(MarcRelator::Ptf), "plaintiff-appellant" | "ptt" => Ok(MarcRelator::Ptt), "plaintiff-appellee" | "pte" => Ok(MarcRelator::Pte), "platemaker" | "plt" => Ok(MarcRelator::Plt), "praeses" | "pra" => Ok(MarcRelator::Pra), "presenter" | "pre" => Ok(MarcRelator::Pre), "printer" | "prt" => Ok(MarcRelator::Prt), "printer of plates" | "pop" => Ok(MarcRelator::Pop), "printmaker" | "prm" => Ok(MarcRelator::Prm), "process contact" | "prc" => Ok(MarcRelator::Prc), "producer" | "pro" => Ok(MarcRelator::Pro), "production company" | "prn" => Ok(MarcRelator::Prn), "production designer" | "prs" => Ok(MarcRelator::Prs), "production manager" | "pmn" => Ok(MarcRelator::Pmn), "production personnel" | "prd" => Ok(MarcRelator::Prd), "production place" | "prp" => Ok(MarcRelator::Prp), "programmer" | "prg" => Ok(MarcRelator::Prg), "project director" | "pdr" => Ok(MarcRelator::Pdr), "proofreader" | "pfr" => Ok(MarcRelator::Pfr), "provider" | "prv" => Ok(MarcRelator::Prv), "publication place" | "pup" => Ok(MarcRelator::Pup), "publisher" | "pbl" => Ok(MarcRelator::Pbl), "publishing director" | "pbd" => Ok(MarcRelator::Pbd), "puppeteer" | "ppt" => Ok(MarcRelator::Ppt), "radio director" | "rdd" => Ok(MarcRelator::Rdd), "radio producer" | "rpc" => Ok(MarcRelator::Rpc), "recording engineer" | "rce" => Ok(MarcRelator::Rce), "recordist" | "rcd" => Ok(MarcRelator::Rcd), "redaktor" | "red" => Ok(MarcRelator::Red), "renderer" | "ren" => Ok(MarcRelator::Ren), "reporter" | "rpt" => Ok(MarcRelator::Rpt), "repository" | "rps" => Ok(MarcRelator::Rps), "research team head" | "rth" => Ok(MarcRelator::Rth), "research team member" | "rtm" => Ok(MarcRelator::Rtm), "researcher" | "res" => Ok(MarcRelator::Res), "respondent" | "rsp" => Ok(MarcRelator::Rsp), "respondent-appellant" | "rst" => Ok(MarcRelator::Rst), "respondent-appellee" | "rse" => Ok(MarcRelator::Rse), "responsible party" | "rpy" => Ok(MarcRelator::Rpy), "restager" | "rsg" => Ok(MarcRelator::Rsg), "restorationist" | "rsr" => Ok(MarcRelator::Rsr), "reviewer" | "rev" => Ok(MarcRelator::Rev), "rubricator" | "rbr" => Ok(MarcRelator::Rbr), "scenarist" | "sce" => Ok(MarcRelator::Sce), "scientific advisor" | "sad" => Ok(MarcRelator::Sad), "screenwriter" | "aus" => Ok(MarcRelator::Aus), "scribe" | "scr" => Ok(MarcRelator::Scr), "sculptor" | "scl" => Ok(MarcRelator::Scl), "second party" | "spy" => Ok(MarcRelator::Spy), "secretary" | "sec" => Ok(MarcRelator::Sec), "seller" | "sll" => Ok(MarcRelator::Sll), "set designer" | "std" => Ok(MarcRelator::Std), "setting" | "stg" => Ok(MarcRelator::Stg), "signer" | "sgn" => Ok(MarcRelator::Sgn), "singer" | "sng" => Ok(MarcRelator::Sng), "sound designer" | "sds" => Ok(MarcRelator::Sds), "speaker" | "spk" => Ok(MarcRelator::Spk), "sponsor" | "spn" => Ok(MarcRelator::Spn), "stage director" | "sgd" => Ok(MarcRelator::Sgd), "stage manager" | "stm" => Ok(MarcRelator::Stm), "standards body" | "stn" => Ok(MarcRelator::Stn), "stereotyper" | "str" => Ok(MarcRelator::Str), "storyteller" | "stl" => Ok(MarcRelator::Stl), "supporting host" | "sht" => Ok(MarcRelator::Sht), "surveyor" | "srv" => Ok(MarcRelator::Srv), "teacher" | "tch" => Ok(MarcRelator::Tch), "technical director" | "tcd" => Ok(MarcRelator::Tcd), "television director" | "tld" => Ok(MarcRelator::Tld), "television producer" | "tlp" => Ok(MarcRelator::Tlp), "thesis advisor" | "ths" => Ok(MarcRelator::Ths), "transcriber" | "trc" => Ok(MarcRelator::Trc), "translator" | "trl" => Ok(MarcRelator::Trl), "type designer" | "tyd" => Ok(MarcRelator::Tyd), "typographer" | "tyg" => Ok(MarcRelator::Tyg), "university place" | "uvp" => Ok(MarcRelator::Uvp), "videographer" | "vdg" => Ok(MarcRelator::Vdg), "witness" | "wit" => Ok(MarcRelator::Wit), "wood engraver" | "wde" => Ok(MarcRelator::Wde), "woodcutter" | "wdc" => Ok(MarcRelator::Wdc), "writer of accompanying material" | "wam" => Ok(MarcRelator::Wam), "writer of added commentary" | "wac" => Ok(MarcRelator::Wac), "writer of added lyrics" | "wal" => Ok(MarcRelator::Wal), "writer of added text" | "wat" => Ok(MarcRelator::Wat), _ => Err(()), } } } /// The default title types from the epub standard (<https://www.w3.org/publishing/epub/epub-packages.html#sec-title-type>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] #[serde(rename_all = "lowercase")] pub enum EpubTitleType { Main, Subtitle, Short, Collection, Edition, Expanded, } impl FromStr for EpubTitleType { type Err = (); fn from_str(s: &str) -> Result<Self, Self::Err> { match s { "main" => Ok(EpubTitleType::Main), "subtitle" => Ok(EpubTitleType::Subtitle), "short" => Ok(EpubTitleType::Short), "collection" => Ok(EpubTitleType::Collection), "edition" => Ok(EpubTitleType::Edition), "expanded" => Ok(EpubTitleType::Expanded), _ => Err(()), } } } /// Dublin core terms (<https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#section-2>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] #[serde(rename_all = "lowercase")] pub enum DublinCoreTerm { Abstract, Accessrights, Accrualmethod, Accrualperiodicity, Accrualpolicy, Alternative, Audience, Available, Bibliographiccitation, Conformsto, Contributor, Coverage, Created, Creator, Date, Dateaccepted, Datecopyrighted, Datesubmitted, Description, Educationlevel, Extent, Format, Hasformat, Haspart, Hasversion, Identifier, Instructionalmethod, Isformatof, Ispartof, Isreferencedby, Isreplacedby, Isrequiredby, Isversionof, Issued, Language, License, Mediator, Medium, Modified, Provenance, Publisher, References, Relation, Replaces, Requires, Rights, Rightsholder, Source, Spatial, Subject, Tableofcontents, Temporal, Title, Type, Valid, } /// Dublin Core elements (<https://www.dublincore.org/specifications/dublin-core/dcmi-terms/#section-3>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] #[serde(rename_all = "lowercase")] pub enum DublinCoreElement { Contributor, Coverage, Creator, Date, Description, Format, Identifier, Language, Publisher, Relation, Rights, Source, Subject, Title, Type, } impl DublinCoreElement { pub fn as_tagname(&self) -> String { format!("dc:{:?}", self).to_lowercase() } } /// Onix codelist 5 (<https://ns.editeur.org/onix/en/5>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum OnixProductIdentifier { /// Proprietary: For example, a publisher’s or wholesaler’s product number or SKU. Note that <IDTypeName> is required with proprietary identifiers I01, /// ISBN-10: International Standard Book Number, pre-2007 (10 digits, or 9 digits plus X, without spaces or hyphens) – now DEPRECATED in ONIX for Books, except where providing historical information for compatibility with legacy systems. It should only be used in relation to products published before 2007 – when ISBN-13 superseded it – and should never be used as the ONLY identifier (it should always be accompanied by the correct GTIN-13 / ISBN-13) I02, /// GTIN-13: GS1 Global Trade Item Number, formerly known as EAN article number (13 digits, without spaces or hyphens) I03, /// UPC: UPC product number (12 digits, without spaces or hyphens) I04, /// ISMN-10: International Standard Music Number, pre-2008 (M plus nine digits, without spaces or hyphens) – now DEPRECATED in ONIX for Books, except where providing historical information for compatibility with legacy systems. It should only be used in relation to products published before 2008 – when ISMN-13 superseded it – and should never be used as the ONLY identifier (it should always be accompanied by the correct GTIN-12 / ISMN-13) I05, /// DOI: Digital Object Identifier (variable length and character set beginning ‘10.’, and without https://doi.org/ or the older http://dx.doi.org/) I06, /// LCCN: Library of Congress Control Number in normalized form (up to 12 characters, alphanumeric) I13, /// GTIN-14: GS1 Global Trade Item Number (14 digits, without spaces or hyphens) I14, /// ISBN-13: International Standard Book Number, from 2007 (13 digits starting 978 or 9791–9799, without spaces or hypens) I15, /// Legal deposit number: The number assigned to a publication as part of a national legal deposit process I17, /// URN: Uniform Resource Name: note that in trade applications an ISBN must be sent as a GTIN-13 and, where required, as an ISBN-13 – it should not be sent as a URN I22, /// OCLC number: A unique number assigned to a bibliographic item by OCLC I23, /// Co-publisher’s ISBN-13: An ISBN-13 assigned by a co-publisher. The ‘main’ ISBN sent with <ProductIDType> codes 03 and/or 15 should always be the ISBN that is used for ordering from the supplier identified in <SupplyDetail>. However, ISBN rules allow a co-published title to carry more than one ISBN. The co-publisher should be identified in an instance of the <Publisher> composite, with the applicable <PublishingRole> code I24, /// ISMN-13: International Standard Music Number, from 2008 (13-digit number starting 9790, without spaces or hyphens) I25, /// ISBN-A: Actionable ISBN, in fact a special DOI incorporating the ISBN-13 within the DOI syntax. Begins ‘10.978.’ or ‘10.979.’ and includes a / character between the registrant element (publisher prefix) and publication element of the ISBN, eg 10.978.000/1234567. Note the ISBN-A should always be accompanied by the ISBN itself, using <ProductIDType> codes 03 and/or 15 I26, /// JP e-code: E-publication identifier controlled by JPOIID’s Committee for Research and Management of Electronic Publishing Codes I27, /// OLCC number: Unique number assigned by the Chinese Online Library Cataloging Center (see http://olcc.nlc.gov.cn) I28, /// JP Magazine ID: Japanese magazine identifier, similar in scope to ISSN but identifying a specific issue of a serial publication. Five digits to identify the periodical, plus a hyphen and two digits to identify the issue I29, /// UPC12+5: Used only with comic books and other products which use the UPC extension to identify individual issues or products. Do not use where the UPC12 itself identifies the specific product, irrespective of any 5-digit extension – use code 04 instead I30, /// BNF Control number: Numéro de la notice bibliographique BNF I31, /// ARK: Archival Resource Key, as a URL (including the address of the ARK resolver provided by eg a national library) I35, } /// Onix codelist 15 (<https://ns.editeur.org/onix/en/15>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum OnixTitleCode { /// Undefined T00, /// Distinctive title (book); Cover title (serial); Title on item (serial content item or reviewed resource) The full text of the distinctive title of the item, without abbreviation or abridgement. For books, where the title alone is not distinctive, elements may be taken from a set or series title and part number etc to create a distinctive title. Where the item is an omnibus edition containing two or more works by the same author, and there is no separate combined title, a distinctive title may be constructed by concatenating the individual titles, with suitable punctuation, as in ‘Pride and prejudice / Sense and sensibility / Northanger Abbey’ T01, /// ISSN key title of serial: Serials only T02, /// Title in original language: Where the subject of the ONIX record is a translated item T03, /// Title acronym or initialism: For serials: an acronym or initialism of Title Type1, eg ‘JAMA’, ‘JACM’ T04, /// Abbreviated title: An abbreviated form of Title Type1 T05, /// Title in other language: A translation of Title Type1 into another language T06, /// Thematic title of journal issue: Serials only: when a journal issue is explicitly devoted to a specified topic T07, /// Former title: Books or serials: when an item was previously published under another title T08, /// Distributor’s title: For books: the title carried in a book distributor’s title file: frequently incomplete, and may include elements not properly part of the title T10, /// Alternative title on cover: An alternative title that appears on the cover of a book T11, /// Alternative title on back: An alternative title that appears on the back of a book T12, /// Expanded title: An expanded form of the title, eg the title of a school text book with grade and type and other details added to make the title meaningful, where otherwise it would comprise only the curriculum subject. This title type is required for submissions to the Spanish ISBN Agency T13, /// Alternative title: An alternative title that the book is widely known by, whether it appears on the book or not T14, } /// Onix codelist 17 (<https://ns.editeur.org/onix/en/17>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum OnixContributorCode { /// By (author): Author of a textual work A01, /// With: With or as told to: ‘ghost’ or secondary author of a literary work (for clarity, should not be used for true ‘ghost’ authors who are not credited on the book and whose existence is secret) A02, /// Screenplay by: Writer of screenplay or script (film or video) A03, /// Libretto by: Writer of libretto (opera): see also A31 A04, /// Lyrics by: Author of lyrics (song): see also A31 A05, /// By (composer): Composer of music A06, /// By (artist): Visual artist when named as the primary creator of, eg, a book of reproductions of artworks A07, /// By (photographer): Photographer when named as the primary creator of, eg, a book of photographs A08, /// Created by A09, /// From an idea by A10, /// Designed by A11, /// Illustrated by: Artist when named as the creator of artwork which illustrates a text, or the originator (sometimes ‘penciller’ for collaborative art) of the artwork of a graphic novel or comic book A12, /// Photographs by: Photographer when named as the creator of photographs which illustrate a text A13, /// Text by: Author of text which accompanies art reproductions or photographs, or which is part of a graphic novel or comic book A14, /// Preface by: Author of preface A15, /// Prologue by: Author of prologue A16, /// Summary by: Author of summary A17, /// Supplement by: Author of supplement A18, /// Afterword by: Author of afterword A19, /// Notes by: Author of notes or annotations: see also A29 A20, /// Commentaries by: Author of commentaries on the main text A21, /// Epilogue by: Author of epilogue A22, /// Foreword by: Author of foreword A23, /// Introduction by: Author of introduction: see also A29 A24, /// Footnotes by: Author/compiler of footnotes A25, /// Memoir by: Author of memoir accompanying main text A26, /// Experiments by: Person who carried out experiments reported in the text A27, /// Introduction and notes by: Author of introduction and notes: see also A20 and A24 A29, /// Software written by: Writer of computer programs ancillary to the text A30, /// Book and lyrics by: Author of the textual content of a musical drama: see also A04 and A05 A31, /// Contributions by: Author of additional contributions to the text A32, /// Appendix by: Author of appendix A33, /// Index by: Compiler of index A34, /// Drawings by A35, /// Cover design or artwork by: Use also for the cover artist of a graphic novel or comic book if named separately A36, /// Preliminary work by: Responsible for preliminary work on which the work is based A37, /// Original author: Author of the first edition (usually of a standard work) who is not an author of the current edition A38, /// Maps by: Maps drawn or otherwise contributed by A39, /// Inked or colored by: Use for secondary creators when separate persons are named as having respectively drawn and inked/colored/finished artwork, eg for a graphic novel or comic book. Use with A12 for ‘drawn by’. Use A40 for ‘finished by’, but prefer more specific codes A46 to A48 instead of A40 unless the more specific secondary roles are inappropriate, unclear or unavailable A40, /// Paper engineering by: Designer or paper engineer of die-cuts, press-outs or of pop-ups in a pop-up book, who may be different from the illustrator A41, /// Continued by: Use where a standard work is being continued by somebody other than the original author A42, /// Interviewer A43, /// Interviewee A44, /// Comic script by: Writer of dialogue, captions in a comic book (following an outline by the primary writer) A45, /// Inker: Renders final comic book line art based on work of the illustrator or penciller. Preferred to code A40 A46, /// Colorist: Provides comic book color art and effects. Preferred to code A40 A47, /// Letterer: Creates comic book text balloons and other text elements (where this is a distinct role from script writer and/or illustrator) A48, /// Research by: Person or organization responsible for performing research on which the work is based. For use in ONIX 3.0 only A51, /// Other primary creator: Other type of primary creator not specified above A99, /// Edited by B01, /// Revised by B02, /// Retold by B03, /// Abridged by B04, /// Adapted by B05, /// Translated by B06, /// As told by B07, /// Translated with commentary by: This code applies where a translator has provided a commentary on issues relating to the translation. If the translator has also provided a commentary on the work itself, codes B06 and A21 should be used B08, /// Series edited by: Name of a series editor when the product belongs to a series B09, /// Edited and translated by B10, /// Editor-in-chief B11, /// Guest editor B12, /// Volume editor B13, /// Editorial board member B14, /// Editorial coordination by B15, /// Managing editor B16, /// Founded by: Usually the founder editor of a serial publication: Begruendet von B17, /// Prepared for publication by B18, /// Associate editor B19, /// Consultant editor: Use also for ‘advisory editor’, ‘series advisor’, ‘editorial consultant’ etc B20, /// General editor B21, /// Dramatized by B22, /// General rapporteur: In Europe, an expert editor who takes responsibility for the legal content of a collaborative law volume B23, /// Literary editor: An editor who is responsible for establishing the text used in an edition of a literary work, where this is recognised as a distinctive role (in Spain, ‘editor literario’) B24, /// Arranged by (music) B25, /// Technical editor Responsible for the technical accuracy and language, may also be involved in coordinating and preparing technical material for publication 15: 30 B26, /// Thesis advisor or supervisor B27, /// Thesis examiner B28, /// Scientific editor: Responsible overall for the scientific content of the publication B29, /// Historical advisor: For use in ONIX 3.0 only B30, /// Original editor: Editor of the first edition (usually of a standard work) who is not an editor of the current edition. For use in ONIX 3.0 only B31, /// Other adaptation by: Other type of adaptation or editing not specified above B99, /// Compiled by: For puzzles, directories, statistics, etc C01, /// Selected by: For textual material (eg for an anthology) C02, /// Non-text material selected by: Eg for a collection of photographs etc C03, /// Curated by: Eg for an exhibition C04, /// Other compilation by: Other type of compilation not specified above C99, /// Producer D01, /// Director D02, /// Conductor: Conductor of a musical performance D03, /// Choreographer: Of a dance performance. For use in ONIX 3.0 only D04, /// Other direction by: Other type of direction not specified above D99, /// Actor: Performer in a dramatized production (including a voice actor in an audio production) E01, /// Dancer E02, /// Narrator: Where the narrator is a character in a dramatized production (including a voice actor in an audio production). For the ‘narrator’ of a non-dramatized audiobook, see code E07 E03, /// Commentator E04, /// Vocal soloist: Singer etc E05, /// Instrumental soloist E06, /// Read by: Reader of recorded text, as in an audiobook E07, /// Performed by (orchestra, band, ensemble): Name of a musical group in a performing role E08, /// Speaker: Of a speech, lecture etc E09, /// Presenter: Introduces and links other contributors and material, eg within a documentary E10, /// Performed by: Other type of performer not specified above: use for a recorded performance which does not fit a category above, eg a performance by a stand-up comedian E99, /// Filmed/photographed by: Cinematographer, etc F01, /// Editor (film or video) F02, /// Other recording by: Other type of recording not specified above F99, /// Assisted by: May be associated with any contributor role, and placement should therefore be controlled by contributor sequence numbering Z01, /// Honored/dedicated to Z02, /// (Various roles): For use ONLY with ‘et al’ or ‘Various’ within <UnnamedPersons>, where the roles of the multiple contributors vary Z98, /// Other Other creative responsibility not falling within A to F above Z99, } impl FromStr for OnixContributorCode { type Err = (); fn from_str(s: &str) -> Result<Self, Self::Err> { match s { "a01" | "A01" => Ok(OnixContributorCode::A01), "a02" | "A02" => Ok(OnixContributorCode::A02), "a03" | "A03" => Ok(OnixContributorCode::A03), "a04" | "A04" => Ok(OnixContributorCode::A04), "a05" | "A05" => Ok(OnixContributorCode::A05), "a06" | "A06" => Ok(OnixContributorCode::A06), "a07" | "A07" => Ok(OnixContributorCode::A07), "a08" | "A08" => Ok(OnixContributorCode::A08), "a09" | "A09" => Ok(OnixContributorCode::A09), "a10" | "A10" => Ok(OnixContributorCode::A10), "a11" | "A11" => Ok(OnixContributorCode::A11), "a12" | "A12" => Ok(OnixContributorCode::A12), "a13" | "A13" => Ok(OnixContributorCode::A13), "a14" | "A14" => Ok(OnixContributorCode::A14), "a15" | "A15" => Ok(OnixContributorCode::A15), "a16" | "A16" => Ok(OnixContributorCode::A16), "a17" | "A17" => Ok(OnixContributorCode::A17), "a18" | "A18" => Ok(OnixContributorCode::A18), "a19" | "A19" => Ok(OnixContributorCode::A19), "a20" | "A20" => Ok(OnixContributorCode::A20), "a21" | "A21" => Ok(OnixContributorCode::A21), "a22" | "A22" => Ok(OnixContributorCode::A22), "a23" | "A23" => Ok(OnixContributorCode::A23), "a24" | "A24" => Ok(OnixContributorCode::A24), "a25" | "A25" => Ok(OnixContributorCode::A25), "a26" | "A26" => Ok(OnixContributorCode::A26), "a27" | "A27" => Ok(OnixContributorCode::A27), "a29" | "A29" => Ok(OnixContributorCode::A29), "a30" | "A30" => Ok(OnixContributorCode::A30), "a31" | "A31" => Ok(OnixContributorCode::A31), "a32" | "A32" => Ok(OnixContributorCode::A32), "a33" | "A33" => Ok(OnixContributorCode::A33), "a34" | "A34" => Ok(OnixContributorCode::A34), "a35" | "A35" => Ok(OnixContributorCode::A35), "a36" | "A36" => Ok(OnixContributorCode::A36), "a37" | "A37" => Ok(OnixContributorCode::A37), "a38" | "A38" => Ok(OnixContributorCode::A38), "a39" | "A39" => Ok(OnixContributorCode::A39), "a40" | "A40" => Ok(OnixContributorCode::A40), "a41" | "A41" => Ok(OnixContributorCode::A41), "a42" | "A42" => Ok(OnixContributorCode::A42), "a43" | "A43" => Ok(OnixContributorCode::A43), "a44" | "A44" => Ok(OnixContributorCode::A44), "a45" | "A45" => Ok(OnixContributorCode::A45), "a46" | "A46" => Ok(OnixContributorCode::A46), "a47" | "A47" => Ok(OnixContributorCode::A47), "a48" | "A48" => Ok(OnixContributorCode::A48), "a51" | "A51" => Ok(OnixContributorCode::A51), "a99" | "A99" => Ok(OnixContributorCode::A99), "b01" | "B01" => Ok(OnixContributorCode::B01), "b02" | "B02" => Ok(OnixContributorCode::B02), "b03" | "B03" => Ok(OnixContributorCode::B03), "b04" | "B04" => Ok(OnixContributorCode::B04), "b05" | "B05" => Ok(OnixContributorCode::B05), "b06" | "B06" => Ok(OnixContributorCode::B06), "b07" | "B07" => Ok(OnixContributorCode::B07), "b08" | "B08" => Ok(OnixContributorCode::B08), "b09" | "B09" => Ok(OnixContributorCode::B09), "b10" | "B10" => Ok(OnixContributorCode::B10), "b11" | "B11" => Ok(OnixContributorCode::B11), "b12" | "B12" => Ok(OnixContributorCode::B12), "b13" | "B13" => Ok(OnixContributorCode::B13), "b14" | "B14" => Ok(OnixContributorCode::B14), "b15" | "B15" => Ok(OnixContributorCode::B15), "b16" | "B16" => Ok(OnixContributorCode::B16), "b17" | "B17" => Ok(OnixContributorCode::B17), "b18" | "B18" => Ok(OnixContributorCode::B18), "b19" | "B19" => Ok(OnixContributorCode::B19), "b20" | "B20" => Ok(OnixContributorCode::B20), "b21" | "B21" => Ok(OnixContributorCode::B21), "b22" | "B22" => Ok(OnixContributorCode::B22), "b23" | "B23" => Ok(OnixContributorCode::B23), "b24" | "B24" => Ok(OnixContributorCode::B24), "b25" | "B25" => Ok(OnixContributorCode::B25), "b26" | "B26" => Ok(OnixContributorCode::B26), "b27" | "B27" => Ok(OnixContributorCode::B27), "b28" | "B28" => Ok(OnixContributorCode::B28), "b29" | "B29" => Ok(OnixContributorCode::B29), "b30" | "B30" => Ok(OnixContributorCode::B30), "b31" | "B31" => Ok(OnixContributorCode::B31), "b99" | "B99" => Ok(OnixContributorCode::B99), "c01" | "C01" => Ok(OnixContributorCode::C01), "c02" | "C02" => Ok(OnixContributorCode::C02), "c03" | "C03" => Ok(OnixContributorCode::C03), "c04" | "C04" => Ok(OnixContributorCode::C04), "c99" | "C99" => Ok(OnixContributorCode::C99), "d01" | "D01" => Ok(OnixContributorCode::D01), "d02" | "D02" => Ok(OnixContributorCode::D02), "d03" | "D03" => Ok(OnixContributorCode::D03), "d04" | "D04" => Ok(OnixContributorCode::D04), "d99" | "D99" => Ok(OnixContributorCode::D99), "e01" | "E01" => Ok(OnixContributorCode::E01), "e02" | "E02" => Ok(OnixContributorCode::E02), "e03" | "E03" => Ok(OnixContributorCode::E03), "e04" | "E04" => Ok(OnixContributorCode::E04), "e05" | "E05" => Ok(OnixContributorCode::E05), "e06" | "E06" => Ok(OnixContributorCode::E06), "e07" | "E07" => Ok(OnixContributorCode::E07), "e08" | "E08" => Ok(OnixContributorCode::E08), "e09" | "E09" => Ok(OnixContributorCode::E09), "e10" | "E10" => Ok(OnixContributorCode::E10), "e99" | "E99" => Ok(OnixContributorCode::E99), "f01" | "F01" => Ok(OnixContributorCode::F01), "f02" | "F02" => Ok(OnixContributorCode::F02), "f99" | "F99" => Ok(OnixContributorCode::F99), "z01" | "Z01" => Ok(OnixContributorCode::Z01), "z02" | "Z02" => Ok(OnixContributorCode::Z02), "z98" | "Z98" => Ok(OnixContributorCode::Z98), "z99" | "Z99" => Ok(OnixContributorCode::Z99), _ => Err(()), } } } /// Onix codelist 153 (<https://ns.editeur.org/onix/en/153>) #[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Hash)] pub enum OnixTextType { /// Sender-defined text: To be used only in circumstances where the parties to an exchange have agreed to include text which (a) is not for general distribution, and (b) cannot be coded elsewhere. If more than one type of text is sent, it must be identified by tagging within the text itself T01, /// Short description/annotation: Limited to a maximum of 350 characters T02, /// Description: Length unrestricted T03, /// Table of contents: Used for a table of contents sent as a single text field, which may or may not carry structure expressed using XHTML T04, /// Flap / cover copy: Primary descriptive blurb taken from the back cover and/or flaps. See also code 27 T05, /// Review quote: A quote taken from a review of the product or of the work in question where there is no need to take account of different editions T06, /// Review quote: previous edition: A quote taken from a review of a previous edition of the work T07, /// Review quote: previous work: A quote taken from a review of a previous work by the same author(s) or in the same series T08, /// Endorsement: A quote usually provided by a celebrity or another author to promote a new book, not from a review T09, /// Promotional headline: A promotional phrase which is intended to headline a description of the product T10, /// Feature: Text describing a feature of a product to which the publisher wishes to draw attention for promotional purposes. Each separate feature should be described by a separate repeat, so that formatting can be applied at the discretion of the receiver of the ONIX record, or multiple features can be described using appropriate XHTML markup T11, /// Biographical note: A note referring to all contributors to a product – NOT linked to a single contributor T12, /// Publisher’s notice: A statement included by a publisher in fulfillment of contractual obligations, such as a disclaimer, sponsor statement, or legal notice of any sort. Note that the inclusion of such a notice cannot and does not imply that a user of the ONIX record is obliged to reproduce it T13, /// Excerpt: A short excerpt from the main text of the work T14, /// Index: Used for an index sent as a single text field, which may be structured using XHTML T15, /// Short description/annotation for collection: (of which the product is a part.) Limited to a maximum of 350 characters T16, /// Description for collection: (of which the product is a part.) Length unrestricted T17, /// New feature: As code 11 but used for a new feature of this edition or version T18, /// Version history T19, /// Open access statement: Short summary statement of open access status and any related conditions (eg ‘Open access – no commercial use’), primarily for marketing purposes. Should always be accompanied by a link to the complete license (see <EpubLicense> or code 99 in List 158) T20, /// Digital exclusivity statement: Short summary statement that the product is available only in digital formats (eg ‘Digital exclusive’). If a non-digital version is planned, <ContentDate> should be used to specify the date when exclusivity will end (use content date role code 15). If a non-digital version is available, the statement should not be included T21, /// Official recommendation: For example a recommendation or approval provided by a ministry of education or other official body. Use <Text> to provide details and ideally use <TextSourceCorporate> to name the approver T22, /// JBPA description: Short description in format specified by Japanese Book Publishers Association T23, /// schema.org snippet: JSON-LD snippet suitable for use within an HTML <script type="application/ld+json"> tag, containing structured metadata suitable for use with schema.org T24, /// Errata T25, /// Introduction: Introduction, preface or the text of other preliminary material, sent as a single text field, which may be structured using XHTML T26, /// Secondary flap / cover copy: Secondary descriptive blurb taken from the back cover and/or flaps, used only when there are two separate texts and the primary text is included using code 05 T27, /// Full cast and credit list: For use with dramatized audiobooks, filmed entertainment etc, for a cast list sent as a single text field, which may or may not carry structure expressed using XHTML T28, /// Bibliography: Complete list of books by the author(s), supplied as a single text field, which may be structured using (X)HTML T29, /// Abstract: Formal summary of content (normally used with academic and scholarly content only) T30, /// Rules or instructions: Eg for a game, kit T31, } /// Try to map a code from one scheme to another. /// /// The primary purpose is to shift from a nuanced encoding scheme, /// onix, to one which may be less flexible but is more likely to be natively recognised /// by reading systems. pub trait ValueMapping<T> { /// map this code to one of `T` if possible fn map_code(&self) -> Option<T>; } impl ValueMapping<EpubTitleType> for OnixTitleCode { fn map_code(&self) -> Option<EpubTitleType> { match self { OnixTitleCode::T05 => Some(EpubTitleType::Short), OnixTitleCode::T13 => Some(EpubTitleType::Expanded), OnixTitleCode::T01 => Some(EpubTitleType::Main), _ => None, } } } impl ValueMapping<MarcRelator> for OnixContributorCode { fn map_code(&self) -> Option<MarcRelator> { use MarcRelator::*; /// Taken from <http://www.oclc.org/research/publications/library/2012/2012-04a.xls> use OnixContributorCode::*; match self { A01 => Some(Aut), A02 => Some(Ctb), A03 => Some(Aus), A04 => Some(Lbt), A05 => Some(Lyr), A06 => Some(Cmp), A07 => Some(Art), A08 => Some(Pht), A09 => Some(Cre), A10 => Some(Cre), A11 => Some(Dsr), A12 => Some(Ill), A13 => Some(Pht), A14 => Some(Ctb), A15 => Some(Aui), A16 => Some(Aui), A17 => Some(Ctb), A18 => Some(Ctb), A19 => Some(Aft), A20 => Some(Ctb), A21 => Some(Cwt), A22 => Some(Aft), A23 => Some(Aui), A24 => Some(Aui), A25 => Some(Ctb), A26 => None, A27 => Some(Ctb), A29 => Some(Aui), A30 => Some(Prg), A31 => Some(Lyr), A32 => Some(Ctb), A33 => None, A34 => Some(Ctb), A35 => Some(Ill), A36 => Some(Cov), A37 => Some(Ant), A38 => Some(Aut), A39 => Some(Ctg), A40 => Some(Ill), A41 => None, A42 => None, A43 => Some(Ivr), A44 => Some(Ive), A99 => Some(Cre), B01 => Some(Edt), B02 => Some(Edt), B03 => Some(Nrt), B04 => Some(Edt), B05 => Some(Adp), B06 => Some(Trl), B07 => Some(Nrt), B08 => Some(Trl), B09 => Some(Edt), B10 => Some(Trl), B11 => Some(Pbd), B12 => Some(Edt), B13 => Some(Edt), B14 => Some(Edt), B15 => Some(Edt), B16 => Some(Edt), B17 => None, B18 => Some(Pbl), B19 => Some(Edt), B20 => Some(Edt), B21 => Some(Edt), B22 => None, B23 => Some(Edt), B24 => Some(Edt), B25 => Some(Arr), B99 => Some(Adp), C01 => Some(Com), C02 => Some(Com), C99 => Some(Com), D01 => Some(Pro), D02 => Some(Drt), D03 => Some(Cnd), D99 => Some(Drt), E01 => Some(Act), E02 => Some(Dnc), E03 => Some(Nrt), E04 => Some(Cmm), E05 => Some(Sng), E06 => Some(Itr), E07 => Some(Nrt), E08 => Some(Prf), E99 => Some(Prf), F01 => Some(Pht), F99 => None, Z01 => None, Z99 => None, _ => None, } } }