1use crate::enums::PamReturnCode;
2
3pub type PamHandle = pam_sys::pam_handle_t;
5pub type PamMessage = pam_sys::pam_message;
7pub type PamResponse = pam_sys::pam_response;
9
10pub struct PamError(pub PamReturnCode);
12
13pub type PamResult<T> = std::result::Result<T, PamError>;
15
16impl std::fmt::Debug for PamError {
17 fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {
18 self.0.fmt(fmt)
19 }
20}
21
22impl std::fmt::Display for PamError {
23 fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::fmt::Result {
24 self.0.fmt(fmt)
25 }
26}
27
28impl std::error::Error for PamError {
29 fn description(&self) -> &str {
30 "PAM returned an error code"
31 }
32}
33
34impl From<PamReturnCode> for PamError {
35 fn from(err: PamReturnCode) -> PamError {
36 PamError(err)
37 }
38}