use sark_core::body::credit;
use crate::server::payload::{self, Buffer};
pub(crate) enum Rejected<'d, O: credit::Origin = credit::raw::Stored> {
Body(Buffer<'d, O>),
Duplex,
}
impl<O: credit::Origin> Rejected<'_, O> {
pub(crate) fn discard<E: credit::Evidence>(
self,
ledger: &mut credit::raw::Ledger<'_, O>,
evidence: E,
) -> Result<(), payload::Error> {
match self {
Self::Body(body) => body.discard(ledger, evidence),
Self::Duplex => Ok(()),
}
}
}