use crate::{AuthHandleBuf, exn::FaultString};
use core::fmt::{Debug, Display};
pub type Buf = crate::internal::ScratchBuf;
pub type ReturnBuf = Buf;
pub type AbortBuf = Buf;
pub type ContractResult = Result<(ReturnBuf, AuthHandleBuf), ContractError>;
#[derive(Debug, PartialEq)]
#[repr(i32)]
pub enum ContractError {
Abort(AbortBuf),
Fault(FaultString),
}
impl ContractError {
pub fn fault_via_display<V>(v: &V) -> Self
where
V: Display + ?Sized,
{
ContractError::Fault(FaultString::via_display(v))
}
pub fn fault_from_display<V>(v: V) -> Self
where
V: Display,
{
ContractError::Fault(FaultString::from_display(v))
}
}