Crate ipp [−] [src]
IPP protocol implementation for Rust
Usage examples:
// using raw API use ipp::{IppRequestResponse, IppClient}; use ipp::consts::operation::Operation; let uri = "http://localhost:631/printers/test-printer"; let req = IppRequestResponse::new(Operation::GetPrinterAttributes, uri); let client = IppClient::new(uri); if let Ok(resp) = client.send_request(req) { if resp.header().operation_status <= 3 { println!("result: {:?}", resp.attributes()); } }
// using operation API use ipp::{GetPrinterAttributes, IppClient}; let operation = GetPrinterAttributes::new(); let client = IppClient::new("http://localhost:631/printers/test-printer"); if let Ok(attrs) = client.send(operation) { for (_, v) in attrs.get_printer_attributes().unwrap() { println!("{}: {}", v.name(), v.value()); } }
Re-exports
pub use attribute::IppAttribute; |
pub use attribute::IppAttributeList; |
pub use client::IppClient; |
pub use operation::IppOperation; |
pub use operation::PrintJob; |
pub use operation::GetPrinterAttributes; |
pub use operation::CreateJob; |
pub use operation::SendDocument; |
pub use request::IppRequestResponse; |
pub use value::IppValue; |
Modules
attribute |
Attribute-related structs |
client |
IPP client |
consts |
This module holds IPP constants such as attribute names, operations and tags |
ffi |
Interface functions to be called from other languages |
operation |
High-level IPP operation abstractions |
parser |
IPP stream parser |
request |
IPP request |
server |
Basic definitions for IPP server implementation |
util |
High-level utility functions to be used from external application or command-line utility |
value |
IPP value |
Structs
IppHeader |
IPP request and response header |
Enums
IppError |
IPP error |
Constants
IPP_VERSION |
Traits
ReadIppExt |
Trait which adds two methods to Read implementations: |
Type Definitions
Result |