blob: 099a129321c1b98a048abc02544653bfe0e148ff (
plain)
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
|
use regex::Regex;
use std::borrow::ToOwned;
static PATTERN: Regex = regex!(":(.*)!(.*)@(.*)");
#[derive(Show, Clone)]
pub struct Ident {
pub nickname: String,
pub user: String,
pub host: String
}
impl Ident {
pub fn parse(s: &str) -> Option<Ident> {
let c = match PATTERN.captures(s) {
Some(c) => c,
None => return None
};
Some(Ident {
nickname: c.at(1).unwrap().to_owned(),
user: c.at(2).unwrap().to_owned(),
host: c.at(3).unwrap().to_owned()
})
}
}
|