thingy/src/simple.rs

39 lines
857 B
Rust

use command::{IrcCommand, IrcCommandLine, Numeric, Stringy};
use std::io;
use std::io::prelude::*;
use std::ops::Range;
pub struct SimpleIrcCommand {
command: Vec<u8>,
arguments: (Vec<Range<usize>>, Vec<u8>),
source: Vec<u8>,
}
impl IrcCommandLine for SimpleIrcCommand {
fn get_command<'a>(&'a self) -> IrcCommand<'a> {
IrcCommand::new(&self.command)
}
fn get_argument<'a>(&'a self, arg: usize) -> &'a [u8] {
&self.arguments.1[self.arguments.0[arg].clone()] // awful API there, rust.
}
fn get_argument_count(&self) -> usize {
self.arguments.0.len()
}
fn get_source<'a>(&'a self) -> &'a [u8] {
&self.source
}
}
pub struct NoIrcConnection;
impl NoIrcConnection {
pub fn read_command<R: Read>(reader: R) -> io::Result<SimpleIrcCommand> {
unimplemented!()
}
}