[][src]Function ellidri::modes::channel_query

pub fn channel_query<'a, I>(
    modes: &'a str,
    params: I
) -> impl Iterator<Item = Result<ChannelModeChange<'a>>> where
    I: IntoIterator<Item = &'a str> + 'a, 

An iterator over the changes of a MODE query.

Example

let mut query = modes::channel_query("-olX+kmv", vec!["admin", "secret_key"]);

assert_eq!(query.next(), Some(Ok(ChannelModeChange::ChangeOperator(false, "admin"))));
assert_eq!(query.next(), Some(Ok(ChannelModeChange::UserLimit(None))));
assert_eq!(query.next(), Some(Err(Error::UnknownMode('X'))));
assert_eq!(query.next(), Some(Ok(ChannelModeChange::Key(true, "secret_key"))));
assert_eq!(query.next(), Some(Ok(ChannelModeChange::Moderated(true))));
assert_eq!(query.next(), Some(Err(Error::MissingModeParam)));
assert_eq!(query.next(), None);