diff options
Diffstat (limited to 'src/NormData.zig')
| -rw-r--r-- | src/NormData.zig | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/NormData.zig b/src/NormData.zig index 413619a..7ffe679 100644 --- a/src/NormData.zig +++ b/src/NormData.zig | |||
| @@ -8,25 +8,30 @@ const FoldData = @import("FoldData"); | |||
| 8 | const HangulData = @import("HangulData"); | 8 | const HangulData = @import("HangulData"); |
| 9 | const NormPropsData = @import("NormPropsData"); | 9 | const NormPropsData = @import("NormPropsData"); |
| 10 | 10 | ||
| 11 | canon_data: CanonData, | 11 | canon_data: CanonData = undefined, |
| 12 | ccc_data: CccData, | 12 | ccc_data: CccData = undefined, |
| 13 | compat_data: CompatData, | 13 | compat_data: CompatData = undefined, |
| 14 | hangul_data: HangulData, | 14 | hangul_data: HangulData = undefined, |
| 15 | normp_data: NormPropsData, | 15 | normp_data: NormPropsData = undefined, |
| 16 | 16 | ||
| 17 | const Self = @This(); | 17 | const Self = @This(); |
| 18 | 18 | ||
| 19 | pub fn init(allocator: std.mem.Allocator) !Self { | 19 | pub fn init(allocator: std.mem.Allocator) !Self { |
| 20 | return Self{ | 20 | var self = Self{}; |
| 21 | .canon_data = try CanonData.init(allocator), | 21 | self.canon_data = try CanonData.init(allocator); |
| 22 | .ccc_data = try CccData.init(allocator), | 22 | errdefer self.canon_data.deinit(); |
| 23 | .compat_data = try CompatData.init(allocator), | 23 | self.ccc_data = try CccData.init(allocator); |
| 24 | .hangul_data = try HangulData.init(allocator), | 24 | errdefer self.ccc_data.deinit(); |
| 25 | .normp_data = try NormPropsData.init(allocator), | 25 | self.compat_data = try CompatData.init(allocator); |
| 26 | }; | 26 | errdefer self.compat_data.deinit(); |
| 27 | self.hangul_data = try HangulData.init(allocator); | ||
| 28 | errdefer self.hangul_data.deinit(); | ||
| 29 | self.normp_data = try NormPropsData.init(allocator); | ||
| 30 | |||
| 31 | return self; | ||
| 27 | } | 32 | } |
| 28 | 33 | ||
| 29 | pub fn deinit(self: *const Self) void { | 34 | pub fn deinit(self: *Self) void { |
| 30 | self.canon_data.deinit(); | 35 | self.canon_data.deinit(); |
| 31 | self.ccc_data.deinit(); | 36 | self.ccc_data.deinit(); |
| 32 | self.compat_data.deinit(); | 37 | self.compat_data.deinit(); |