1
0
Fork 0
forked from wry/wry

workspace: move crates under crates

This commit is contained in:
kossLAN 2026-05-29 18:55:59 -04:00
parent 0016bc8cf0
commit 6393fdf3c0
No known key found for this signature in database
354 changed files with 102 additions and 102 deletions

32
crates/utils/src/pipe.rs Normal file
View file

@ -0,0 +1,32 @@
use {
crate::oserror::{OsError, OsErrorExt},
uapi::{OwnedFd, c, pipe2},
};
pub struct Pipe<L, R> {
pub read: L,
pub write: R,
}
pub fn pipe() -> Result<Pipe<OwnedFd, OwnedFd>, OsError> {
let (read, write) = pipe2(c::O_CLOEXEC).to_os_error()?;
Ok(Pipe { read, write })
}
impl<L, R> Pipe<L, R> {
#[allow(dead_code)]
pub fn map_read<Lprime>(self, map: impl FnOnce(L) -> Lprime) -> Pipe<Lprime, R> {
Pipe {
read: map(self.read),
write: self.write,
}
}
#[allow(dead_code)]
pub fn map_write<Rprime>(self, map: impl FnOnce(R) -> Rprime) -> Pipe<L, Rprime> {
Pipe {
read: self.read,
write: map(self.write),
}
}
}