Files
jadb/lib/models/jmdict/jmdict_reading_info.dart
2025-07-16 15:23:04 +02:00

34 lines
1.1 KiB
Dart

/// Reading info tags from JMdict
///
/// See https://www.edrdg.org/jmwsgi/edhelp.py#kw_rinf
enum JMdictReadingInfo {
gikun(
id: 'gikun',
description:
'gikun (meaning as reading) or jukujikun (special kanji reading)',
),
ik(id: 'ik', description: 'word containing irregular kana usage'),
ok(id: 'ok', description: 'out-dated or obsolete kana usage'),
rk(id: 'rk', description: 'rarely used kana form'),
sk(id: 'sk', description: 'search-only kana form');
final String id;
final String description;
const JMdictReadingInfo({required this.id, required this.description});
static JMdictReadingInfo fromId(String id) =>
JMdictReadingInfo.values.firstWhere(
(e) => e.id == id,
orElse: () => throw Exception('Unknown id: $id'),
);
Map<String, Object?> toJson() => {'id': id, 'description': description};
static JMdictReadingInfo fromJson(Map<String, Object?> json) =>
JMdictReadingInfo.values.firstWhere(
(e) => e.id == json['id'],
orElse: () => throw Exception('Unknown id: ${json['id']}'),
);
}