Function vibha::mode_split_str [] [src]

pub fn mode_split_str(line: &str) -> Vec<ModalSlice>

Breaks up a &str in the special way demanded by the GameProcessLineFn docs.

extern crate vibha;
use vibha::*;

// plain string
assert_eq!(mode_split_str(""), vec![]);
assert_eq!(mode_split_str("foo"), vec![ModalSlice::Text("foo")]);

// header then text
assert_eq!(mode_split_str("\x01header\x02foo"),
  vec![ModalSlice::Header("header"),
       ModalSlice::Text("foo")]);

// empty slices are pruned for you
assert_eq!(mode_split_str("\x01\x02foo"), vec![ModalSlice::Text("foo")]);

// you can "switch" to the same mode you're already "in"
assert_eq!(mode_split_str("\x01A\x01B\x02foo"),
  vec![ModalSlice::Header("A"),
       ModalSlice::Header("B"),
       ModalSlice::Text("foo")]);