use core;
use core::errors::Result;
use sir::Sir;
use std::fmt;
pub trait Format: fmt::Debug {
fn decode(&self, object: &core::Source) -> Result<Sir>;
}
pub trait Object {
type Value;
fn get(&self, key: &str) -> Option<&Self::Value>;
}
pub trait Value {
fn as_object(&self) -> Option<&Object<Value = Self>>;
fn as_str(&self) -> Option<&str>;
}