diff options
author | Florian Klink <flokli@flokli.de> | 2023-09-17T11·59+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-09-17T13·14+0000 |
commit | 51b8571c48168435c892cb58e9ad62f7c979e4d5 (patch) | |
tree | 8c2fefa7f937dd3bd5121bea542b125a1c51d7fe /tvix/store/src/proto | |
parent | 54bb63dea3a21a2ed40a63a20bacf0220236a7fb (diff) |
feat(tvix/store): improve error message formatting r/6598
WrongSorting(Vec<u8>) actually encodes the name of a node, so if we can, we want this to display it as a string (and fall back to the base64 encoding if we can't). Before: > rpc error: code = InvalidArgument desc = directory b3:yfwNlpPm8MkrRvshGHfgMtKLoSDtX2pKliVuVWmUt5g= failed validation: [108, 111, 99, 97, 108, 101] is not sorted After: > rpc error: code = InvalidArgument desc = directory b3:yfwNlpPm8MkrRvshGHfgMtKLoSDtX2pKliVuVWmUt5g= failed validation: locale is not sorted Change-Id: I68420c53a89cb1aa96e4bdce414366cebcb7915f Reviewed-on: https://cl.tvl.fyi/c/depot/+/9350 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com> Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Diffstat (limited to 'tvix/store/src/proto')
-rw-r--r-- | tvix/store/src/proto/mod.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tvix/store/src/proto/mod.rs b/tvix/store/src/proto/mod.rs index 9dea99fedf56..044769ce579d 100644 --- a/tvix/store/src/proto/mod.rs +++ b/tvix/store/src/proto/mod.rs @@ -1,5 +1,6 @@ #![allow(clippy::derive_partial_eq_without_eq, non_snake_case)] // https://github.com/hyperium/tonic/issues/1056 +use data_encoding::BASE64; use std::{collections::HashSet, iter::Peekable}; use thiserror::Error; @@ -34,7 +35,7 @@ mod tests; #[derive(Debug, PartialEq, Eq, Error)] pub enum ValidateDirectoryError { /// Elements are not in sorted order - #[error("{0:?} is not sorted")] + #[error("{} is not sorted", std::str::from_utf8(.0).unwrap_or(&BASE64.encode(.0)))] WrongSorting(Vec<u8>), /// Multiple elements with the same name encountered #[error("{0:?} is a duplicate name")] |