libpsyc/rust/src/uniform_types.rs

65 lines
1.5 KiB
Rust

use types::*;
#[derive(Clone, Copy)]
#[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 _
}
#[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 _,
}
#[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,
}
#[derive(Clone)]
#[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
}