Goal is to remove all functionality from Base64UrlSafeData which is not about serialisation, and stop dependants from using internal-only interfaces. HumanBinaryData won't provide these interfaces, so it needs to make do.
Make Base64UrlSafeData.0 (the inner Vec<u8>) private, like HumanBinaryData.
This switches over everything which used the inner field to using From, Deref or ::new(). These interfaces are also available on HumanBinaryData, and makes the types pretty much interchangable.
Remove impl Display for Base64UrlSafeData (which converted the inner value into a Base64 string).
The alternative is to use base64::Engine::encode.
Remove impl TryFrom<&str> for Base64UrlSafeData (which attempted to parse strings as Base64).
The alternative is to use base64::Engine::decode.
Migrate WinWrapper::new to use owned types rather than pass-by-reference.
Most of the existing implementations made copies of that data, and callers don't need to clone anyway.
[ x ] cargo test has been run and passes
[ x ] documentation has been updated with relevant examples (if relevant)
Supercedes https://github.com/kanidm/webauthn-rs/pull/356
Fixes #352
Goal is to remove all functionality from
Base64UrlSafeData
which is not about serialisation, and stop dependants from using internal-only interfaces.HumanBinaryData
won't provide these interfaces, so it needs to make do.Make
Base64UrlSafeData.0
(the innerVec<u8>
) private, likeHumanBinaryData
.This switches over everything which used the inner field to using
From
,Deref
or::new()
. These interfaces are also available onHumanBinaryData
, and makes the types pretty much interchangable.Remove
impl Display for Base64UrlSafeData
(which converted the inner value into a Base64 string).The alternative is to use
base64::Engine::encode
.Remove
impl TryFrom<&str> for Base64UrlSafeData
(which attempted to parse strings as Base64).The alternative is to use
base64::Engine::decode
.Migrate
WinWrapper::new
to use owned types rather than pass-by-reference.Most of the existing implementations made copies of that data, and callers don't need to clone anyway.
[ x ] cargo test has been run and passes
[ x ] documentation has been updated with relevant examples (if relevant)