comparison src/conv.rs @ 64:bbe84835d6db v0.0.5

More organization; add lots of docs. - moves `PamHandle` to its own module, since it will be used by both modules and clients. - adds a ton of documentation to the `PamModule` trait and reorders methods to most-interesting-first. - adds more flag values from pam_modules.h. - other misc cleanup.
author Paul Fisher <paul@pfish.zone>
date Thu, 22 May 2025 01:52:32 -0400
parents a7aa5ca0d00d
children
comparison
equal deleted inserted replaced
63:a7aa5ca0d00d 64:bbe84835d6db
1 //! The [Conversation] struct, for interacting with the user. 1 //! The [Conversation] struct, for interacting with the user.
2 //! 2 //!
3 //! This module is experimental and will probably be rewritten in the future 3 //! This module is experimental and will probably be rewritten in the future
4 //! to improve the interface for both PAM modules and clients. 4 //! to improve the interface for both PAM modules and clients.
5 5
6 use crate::constants::MessageStyle;
7 use crate::constants::Result;
8 use crate::constants::{ErrorCode, InvalidEnum};
9 use crate::items::Item;
6 use libc::{c_char, c_int}; 10 use libc::{c_char, c_int};
11 use num_derive::FromPrimitive;
7 use std::ffi::{CStr, CString}; 12 use std::ffi::{CStr, CString};
8 use std::ptr; 13 use std::ptr;
9 use num_derive::FromPrimitive;
10 use crate::constants::{ErrorCode, InvalidEnum};
11 use crate::constants::MessageStyle;
12 use crate::constants::Result;
13 use crate::items::Item;
14 14
15 /// Styles of message that are shown to the user. 15 /// Styles of message that are shown to the user.
16 #[derive(Debug, PartialEq, FromPrimitive)] 16 #[derive(Debug, PartialEq, FromPrimitive)]
17 #[non_exhaustive] // non-exhaustive because C might give us back anything! 17 #[non_exhaustive] // non-exhaustive because C might give us back anything!
18 pub enum MessageStyle { 18 pub enum MessageStyle {
41 impl From<MessageStyle> for c_int { 41 impl From<MessageStyle> for c_int {
42 fn from(val: MessageStyle) -> Self { 42 fn from(val: MessageStyle) -> Self {
43 val as Self 43 val as Self
44 } 44 }
45 } 45 }
46
47 46
48 #[repr(C)] 47 #[repr(C)]
49 struct Message { 48 struct Message {
50 msg_style: MessageStyle, 49 msg_style: MessageStyle,
51 msg: *const c_char, 50 msg: *const c_char,