fix(tvix/castore): use bstr for formatting names in errors
Much friendlier than either Base64 or raw byte slices. Change-Id: I9b4cdd57c83ddc76c0be8103da4320207657a72b Reviewed-on: https://cl.tvl.fyi/c/depot/+/9622 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
baae5ce473
commit
930edb69d7
4 changed files with 10 additions and 4 deletions
1
tvix/Cargo.lock
generated
1
tvix/Cargo.lock
generated
|
@ -2713,6 +2713,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-stream",
|
"async-stream",
|
||||||
"blake3",
|
"blake3",
|
||||||
|
"bstr",
|
||||||
"bytes",
|
"bytes",
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
"futures",
|
"futures",
|
||||||
|
|
|
@ -8116,6 +8116,10 @@ rec {
|
||||||
packageId = "blake3";
|
packageId = "blake3";
|
||||||
features = [ "rayon" "std" ];
|
features = [ "rayon" "std" ];
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "bstr";
|
||||||
|
packageId = "bstr";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "bytes";
|
name = "bytes";
|
||||||
packageId = "bytes";
|
packageId = "bytes";
|
||||||
|
|
|
@ -22,6 +22,7 @@ tower = "0.4.13"
|
||||||
tracing = "0.1.37"
|
tracing = "0.1.37"
|
||||||
url = "2.4.0"
|
url = "2.4.0"
|
||||||
walkdir = "2.4.0"
|
walkdir = "2.4.0"
|
||||||
|
bstr = "1.6.0"
|
||||||
|
|
||||||
[dependencies.tonic-reflection]
|
[dependencies.tonic-reflection]
|
||||||
optional = true
|
optional = true
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#![allow(clippy::derive_partial_eq_without_eq, non_snake_case)]
|
#![allow(clippy::derive_partial_eq_without_eq, non_snake_case)]
|
||||||
// https://github.com/hyperium/tonic/issues/1056
|
// https://github.com/hyperium/tonic/issues/1056
|
||||||
use data_encoding::BASE64;
|
use bstr::ByteSlice;
|
||||||
use std::{collections::HashSet, iter::Peekable};
|
use std::{collections::HashSet, iter::Peekable};
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
|
@ -29,13 +29,13 @@ mod tests;
|
||||||
#[derive(Debug, PartialEq, Eq, Error)]
|
#[derive(Debug, PartialEq, Eq, Error)]
|
||||||
pub enum ValidateDirectoryError {
|
pub enum ValidateDirectoryError {
|
||||||
/// Elements are not in sorted order
|
/// Elements are not in sorted order
|
||||||
#[error("{} is not sorted", std::str::from_utf8(.0).unwrap_or(&BASE64.encode(.0)))]
|
#[error("{:?} is not sorted", .0.as_bstr())]
|
||||||
WrongSorting(Vec<u8>),
|
WrongSorting(Vec<u8>),
|
||||||
/// Multiple elements with the same name encountered
|
/// Multiple elements with the same name encountered
|
||||||
#[error("{0:?} is a duplicate name")]
|
#[error("{:?} is a duplicate name", .0.as_bstr())]
|
||||||
DuplicateName(Vec<u8>),
|
DuplicateName(Vec<u8>),
|
||||||
/// Invalid name encountered
|
/// Invalid name encountered
|
||||||
#[error("Invalid name in {0:?}")]
|
#[error("Invalid name in {:?}", .0.as_bstr())]
|
||||||
InvalidName(Vec<u8>),
|
InvalidName(Vec<u8>),
|
||||||
/// Invalid digest length encountered
|
/// Invalid digest length encountered
|
||||||
#[error("Invalid Digest length: {0}")]
|
#[error("Invalid Digest length: {0}")]
|
||||||
|
|
Loading…
Add table
Reference in a new issue