use crate::error::*;
use serde::Serialize;
use serde::Deserialize;
pub enum ObjectType {
Atom,
Map,
Array,
}
pub trait Object<'doc>: Serialize + Deserialize<'doc> + Clone {
fn get_type(&self) -> ObjectType;
fn has_key(&self, key: &str) -> bool;
fn has_index(&self, idx: usize) -> bool;
fn at_index<'a>(&'a self, idx: usize) -> Result