Skip to content

Commit f8feb83

Browse files
committed
feat: impl AsFd for PtyMaster
Fixes #2354
1 parent 0517893 commit f8feb83

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ This project adheres to [Semantic Versioning](https://semver.org/).
33

44
# Change Log
55

6+
## [Unreleased] - ReleaseDate
7+
8+
### Added
9+
10+
- Added `impl AsFd for pty::PtyMaster`
11+
612
## [0.28.0] - 2024-02-24
713

814

src/pty.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ impl AsRawFd for PtyMaster {
5858
}
5959
}
6060

61+
impl AsFd for PtyMaster {
62+
fn as_fd(&self) -> BorrowedFd<'_> {
63+
self.0.as_fd()
64+
}
65+
}
66+
6167
impl IntoRawFd for PtyMaster {
6268
fn into_raw_fd(self) -> RawFd {
6369
let fd = self.0;

test/test_pty.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ use nix::unistd::{pause, write};
1717
fn test_ptsname_equivalence() {
1818
let _m = crate::PTSNAME_MTX.lock();
1919

20-
// Open a new PTTY master
20+
// Open a new PTY master
2121
let master_fd = posix_openpt(OFlag::O_RDWR).unwrap();
2222
assert!(master_fd.as_raw_fd() > 0);
23+
assert!(master_fd.as_fd().as_raw_fd() == master_fd.as_raw_fd());
2324

2425
// Get the name of the slave
2526
let slave_name = unsafe { ptsname(&master_fd) }.unwrap();

0 commit comments

Comments
 (0)