2016-09-11 10:19:35 +00:00
|
|
|
use types::PsycString;
|
2016-09-07 17:25:44 +00:00
|
|
|
|
2016-09-10 11:11:50 +00:00
|
|
|
#[derive(Debug, PartialEq)]
|
|
|
|
pub enum PsycEntity<'a> {
|
|
|
|
Root,
|
|
|
|
Person {
|
|
|
|
name: &'a str,
|
|
|
|
channel: &'a str
|
|
|
|
},
|
|
|
|
Place {
|
|
|
|
name: &'a str,
|
|
|
|
channel: &'a str
|
|
|
|
},
|
|
|
|
Service {
|
|
|
|
name: &'a str,
|
|
|
|
channel: &'a str
|
|
|
|
},
|
|
|
|
Unknown {
|
|
|
|
object: &'a str,
|
|
|
|
channel: &'a str
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-09-07 17:25:44 +00:00
|
|
|
#[derive(Clone, Copy)]
|
2016-09-10 11:11:50 +00:00
|
|
|
#[derive(Debug, PartialEq)]
|
2016-09-07 17:25:44 +00:00
|
|
|
#[repr(C)]
|
|
|
|
pub enum PsycScheme {
|
|
|
|
PSYC_SCHEME_PSYC = 0,
|
|
|
|
PSYC_SCHEME_IRC = 1,
|
|
|
|
PSYC_SCHEME_XMPP = 2,
|
|
|
|
PSYC_SCHEME_SIP = 3
|
|
|
|
}
|
|
|
|
|
|
|
|
#[repr(C)]
|
|
|
|
pub enum PsycEntityType {
|
|
|
|
PSYC_ENTITY_ROOT = 0,
|
|
|
|
PSYC_ENTITY_PERSON = '~' as _,
|
|
|
|
PSYC_ENTITY_PLACE = '@' as _,
|
|
|
|
PSYC_ENTITY_SERVICE = '$' as _
|
|
|
|
}
|
|
|
|
|
2016-09-10 11:11:50 +00:00
|
|
|
#[derive(Debug, PartialEq)]
|
2016-09-07 17:25:44 +00:00
|
|
|
#[repr(C)]
|
|
|
|
pub enum PsycTransport {
|
|
|
|
PSYC_TRANSPORT_TCP = 'c' as _,
|
|
|
|
PSYC_TRANSPORT_UDP = 'd' as _,
|
|
|
|
PSYC_TRANSPORT_TLS = 's' as _,
|
|
|
|
PSYC_TRANSPORT_GNUNET = 'g' as _,
|
|
|
|
}
|
|
|
|
|
2016-09-10 11:11:50 +00:00
|
|
|
#[derive(Debug, PartialEq)]
|
2016-09-07 17:25:44 +00:00
|
|
|
#[repr(C)]
|
|
|
|
pub enum UniformParseError {
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_SLASHES = -7,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_CHANNEL = -6,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_RESOURCE = -5,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_TRANSPORT = -4,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_PORT = -3,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_HOST = -2,
|
|
|
|
PSYC_PARSE_UNIFORM_INVALID_SCHEME = -1,
|
|
|
|
}
|
|
|
|
|
2016-09-10 11:11:50 +00:00
|
|
|
#[derive(Debug)]
|
2016-09-07 17:25:44 +00:00
|
|
|
#[repr(C)]
|
|
|
|
pub struct PsycUniform {
|
|
|
|
pub valid: bool,
|
|
|
|
pub uniform_type: PsycScheme,
|
|
|
|
pub scheme: PsycString,
|
|
|
|
pub user: PsycString,
|
|
|
|
pub pass: PsycString,
|
|
|
|
pub host: PsycString,
|
|
|
|
pub port: PsycString,
|
|
|
|
pub transport: PsycString,
|
|
|
|
pub resource: PsycString,
|
|
|
|
pub query: PsycString,
|
|
|
|
pub channel: PsycString,
|
|
|
|
|
|
|
|
pub full: PsycString,
|
|
|
|
pub body: PsycString,
|
|
|
|
pub user_host: PsycString,
|
|
|
|
pub host_port: PsycString,
|
|
|
|
pub root: PsycString,
|
|
|
|
pub entity: PsycString,
|
|
|
|
pub slashes: PsycString,
|
|
|
|
pub slash: PsycString,
|
|
|
|
pub path: PsycString,
|
|
|
|
pub nick: PsycString
|
|
|
|
}
|