Don't require a prefix when configuring byte arrays

This commit is contained in:
Eike Kettner
2020-01-05 15:28:57 +01:00
parent 993a3d05e2
commit 9020d9aa3b
2 changed files with 4 additions and 3 deletions

View File

@ -27,9 +27,9 @@ object Implicits {
ConfigReader[String].emap(reason(str => {
if (str.startsWith("hex:")) ByteVector.fromHex(str.drop(4)).toRight("Invalid hex value.")
else if (str.startsWith("b64:")) ByteVector.fromBase64(str.drop(4)).toRight("Invalid Base64 string.")
else ByteVector.fromHex(str).toRight("Invalid hex value.")
else ByteVector.encodeUtf8(str).left.map(ex => s"Invalid utf8 string: ${ex.getMessage}")
}))
def reason[A: ClassTag](f: String => Either[String, A]): String => Either[FailureReason, A] =
in => f(in).left.map(str => CannotConvert(in, implicitly[ClassTag[A]].runtimeClass.toString, str))
}
}