Skip to content
1 change: 1 addition & 0 deletions crates/cargo-util-schemas/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

pub mod core;
pub mod index;
pub mod lockfile;
pub mod manifest;
pub mod messages;
#[cfg(feature = "unstable-schema")]
Expand Down
36 changes: 36 additions & 0 deletions crates/cargo-util-schemas/src/lockfile.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#[derive(Debug, thiserror::Error)]
#[error(transparent)]
pub struct EncodableSourceIdError(#[from] pub EncodableSourceIdErrorKind);

#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum EncodableSourceIdErrorKind {
#[error("invalid source `{0}`")]
InvalidSource(String),

#[error("invalid url `{url}`: {msg}")]
InvalidUrl { url: String, msg: String },

#[error("unsupported source protocol: {0}")]
UnsupportedSource(String),
}

#[derive(Debug, thiserror::Error)]
#[error(transparent)]
pub struct EncodablePackageIdError(#[from] EncodablePackageIdErrorKind);

impl From<EncodableSourceIdError> for EncodablePackageIdError {
fn from(value: EncodableSourceIdError) -> Self {
EncodablePackageIdErrorKind::Source(value).into()
}
}

#[non_exhaustive]
#[derive(Debug, thiserror::Error)]
pub enum EncodablePackageIdErrorKind {
#[error("invalid serialied PackageId")]
InvalidSerializedPackageId,

#[error(transparent)]
Source(#[from] EncodableSourceIdError),
}
Loading