1 个不稳定版本
0.1.0 | 2021年1月16日 |
---|
#21 in #irc-client
16KB
364 代码行
rustirc
使用Rust编写的完全异步的IRC客户端
一个完全工作的回声机器人示例
use rustirc::{
client::{Client, ClientState},
event_handler::EventHandler,
message_parser,
};
struct Handler;
#[async_trait::async_trait]
impl EventHandler for Handler {
async fn on_message_sent(&self, client: &mut Client, message: message_parser::Message) {
println!(
"Message content => {} | sent by: {}",
message.parameters[1],
message.source.unwrap()
);
// That means we're in a channel and we can send a message
match client.state {
ClientState::InChannel(_) => {
client
.send_message(message.parameters[1])
.await;
}
_ => {}
}
}
// Fires an unimplemented raw event
async fn on_unimplemented(&self, client: &mut Client, message: message_parser::Message) {
// Do as you you'd like
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut c = Client::new("localhost", 6667)
.handler(Handler)
.connect()
.await?;
c.start().await?;
Ok(())
}
依赖项
~3.5–5.5MB
~91K SLoC