Skip to content

Commit f430ab8

Browse files
authored
[PM-23912] Allow From impls for any extension E. (#83)
* format: Allow `From` impls for any extension E. If you use an extension other than `()` the `From` impls aren't that useful. With this patch, you can use them no matter what extensions you define on your types. * Add changelog entry.
1 parent b8c9446 commit f430ab8

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

credential-exchange-format/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1717
non-breaking in the future. (#80)
1818
- **BREAKING**: Changed fields in `Fido2HmacCredentials` and `GeneratedPasswordCredential` to be
1919
public. (#82)
20+
- **BREAKING**: Allow `From` impls for any extension E. (#83)

credential-exchange-format/src/editable_field.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ where
132132
}
133133

134134
// Helper for converting inner types into EditableField
135-
impl<T> From<T> for EditableField<T> {
135+
impl<T, E> From<T> for EditableField<T, E> {
136136
fn from(s: T) -> Self {
137137
EditableField {
138138
id: None,
@@ -152,14 +152,14 @@ impl EditableFieldType for EditableFieldString {
152152
}
153153
}
154154

155-
impl From<String> for EditableField<EditableFieldString> {
155+
impl<E> From<String> for EditableField<EditableFieldString, E> {
156156
fn from(s: String) -> Self {
157157
EditableFieldString(s).into()
158158
}
159159
}
160160

161-
impl From<EditableField<EditableFieldString>> for String {
162-
fn from(s: EditableField<EditableFieldString>) -> Self {
161+
impl<E> From<EditableField<EditableFieldString, E>> for String {
162+
fn from(s: EditableField<EditableFieldString, E>) -> Self {
163163
s.value.0
164164
}
165165
}
@@ -173,14 +173,14 @@ impl EditableFieldType for EditableFieldConcealedString {
173173
}
174174
}
175175

176-
impl From<String> for EditableField<EditableFieldConcealedString> {
176+
impl<E> From<String> for EditableField<EditableFieldConcealedString, E> {
177177
fn from(s: String) -> Self {
178178
EditableFieldConcealedString(s).into()
179179
}
180180
}
181181

182-
impl From<EditableField<EditableFieldConcealedString>> for String {
183-
fn from(s: EditableField<EditableFieldConcealedString>) -> Self {
182+
impl<E> From<EditableField<EditableFieldConcealedString, E>> for String {
183+
fn from(s: EditableField<EditableFieldConcealedString, E>) -> Self {
184184
s.value.0
185185
}
186186
}
@@ -193,14 +193,14 @@ impl EditableFieldType for EditableFieldBoolean {
193193
}
194194
}
195195

196-
impl From<bool> for EditableField<EditableFieldBoolean> {
196+
impl<E> From<bool> for EditableField<EditableFieldBoolean, E> {
197197
fn from(b: bool) -> Self {
198198
EditableFieldBoolean(b).into()
199199
}
200200
}
201201

202-
impl From<EditableField<EditableFieldBoolean>> for bool {
203-
fn from(b: EditableField<EditableFieldBoolean>) -> Self {
202+
impl<E> From<EditableField<EditableFieldBoolean, E>> for bool {
203+
fn from(b: EditableField<EditableFieldBoolean, E>) -> Self {
204204
b.value.0
205205
}
206206
}
@@ -303,14 +303,14 @@ impl EditableFieldType for EditableFieldSubdivisionCode {
303303
}
304304
}
305305

306-
impl From<String> for EditableField<EditableFieldSubdivisionCode> {
306+
impl<E> From<String> for EditableField<EditableFieldSubdivisionCode, E> {
307307
fn from(s: String) -> Self {
308308
EditableFieldSubdivisionCode(s).into()
309309
}
310310
}
311311

312-
impl From<EditableField<EditableFieldSubdivisionCode>> for String {
313-
fn from(s: EditableField<EditableFieldSubdivisionCode>) -> Self {
312+
impl<E> From<EditableField<EditableFieldSubdivisionCode, E>> for String {
313+
fn from(s: EditableField<EditableFieldSubdivisionCode, E>) -> Self {
314314
s.value.0
315315
}
316316
}
@@ -324,14 +324,14 @@ impl EditableFieldType for EditableFieldCountryCode {
324324
}
325325
}
326326

327-
impl From<String> for EditableField<EditableFieldCountryCode> {
327+
impl<E> From<String> for EditableField<EditableFieldCountryCode, E> {
328328
fn from(s: String) -> Self {
329329
EditableFieldCountryCode(s).into()
330330
}
331331
}
332332

333-
impl From<EditableField<EditableFieldCountryCode>> for String {
334-
fn from(s: EditableField<EditableFieldCountryCode>) -> Self {
333+
impl<E> From<EditableField<EditableFieldCountryCode, E>> for String {
334+
fn from(s: EditableField<EditableFieldCountryCode, E>) -> Self {
335335
s.value.0
336336
}
337337
}

0 commit comments

Comments
 (0)