brittle 0.1.1

Simple TOML parser in Rust
Documentation
use crate::parser::Value;

#[derive(PartialEq, Clone, Debug)]
pub struct Table {
    keys: Vec<Value>,
    values: Vec<Value>,
}

impl Table {
    pub fn new() -> Self {
        Self {
            keys: Vec::new(),
            values: Vec::new(),
        }
    }

    pub fn register(&mut self, key: Value, value: Value) {
        self.keys.push(key);
        self.values.push(value);
    }

    pub fn index(&self, key: Value) -> Option<usize> {
        if !self.keys.contains(&key) {
            None
        } else {
            Some(self.keys.iter().position(|k| *k == key).unwrap())
        }
    }

    pub fn update(&mut self, key: Value, value: Value) {
        if self.keys.contains(&key) {
            self.register(key, value);
        } else {
            let index = self.index(key).unwrap();
            self.values[index] = value;
        }
    }
}