power outage stash
This commit is contained in:
parent
2ecd987be6
commit
a9b63f4d58
10 changed files with 332 additions and 62 deletions
|
|
@ -3,6 +3,7 @@ use std::{os::fd::RawFd, sync::OnceLock};
|
|||
use circular_buffer::CircularBuffer;
|
||||
use iddqd::{BiHashItem, IdOrdItem};
|
||||
use mio::Token;
|
||||
use rustix::process::Pid;
|
||||
|
||||
use crate::prelude::*;
|
||||
|
||||
|
|
@ -76,11 +77,11 @@ impl FdInfo {
|
|||
impl IdOrdItem for FdInfo {
|
||||
type Key<'a> = &'a RawFd;
|
||||
|
||||
iddqd::id_upcast!();
|
||||
|
||||
fn key(&self) -> &RawFd {
|
||||
&self.fd
|
||||
}
|
||||
|
||||
iddqd::id_upcast!();
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -105,13 +106,16 @@ impl<'a> Display for FdInfoDisplay<'a> {
|
|||
}
|
||||
|
||||
#[derive(Copy)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Hash, Default)]
|
||||
#[non_exhaustive]
|
||||
pub enum FdKind {
|
||||
File,
|
||||
Socket,
|
||||
SockStream,
|
||||
Poller,
|
||||
ChildStdout,
|
||||
ChildStderr,
|
||||
Pid(Pid),
|
||||
#[default]
|
||||
Unknown,
|
||||
}
|
||||
|
|
@ -124,6 +128,9 @@ impl FdKind {
|
|||
Socket => "socket",
|
||||
SockStream => "socket stream",
|
||||
Poller => "poller",
|
||||
ChildStdout => "child stdout",
|
||||
ChildStderr => "child stderr",
|
||||
Pid(_) => "pidfd",
|
||||
Unknown => "«unknown»",
|
||||
}
|
||||
}
|
||||
|
|
@ -140,6 +147,8 @@ impl BiHashItem for TokenFd {
|
|||
type K1<'a> = Token;
|
||||
type K2<'a> = RawFd;
|
||||
|
||||
iddqd::bi_upcast!();
|
||||
|
||||
fn key1(&self) -> Token {
|
||||
self.token
|
||||
}
|
||||
|
|
@ -147,8 +156,6 @@ impl BiHashItem for TokenFd {
|
|||
fn key2(&self) -> RawFd {
|
||||
self.fd
|
||||
}
|
||||
|
||||
iddqd::bi_upcast!();
|
||||
}
|
||||
|
||||
impl From<TokenFd> for (Token, RawFd) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue