34 lines
1.1 KiB
Dart
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']}'),
|
|
);
|
|
}
|