check-implementation 0.1.0

Workspace check contract implementation
Documentation
boxology::contract! {
    pub struct CheckRequest { pub workspace: String, pub base: Option<String> }
    pub enum CheckStatus { Passed, Failed }
    pub enum CheckStepStatus { Passed, Failed, Skipped }
    pub enum CheckFailureKind { Validation, Invocation }
    pub struct CheckFinding {
        pub kind: String, pub code: String, pub path: String, pub package: Option<String>,
        pub payload: Option<String>, pub rule: Option<String>, pub rule_source: Option<String>,
        pub span_start_line: Option<u64>, pub span_start_column: Option<u64>,
        pub span_end_line: Option<u64>, pub span_end_column: Option<u64>,
        pub offending: Option<String>, pub class: Option<String>, pub condition: Option<String>,
    }
    pub struct CheckStepReport {
        pub id: String, pub status: CheckStepStatus, pub reason: Option<String>,
        pub findings: Vec<CheckFinding>, pub output: Option<Vec<u8>>,
    }
    pub struct CheckReport {
        pub steps: Vec<CheckStepReport>, pub status: CheckStatus,
        pub human: Vec<u8>, pub json: Vec<u8>,
    }
    pub struct CheckFailure {
        pub kind: CheckFailureKind, pub human: Vec<u8>, pub json: Vec<u8>,
    }
    pub struct CheckOutcome { pub report: Option<CheckReport>, pub failure: Option<CheckFailure> }
    #[error]
    pub enum CheckError { Internal }
    #[capability]
    pub async fn check(request: CheckRequest) -> Result<CheckOutcome, CheckError>;
}