File tree 7 files changed +49
-6
lines changed
7 files changed +49
-6
lines changed Original file line number Diff line number Diff line change @@ -137,15 +137,21 @@ mod allocation {
137
137
}
138
138
139
139
impl < ' a > From < Ia5StringRef < ' a > > for Ia5String {
140
- fn from ( international_string : Ia5StringRef < ' a > ) -> Ia5String {
141
- let inner = international_string . inner . into ( ) ;
140
+ fn from ( ia5_string : Ia5StringRef < ' a > ) -> Ia5String {
141
+ let inner = ia5_string . inner . into ( ) ;
142
142
Self { inner }
143
143
}
144
144
}
145
145
146
146
impl < ' a > From < & ' a Ia5String > for AnyRef < ' a > {
147
- fn from ( international_string : & ' a Ia5String ) -> AnyRef < ' a > {
148
- AnyRef :: from_tag_and_value ( Tag :: Ia5String , ( & international_string. inner ) . into ( ) )
147
+ fn from ( ia5_string : & ' a Ia5String ) -> AnyRef < ' a > {
148
+ AnyRef :: from_tag_and_value ( Tag :: Ia5String , ( & ia5_string. inner ) . into ( ) )
149
+ }
150
+ }
151
+
152
+ impl < ' a > From < & ' a Ia5String > for Ia5StringRef < ' a > {
153
+ fn from ( ia5_string : & ' a Ia5String ) -> Ia5StringRef < ' a > {
154
+ ia5_string. owned_to_ref ( )
149
155
}
150
156
}
151
157
Original file line number Diff line number Diff line change @@ -96,6 +96,14 @@ impl<'a> From<OctetStringRef<'a>> for &'a [u8] {
96
96
}
97
97
}
98
98
99
+ impl < ' a > TryFrom < & ' a [ u8 ] > for OctetStringRef < ' a > {
100
+ type Error = Error ;
101
+
102
+ fn try_from ( byte_slice : & ' a [ u8 ] ) -> Result < Self , Error > {
103
+ OctetStringRef :: new ( byte_slice)
104
+ }
105
+ }
106
+
99
107
#[ cfg( feature = "alloc" ) ]
100
108
pub use self :: allocating:: OctetString ;
101
109
Original file line number Diff line number Diff line change @@ -204,6 +204,12 @@ mod allocation {
204
204
}
205
205
}
206
206
207
+ impl < ' a > From < & ' a PrintableString > for PrintableStringRef < ' a > {
208
+ fn from ( printable_string : & ' a PrintableString ) -> PrintableStringRef < ' a > {
209
+ printable_string. owned_to_ref ( )
210
+ }
211
+ }
212
+
207
213
impl < ' a > RefToOwned < ' a > for PrintableStringRef < ' a > {
208
214
type Owned = PrintableString ;
209
215
fn ref_to_owned ( & self ) -> Self :: Owned {
Original file line number Diff line number Diff line change @@ -166,6 +166,12 @@ mod allocation {
166
166
}
167
167
}
168
168
169
+ impl < ' a > From < & ' a TeletexString > for TeletexStringRef < ' a > {
170
+ fn from ( teletex_string : & ' a TeletexString ) -> TeletexStringRef < ' a > {
171
+ teletex_string. owned_to_ref ( )
172
+ }
173
+ }
174
+
169
175
impl < ' a > RefToOwned < ' a > for TeletexStringRef < ' a > {
170
176
type Owned = TeletexString ;
171
177
fn ref_to_owned ( & self ) -> Self :: Owned {
Original file line number Diff line number Diff line change @@ -68,6 +68,14 @@ impl<'a> From<Utf8StringRef<'a>> for AnyRef<'a> {
68
68
}
69
69
}
70
70
71
+ impl < ' a > TryFrom < & ' a str > for Utf8StringRef < ' a > {
72
+ type Error = Error ;
73
+
74
+ fn try_from ( s : & ' a str ) -> Result < Self > {
75
+ Self :: new ( s)
76
+ }
77
+ }
78
+
71
79
impl < ' a > fmt:: Debug for Utf8StringRef < ' a > {
72
80
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
73
81
write ! ( f, "Utf8String({:?})" , self . as_str( ) )
@@ -114,6 +122,15 @@ impl<'a> TryFrom<AnyRef<'a>> for String {
114
122
}
115
123
}
116
124
125
+ #[ cfg( feature = "alloc" ) ]
126
+ impl < ' a > TryFrom < & ' a String > for Utf8StringRef < ' a > {
127
+ type Error = Error ;
128
+
129
+ fn try_from ( s : & ' a String ) -> Result < Self > {
130
+ Self :: new ( s. as_str ( ) )
131
+ }
132
+ }
133
+
117
134
#[ cfg( feature = "alloc" ) ]
118
135
impl < ' a > DecodeValue < ' a > for String {
119
136
type Error = Error ;
Original file line number Diff line number Diff line change @@ -77,7 +77,7 @@ impl Asn1Type {
77
77
| Asn1Type :: PrintableString
78
78
| Asn1Type :: TeletexString
79
79
| Asn1Type :: VideotexString
80
- | Asn1Type :: Utf8String => quote ! ( #type_path:: new ( #binding) ?) ,
80
+ | Asn1Type :: Utf8String => quote ! ( #type_path:: try_from ( #binding) ?) ,
81
81
_ => quote ! ( #type_path:: try_from( #binding) ?) ,
82
82
}
83
83
}
Original file line number Diff line number Diff line change @@ -225,7 +225,7 @@ mod tests {
225
225
assert_eq ! (
226
226
variant. to_encode_value_tokens( ) . to_string( ) ,
227
227
quote! {
228
- Self :: ExampleVariant ( variant) => :: der:: asn1:: Utf8StringRef :: new ( variant) ?. encode_value( encoder) ,
228
+ Self :: ExampleVariant ( variant) => :: der:: asn1:: Utf8StringRef :: try_from ( variant) ?. encode_value( encoder) ,
229
229
}
230
230
. to_string( )
231
231
) ;
You can’t perform that action at this time.
0 commit comments