-
-
Notifications
You must be signed in to change notification settings - Fork 356
/
RimeSchema.kt
51 lines (45 loc) · 1.35 KB
/
RimeSchema.kt
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
package com.osfans.trime.data.schema
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.Transient
@Serializable
data class RimeSchema(
@SerialName("__build_info")
val buildInfo: BuildInfo? = null, // 构建信息
val schema: Schema, // 方案信息
val switches: List<Switch> = listOf(), // 选项开关
val punctuator: Punctuator? = null, // 标点
val speller: Speller? = null // 拼写器
) {
@Serializable
data class BuildInfo(
@SerialName("rime_version")
val rimeVersion: String,
val timestamps: Map<String, Long> = mapOf()
)
@Serializable
data class Schema(
val author: List<String> = listOf(),
@SerialName("schema_id")
val schemaId: String,
val version: String? = null,
val dependencies: List<String> = listOf(),
val description: String? = null
)
@Serializable
data class Switch(
val name: String? = null,
val options: List<String> = listOf(),
val reset: Int? = null,
val states: List<String> = listOf(),
@Transient var enabled: Int = 0,
)
@Serializable
data class Punctuator(
val symbols: Map<String, List<String>> = mapOf()
)
@Serializable
data class Speller(
val alphabet: String? = null
)
}