skip-linked-list 0.1.1

a skiplist-backed linked list that support fast random writes, written in Rust.
Documentation
use std::io::{self, Write};

mod list;
use crate::list::SkipLinkedList;

fn help() {
    println!("Unknown command, type h for help");
}

fn main() {
    let mut list = SkipLinkedList::new();
    loop {
        print!("> ");
        io::stdout().flush().unwrap();
        let mut line = String::new();
        io::stdin().read_line(&mut line).unwrap();
        match line.as_bytes()[0] {
            b'i' => {
                let mut parts = line[1..].split_whitespace().map(|s| s.parse::<i32>());
                match (parts.next(), parts.next()) {
                    (Some(Ok(i)), Some(Ok(elem))) => list.insert(i as usize, elem),
                    _ => help(),
                }
            },
            b'f' => match line[1..].trim().parse::<i32>() {
                Ok(elem) => list.push_front(elem),
                _ => help(),
            },
            b'b' => match line[1..].trim().parse::<i32>() {
                Ok(elem) => list.push_back(elem),
                _ => help(),
            },
            b'g' => match line[1..].trim().parse::<usize>() {
                Ok(i) => match list.get(i) {
                    Some(elem) => println!("{}", elem),
                    None => println!("fail to get"),
                },
                _ => help(),
            },
            b'r' => match line[1..].trim().parse::<usize>() {
                Ok(i) => {list.remove(i);}
                _ => help(),
            },
            b'l' => println!("{}", list.len()),
            b'p' => list.visualize(),
            b'c' => list = SkipLinkedList::new(),
            b'x' => break,
            b'h' => {
                println!("insert: i idx elem");
                println!("push front: f elem");
                println!("push back: b elem");
                println!("print: p");
                println!("len: l");
                println!("c: clear");
                println!("exit: x");
            },
            _ => println!("Unknown command, type h for help"),
        }
    }
}