From e743ece128ee8b78a094d3dd68243759ca4c0758 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 17 Jul 2020 00:02:10 -0400 Subject: pass by reference --- examples/basic.rs | 2 +- src/command.rs | 8 ++++++-- src/pty.rs | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/basic.rs b/examples/basic.rs index 2f71bb4..15cc137 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -10,7 +10,7 @@ fn main() { "-E", "my @size = GetTerminalSize; say for @size", ]) - .spawn_pty(Some(pty_process::Size::new(24, 80))) + .spawn_pty(Some(&pty_process::Size::new(24, 80))) .unwrap(); let mut buf = [0_u8; 4096]; let pty = child.pty().as_raw_fd(); diff --git a/src/command.rs b/src/command.rs index f5357d2..10de48e 100644 --- a/src/command.rs +++ b/src/command.rs @@ -4,11 +4,15 @@ use std::os::unix::io::{AsRawFd as _, FromRawFd as _}; use std::os::unix::process::CommandExt as _; pub trait Command { - fn spawn_pty(&mut self, size: Option) -> Result; + fn spawn_pty(&mut self, size: Option<&crate::pty::Size>) + -> Result; } impl Command for std::process::Command { - fn spawn_pty(&mut self, size: Option) -> Result { + fn spawn_pty( + &mut self, + size: Option<&crate::pty::Size>, + ) -> Result { let pty = crate::pty::Pty::new()?; let pts = pty.pts(size)?; diff --git a/src/pty.rs b/src/pty.rs index 39ffd70..383e81d 100644 --- a/src/pty.rs +++ b/src/pty.rs @@ -34,8 +34,8 @@ impl Size { } } -impl From for nix::pty::Winsize { - fn from(size: Size) -> Self { +impl From<&Size> for nix::pty::Winsize { + fn from(size: &Size) -> Self { Self { ws_row: size.row, ws_col: size.col, @@ -78,7 +78,7 @@ impl Pty { &self.pt } - pub fn pts(&self, size: Option) -> Result { + pub fn pts(&self, size: Option<&Size>) -> Result { let fh = std::fs::OpenOptions::new() .read(true) .write(true) -- cgit v1.2.3