123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354(*****************************************************************************)(* *)(* Copyright (C) 2026 Yves Ndiaye *)(* *)(* This Source Code Form is subject to the terms of the Mozilla Public *)(* License, v. 2.0. If a copy of the MPL was not distributed with this *)(* file, You can obtain one at https://mozilla.org/MPL/2.0/. *)(* *)(*****************************************************************************)typet=Unknown|Artist|AlbumArtist|Composer[@@derivingyojson]letcompare=Stdlib.compareletequal=(=)letto_string=function|Unknown->"unknwon"|Artist->"artist"|AlbumArtist->"albumartist"|Composer->"composer"letto_int=function|Unknown->0|Artist->1|AlbumArtist->2|Composer->3letof_int=function|1->Artist|2->AlbumArtist|3->Composer|0|_->Unknownletroles=[Unknown;Artist;AlbumArtist;Composer]letchoices=List.map(func->lets=to_stringcin(s,c))roles