mirror of
https://github.com/NixOS/nix
synced 2025-06-26 11:41:15 +02:00
Add NAR parser
This commit is contained in:
parent
6317f0f7a0
commit
7f08975050
6 changed files with 160 additions and 3 deletions
|
@ -8,6 +8,15 @@ pub enum Error {
|
|||
BadBase32,
|
||||
StorePathNameTooLong,
|
||||
BadStorePathName,
|
||||
NarSizeFieldTooBig,
|
||||
BadNarString,
|
||||
BadNarPadding,
|
||||
BadNarVersionMagic,
|
||||
MissingNarOpenTag,
|
||||
MissingNarCloseTag,
|
||||
MissingNarField,
|
||||
BadNarField(String),
|
||||
BadExecutableField,
|
||||
IOError(std::io::Error),
|
||||
HttpError(reqwest::Error),
|
||||
Misc(String),
|
||||
|
@ -37,6 +46,15 @@ impl fmt::Display for Error {
|
|||
write!(f, "store path name is longer than 211 characters")
|
||||
}
|
||||
Error::BadStorePathName => write!(f, "store path name contains forbidden character"),
|
||||
Error::NarSizeFieldTooBig => write!(f, "size field in NAR is too big"),
|
||||
Error::BadNarString => write!(f, "NAR string is not valid UTF-8"),
|
||||
Error::BadNarPadding => write!(f, "NAR padding is not zero"),
|
||||
Error::BadNarVersionMagic => write!(f, "unsupported NAR version"),
|
||||
Error::MissingNarOpenTag => write!(f, "NAR open tag is missing"),
|
||||
Error::MissingNarCloseTag => write!(f, "NAR close tag is missing"),
|
||||
Error::MissingNarField => write!(f, "expected NAR field is missing"),
|
||||
Error::BadNarField(s) => write!(f, "unrecognized NAR field '{}'", s),
|
||||
Error::BadExecutableField => write!(f, "bad 'executable' field in NAR"),
|
||||
Error::IOError(err) => write!(f, "I/O error: {}", err),
|
||||
Error::HttpError(err) => write!(f, "HTTP error: {}", err),
|
||||
Error::Foreign(_) => write!(f, "<C++ exception>"), // FIXME
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue