This repository has no description
1use std::path::PathBuf;
2
3use crate::{ClaimedSize, FreeSpaceFloor, LfsOid, LfsSize};
4
5#[derive(Debug, thiserror::Error)]
6pub enum LfsError {
7 #[error("invalid LFS oid {value:?}")]
8 InvalidOid { value: String },
9 #[error("unsafe repo DID {did:?}")]
10 UnsafeRepoDid { did: String },
11 #[error("oid mismatch, declared {declared}, computed {computed}")]
12 HashMismatch { declared: LfsOid, computed: LfsOid },
13 #[error("size mismatch, declared {declared}, received {received}")]
14 SizeMismatch {
15 declared: ClaimedSize,
16 received: LfsSize,
17 },
18 #[error("object size {declared} exceeds limit {limit}")]
19 SizeLimitExceeded {
20 declared: ClaimedSize,
21 limit: LfsSize,
22 },
23 #[error("free space {free} below floor {floor}")]
24 FreeSpaceDenied {
25 free: LfsSize,
26 floor: FreeSpaceFloor,
27 },
28 #[error("object {oid} not found")]
29 NotFound { oid: LfsOid },
30 #[error("protocol framing fault: {detail}")]
31 Framing { detail: String },
32 #[error("too many {what} in one message, limit {limit}")]
33 TooMany { what: &'static str, limit: usize },
34 #[error("transfer channel fault")]
35 Channel {
36 #[source]
37 source: std::io::Error,
38 },
39 #[error("object body read failed")]
40 BodyRead {
41 #[source]
42 source: std::io::Error,
43 },
44 #[error("{op} {path} failed")]
45 Io {
46 op: &'static str,
47 path: PathBuf,
48 #[source]
49 source: std::io::Error,
50 },
51}