comparison src/logging.rs @ 118:39760dfc9b3b

Detect PAM library based only on system lib; rename minimal lib to XSso. Also formats and assorted other cleanup.
author Paul Fisher <paul@pfish.zone>
date Sun, 29 Jun 2025 20:13:03 -0400
parents a12706e42c9d
children 98a624cacd82
comparison
equal deleted inserted replaced
117:20f7712a6857 118:39760dfc9b3b
45 Warning = levels::WARN, 45 Warning = levels::WARN,
46 Info = levels::INFO, 46 Info = levels::INFO,
47 Debug = levels::DEBUG, 47 Debug = levels::DEBUG,
48 } 48 }
49 49
50 /// The location of a log entry. 50 /// The location of a log entry. Use [`location!`](crate::location!) to create this.
51 #[derive(Clone, Copy, Debug, Default)] 51 #[derive(Clone, Copy, Debug, Default)]
52 #[non_exhaustive]
52 pub struct Location<'a> { 53 pub struct Location<'a> {
53 pub file: &'a str, 54 pub file: &'a str,
54 pub line: u32, 55 pub line: u32,
55 pub function: &'a str, 56 pub function: &'a str,
56 _more: (),
57 } 57 }
58 58
59 impl<'a> Location<'a> { 59 impl<'a> Location<'a> {
60 /// Creates a new location. Just use [`location!`](crate::location!) instead.
60 pub fn new(file: &'a str, line: u32, function: &'a str) -> Self { 61 pub fn new(file: &'a str, line: u32, function: &'a str) -> Self {
61 Self {file, line, function, _more: ()} 62 Self {
63 file,
64 line,
65 function,
66 }
62 } 67 }
63 } 68 }
64 69
65 /// The [`Location`] where this macro is inserted. 70 /// The [`Location`] where this macro is inserted.
66 #[doc(hidden)] 71 #[doc(hidden)]
67 #[macro_export] 72 #[macro_export]
68 macro_rules! location { 73 macro_rules! location {
69 () => { $crate::logging::Location::new(file!(), line!(), $crate::__function!()) } 74 () => {
75 $crate::logging::Location::new(file!(), line!(), $crate::__function!())
76 };
70 } 77 }
71 78
72 /// Here's the guts of the logger thingy. You shouldn't be using this! 79 /// Here's the guts of the logger thingy. You shouldn't be using this!
73 #[doc(hidden)] 80 #[doc(hidden)]
74 #[macro_export] 81 #[macro_export]
88 fn p() {} 95 fn p() {}
89 fn f<T>(_: T) -> &'static str { 96 fn f<T>(_: T) -> &'static str {
90 ::std::any::type_name::<T>() 97 ::std::any::type_name::<T>()
91 } 98 }
92 f(p).trim_end_matches("::p") 99 f(p).trim_end_matches("::p")
93 }} 100 }};
94 } 101 }
95 102
96 /// Logs a message at error level via the given PAM handle. 103 /// Logs a message at error level via the given PAM handle.
97 /// 104 ///
98 /// This supports `format!`-style formatting. 105 /// This supports `format!`-style formatting.