Skip to content

Commit 9b755d8

Browse files
committed
Use AgentError instead of associated Error type
Signed-off-by: Wiktor Kwapisiewicz <[email protected]>
1 parent d7c0e24 commit 9b755d8

File tree

3 files changed

+7
-12
lines changed

3 files changed

+7
-12
lines changed

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@ use async_trait::async_trait;
1515
use tokio::net::UnixListener;
1616
1717
use ssh_agent_lib::agent::Agent;
18+
use ssh_agent_lib::error::AgentError;
1819
use ssh_agent_lib::proto::message::{Message, SignRequest};
1920
2021
struct MyAgent;
2122
2223
#[async_trait]
2324
impl Agent for MyAgent {
24-
type Error = ();
25-
26-
async fn handle(&self, message: Message) -> Result<Message, ()> {
25+
async fn handle(&self, message: Message) -> Result<Message, AgentError> {
2726
match message {
2827
Message::SignRequest(request) => {
2928
// get the signature by signing `request.data`

examples/key_storage.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use log::info;
33
use tokio::net::UnixListener;
44

55
use ssh_agent_lib::agent::Agent;
6+
use ssh_agent_lib::error::AgentError;
67
use ssh_agent_lib::proto::message::{self, Message, SignRequest};
78
use ssh_agent_lib::proto::private_key::{PrivateKey, RsaPrivateKey};
89
use ssh_agent_lib::proto::public_key::PublicKey;
@@ -147,9 +148,7 @@ impl KeyStorage {
147148

148149
#[async_trait]
149150
impl Agent for KeyStorage {
150-
type Error = ();
151-
152-
async fn handle(&self, message: Message) -> Result<Message, ()> {
151+
async fn handle(&self, message: Message) -> Result<Message, AgentError> {
153152
self.handle_message(message).or_else(|error| {
154153
println!("Error handling message - {:?}", error);
155154
Ok(Message::Failure)

src/agent.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use tokio::io::{AsyncRead, AsyncWrite};
77
use tokio::net::{TcpListener, TcpStream, UnixListener, UnixStream};
88
use tokio_util::codec::{Decoder, Encoder, Framed};
99

10-
use std::error::Error;
1110
use std::fmt;
1211
use std::io;
1312
use std::marker::Unpin;
@@ -111,11 +110,9 @@ impl ListeningSocket for TcpListener {
111110

112111
#[async_trait]
113112
pub trait Agent: 'static + Sync + Send + Sized {
114-
type Error: fmt::Debug + Send + Sync;
113+
async fn handle(&self, message: Message) -> Result<Message, AgentError>;
115114

116-
async fn handle(&self, message: Message) -> Result<Message, Self::Error>;
117-
118-
async fn listen<S>(self, socket: S) -> Result<(), Box<dyn Error + Send + Sync>>
115+
async fn listen<S>(self, socket: S) -> Result<(), AgentError>
119116
where
120117
S: ListeningSocket + fmt::Debug + Send,
121118
{
@@ -136,7 +133,7 @@ pub trait Agent: 'static + Sync + Send + Sized {
136133
}
137134
Err(e) => {
138135
error!("Failed to accept socket; error = {:?}", e);
139-
return Err(Box::new(e));
136+
return Err(AgentError::IO(e));
140137
}
141138
}
142139
}

0 commit comments

Comments
 (0)