forked from lix-project/lix
rust: small patches
This commit is contained in:
parent
54f4500457
commit
eaef251b2b
|
@ -1,3 +1,4 @@
|
||||||
|
#[allow(improper_ctypes_definitions)]
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
mod c;
|
mod c;
|
||||||
mod error;
|
mod error;
|
||||||
|
|
|
@ -19,9 +19,9 @@ impl StorePath {
|
||||||
}
|
}
|
||||||
Self::new_from_base_name(
|
Self::new_from_base_name(
|
||||||
path.file_name()
|
path.file_name()
|
||||||
.ok_or(Error::BadStorePath(path.into()))?
|
.ok_or_else(|| Error::BadStorePath(path.into()))?
|
||||||
.to_str()
|
.to_str()
|
||||||
.ok_or(Error::BadStorePath(path.into()))?,
|
.ok_or_else(|| Error::BadStorePath(path.into()))?,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ impl StorePath {
|
||||||
|
|
||||||
pub fn new_from_base_name(base_name: &str) -> Result<Self, Error> {
|
pub fn new_from_base_name(base_name: &str) -> Result<Self, Error> {
|
||||||
if base_name.len() < STORE_PATH_HASH_CHARS + 1
|
if base_name.len() < STORE_PATH_HASH_CHARS + 1
|
||||||
|| base_name.as_bytes()[STORE_PATH_HASH_CHARS] != '-' as u8
|
|| base_name.as_bytes()[STORE_PATH_HASH_CHARS] != b'-'
|
||||||
{
|
{
|
||||||
return Err(Error::BadStorePath(base_name.into()));
|
return Err(Error::BadStorePath(base_name.into()));
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ impl StorePathHash {
|
||||||
Ok(Self(bytes))
|
Ok(Self(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn hash<'a>(&'a self) -> &'a [u8; STORE_PATH_HASH_BYTES] {
|
pub fn hash(&self) -> &[u8; STORE_PATH_HASH_BYTES] {
|
||||||
&self.0
|
&self.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ pub struct StorePathName(String);
|
||||||
|
|
||||||
impl StorePathName {
|
impl StorePathName {
|
||||||
pub fn new(s: &str) -> Result<Self, Error> {
|
pub fn new(s: &str) -> Result<Self, Error> {
|
||||||
if s.len() == 0 {
|
if s.is_empty() {
|
||||||
return Err(Error::StorePathNameEmpty);
|
return Err(Error::StorePathNameEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,25 +106,24 @@ impl StorePathName {
|
||||||
return Err(Error::StorePathNameTooLong);
|
return Err(Error::StorePathNameTooLong);
|
||||||
}
|
}
|
||||||
|
|
||||||
if s.starts_with('.')
|
let is_good_path_name = s.chars().all(|c| {
|
||||||
|| !s.chars().all(|c| {
|
c.is_ascii_alphabetic()
|
||||||
c.is_ascii_alphabetic()
|
|| c.is_ascii_digit()
|
||||||
|| c.is_ascii_digit()
|
|| c == '+'
|
||||||
|| c == '+'
|
|| c == '-'
|
||||||
|| c == '-'
|
|| c == '.'
|
||||||
|| c == '.'
|
|| c == '_'
|
||||||
|| c == '_'
|
|| c == '?'
|
||||||
|| c == '?'
|
|| c == '='
|
||||||
|| c == '='
|
});
|
||||||
})
|
if s.starts_with('.') || !is_good_path_name {
|
||||||
{
|
|
||||||
return Err(Error::BadStorePathName);
|
return Err(Error::BadStorePathName);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(Self(s.to_string()))
|
Ok(Self(s.to_string()))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn name<'a>(&'a self) -> &'a str {
|
pub fn name(&self) -> &str {
|
||||||
&self.0
|
&self.0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub fn decoded_len(input_len: usize) -> usize {
|
||||||
input_len * 5 / 8
|
input_len * 5 / 8
|
||||||
}
|
}
|
||||||
|
|
||||||
static BASE32_CHARS: &'static [u8; 32] = &b"0123456789abcdfghijklmnpqrsvwxyz";
|
static BASE32_CHARS: &[u8; 32] = &b"0123456789abcdfghijklmnpqrsvwxyz";
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref BASE32_CHARS_REVERSE: Box<[u8; 256]> = {
|
static ref BASE32_CHARS_REVERSE: Box<[u8; 256]> = {
|
||||||
|
|
Loading…
Reference in a new issue