diff --git a/src/services/w3c/types.rs b/src/services/w3c/types.rs index 2da81ef9..10c3b5e7 100644 --- a/src/services/w3c/types.rs +++ b/src/services/w3c/types.rs @@ -6,9 +6,14 @@ pub struct MakeCredentialAttributes(pub(crate) CredentialSubject); impl MakeCredentialAttributes { pub fn add(&mut self, name: impl Into, raw: impl Into) { - self.0 - .0 - .insert(name.into(), CredentialAttributeValue::String(raw.into())); + let string_value = raw.into(); + let value = if let Ok(number) = string_value.parse::() { + CredentialAttributeValue::Number(number) + } else { + CredentialAttributeValue::String(string_value) + }; + + self.0 .0.insert(name.into(), value); } }