use http::Uri;
use crate::{
model::Operation, operation::IppOperation, parser::IppParseError, request::IppRequestResponse, value::IppString,
};
#[derive(Default)]
pub struct CupsGetPrinters;
impl CupsGetPrinters {
pub fn new() -> CupsGetPrinters {
CupsGetPrinters
}
}
impl IppOperation for CupsGetPrinters {
fn into_ipp_request(self) -> IppRequestResponse {
IppRequestResponse::new(self.version(), Operation::CupsGetPrinters, None)
.expect("cups list printers URI length check missing")
}
}
pub struct CupsDeletePrinter(IppString);
impl CupsDeletePrinter {
pub fn new(printer_uri: Uri) -> Result<CupsDeletePrinter, IppParseError> {
Ok(CupsDeletePrinter(printer_uri.try_into()?))
}
}
impl IppOperation for CupsDeletePrinter {
fn into_ipp_request(self) -> IppRequestResponse {
IppRequestResponse::new_internal(self.version(), Operation::CupsDeletePrinter, Some(self.0))
}
}