1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#![feature(plugin, custom_derive, slice_patterns)]
#![plugin(regex_macros)]
#![cfg_attr(feature = "lints", plugin(clippy))]
#![deny(warnings)]
#![allow(unused_imports)]
extern crate regex;
#[macro_use]
extern crate log;
#[cfg(feature = "ssl")]
extern crate openssl;
pub mod client;
pub mod color;
pub mod ident;
pub mod callback;
pub mod message;
pub mod command;
pub mod reply;
pub mod event;
use std::io;
use std::result;
use std::ops::{ Deref, DerefMut };
#[cfg(feature = "ssl")]
use openssl::ssl::error::SslError;
pub use ident::Ident;
pub use message::{ Message, MsgType };
pub use command::Command;
pub use reply::Reply;
pub use event::Event;
pub use client::Client;
#[derive(Debug)]
pub enum IrscError {
Io(io::Error),
AlreadyConnected,
NotConnected,
NotFound,
#[cfg(feature = "ssl")]
Ssl(SslError)
}
#[cfg(feature = "ssl")]
impl From<SslError> for IrscError {
fn from(e: SslError) -> IrscError { IrscError::Ssl(e) }
}
pub struct Result<T>(result::Result<T, IrscError>);
impl<T> Deref for Result<T> {
type Target = result::Result<T, IrscError>;
fn deref(&self) -> &result::Result<T, IrscError> { &self.0 }
}
impl<T> DerefMut for Result<T> {
fn deref_mut(&mut self) -> &mut result::Result<T, IrscError> { &mut self.0 }
}
impl<T> Result<T> { fn inner(self) -> result::Result<T, IrscError> { self.0 } }
pub const DEBUG: bool = cfg!(debug_assertions);
|