@@ -114,66 +114,44 @@ impl Versionize for String {
114
114
1
115
115
}
116
116
}
117
+
118
+ impl < T , const N : usize > Versionize for [ T ; N ]
119
+ where
120
+ T : Copy + Default + Versionize ,
121
+ {
122
+ #[ inline]
123
+ fn serialize < W : std:: io:: Write > (
124
+ & self ,
125
+ writer : & mut W ,
126
+ version_map : & VersionMap ,
127
+ app_version : u16 ,
128
+ ) -> VersionizeResult < ( ) > {
129
+ for element in self {
130
+ element. serialize ( writer, version_map, app_version) ?;
131
+ }
117
132
118
- macro_rules! impl_versionize_array_with_size {
119
- ( $ty: literal) => {
120
- impl <T > Versionize for [ T ; $ty]
121
- where
122
- T : Copy + Default + Versionize ,
123
- {
124
- #[ inline]
125
- fn serialize<W : std:: io:: Write >(
126
- & self ,
127
- writer: & mut W ,
128
- version_map: & VersionMap ,
129
- app_version: u16 ,
130
- ) -> VersionizeResult <( ) > {
131
- for element in self {
132
- element. serialize( writer, version_map, app_version) ?;
133
- }
134
-
135
- Ok ( ( ) )
136
- }
137
-
138
- #[ inline]
139
- fn deserialize<R : std:: io:: Read >(
140
- reader: & mut R ,
141
- version_map: & VersionMap ,
142
- app_version: u16 ,
143
- ) -> VersionizeResult <Self > {
144
- let mut array = [ T :: default ( ) ; $ty] ;
145
- for i in 0 ..$ty {
146
- array[ i] = T :: deserialize( reader, version_map, app_version) ?;
147
- }
148
- Ok ( array)
149
- }
133
+ Ok ( ( ) )
134
+ }
150
135
151
- // Not used yet.
152
- fn version( ) -> u16 {
153
- 1
154
- }
136
+ #[ inline]
137
+ fn deserialize < R : std:: io:: Read > (
138
+ reader : & mut R ,
139
+ version_map : & VersionMap ,
140
+ app_version : u16 ,
141
+ ) -> VersionizeResult < Self > {
142
+ let mut array = [ T :: default ( ) ; N ] ;
143
+ for i in 0 ..N {
144
+ array[ i] = T :: deserialize ( reader, version_map, app_version) ?;
155
145
}
156
- } ;
157
- }
146
+ Ok ( array )
147
+ }
158
148
159
- // Conventionally, traits are available for primitive arrays only up to size 32
160
- // until the const generics feature is implemented.
161
- // [https://doc.rust-lang.org/std/primitive.array.html]
162
- // [https://github.com/rust-lang/rust/issues/44580]
163
- macro_rules! impl_versionize_arrays {
164
- ( $( $N: literal) +) => {
165
- $(
166
- impl_versionize_array_with_size!( $N) ;
167
- ) +
149
+ // Not used yet.
150
+ fn version ( ) -> u16 {
151
+ 1
168
152
}
169
153
}
170
154
171
- impl_versionize_arrays ! {
172
- 1 2 3 4 5 6 7 8 9 10
173
- 11 12 13 14 15 16 17 18 19 20
174
- 21 22 23 24 25 26 27 28 29 30
175
- 31 32
176
- }
177
155
178
156
impl < T > Versionize for Box < T >
179
157
where
0 commit comments