Rename `HexVisitor` to `FromStrVisitor`
The visitor works with all types that implement `FromStr`. Whether or not that ends up being hex encoding depends on the implementation of `FromStr`.
This commit is contained in:
parent
18890d3b86
commit
e6e23e9dd6
|
@ -228,7 +228,7 @@ impl ::serde::Serialize for SecretKey {
|
|||
impl<'de> ::serde::Deserialize<'de> for SecretKey {
|
||||
fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {
|
||||
if d.is_human_readable() {
|
||||
d.deserialize_str(super::serde_util::HexVisitor::new(
|
||||
d.deserialize_str(super::serde_util::FromStrVisitor::new(
|
||||
"a hex string representing 32 byte SecretKey"
|
||||
))
|
||||
} else {
|
||||
|
@ -442,7 +442,7 @@ impl ::serde::Serialize for PublicKey {
|
|||
impl<'de> ::serde::Deserialize<'de> for PublicKey {
|
||||
fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<PublicKey, D::Error> {
|
||||
if d.is_human_readable() {
|
||||
d.deserialize_str(super::serde_util::HexVisitor::new(
|
||||
d.deserialize_str(super::serde_util::FromStrVisitor::new(
|
||||
"an ASCII hex string representing a public key"
|
||||
))
|
||||
} else {
|
||||
|
|
|
@ -444,7 +444,7 @@ impl ::serde::Serialize for Signature {
|
|||
impl<'de> ::serde::Deserialize<'de> for Signature {
|
||||
fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {
|
||||
if d.is_human_readable() {
|
||||
d.deserialize_str(serde_util::HexVisitor::new(
|
||||
d.deserialize_str(serde_util::FromStrVisitor::new(
|
||||
"a hex string representing a DER encoded Signature"
|
||||
))
|
||||
} else {
|
||||
|
|
|
@ -34,7 +34,7 @@ impl ::serde::Serialize for Signature {
|
|||
impl<'de> ::serde::Deserialize<'de> for Signature {
|
||||
fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {
|
||||
if d.is_human_readable() {
|
||||
d.deserialize_str(super::serde_util::HexVisitor::new(
|
||||
d.deserialize_str(super::serde_util::FromStrVisitor::new(
|
||||
"a hex string representing 64 byte schnorr signature"
|
||||
))
|
||||
} else {
|
||||
|
@ -417,7 +417,7 @@ impl ::serde::Serialize for PublicKey {
|
|||
impl<'de> ::serde::Deserialize<'de> for PublicKey {
|
||||
fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {
|
||||
if d.is_human_readable() {
|
||||
d.deserialize_str(super::serde_util::HexVisitor::new(
|
||||
d.deserialize_str(super::serde_util::FromStrVisitor::new(
|
||||
"a hex string representing 32 byte schnorr public key"
|
||||
))
|
||||
} else {
|
||||
|
|
|
@ -3,21 +3,22 @@ use core::marker::PhantomData;
|
|||
use core::str::{self, FromStr};
|
||||
use serde::de;
|
||||
|
||||
pub struct HexVisitor<T> {
|
||||
/// A serde visitor that works for `T`s implementing `FromStr`.
|
||||
pub struct FromStrVisitor<T> {
|
||||
expectation: &'static str,
|
||||
_pd: PhantomData<T>,
|
||||
}
|
||||
|
||||
impl<T> HexVisitor<T> {
|
||||
impl<T> FromStrVisitor<T> {
|
||||
pub fn new(expectation: &'static str) -> Self {
|
||||
HexVisitor {
|
||||
FromStrVisitor {
|
||||
expectation,
|
||||
_pd: PhantomData,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de, T> de::Visitor<'de> for HexVisitor<T>
|
||||
impl<'de, T> de::Visitor<'de> for FromStrVisitor<T>
|
||||
where
|
||||
T: FromStr,
|
||||
<T as FromStr>::Err: fmt::Display,
|
||||
|
|
Loading…
Reference in New Issue