ModeleLocal.kt
37 lignes · 1115 octets
package fr.ebii.card2vcf.modeles enum class TypeModele { /** Fichier `.traineddata` Tesseract, déposé tel quel. */ TESSDATA, /** Archive zip Vosk, décompressée après téléchargement. */ VOSK, } /** * Un modèle téléchargeable après installation. * * [tailleOctets] et [sha256] sont épinglés au catalogue : ils servent à afficher le poids * avant téléchargement et à vérifier l'intégrité de ce qui a été reçu. */ data class ModeleLocal( val id: String, val type: TypeModele, val tailleOctets: Long, val sha256: String, ) { /** Nom du fichier tel qu'il est publié en amont (et attendu sur un miroir). */ val nomFichier: String get() = when (type) { TypeModele.TESSDATA -> "$id.traineddata" TypeModele.VOSK -> "$id.zip" } } /** État d'un modèle sur l'appareil. */ sealed interface EtatModele { data object Absent : EtatModele data class EnCours(val pourcentage: Int) : EtatModele data class Present(val tailleOctets: Long) : EtatModele data class Echec(val message: String) : EtatModele }
GitRust