1 2 3 4 5 6 7 8 9 10 11 12 13
use std::marker::Sized; use caveat::Caveat; use error::Result; pub trait Token { fn new(key: &[u8], identifier: Vec<u8>, location: Option<Vec<u8>>) -> Self; fn deserialize(macaroon: Vec<u8>) -> Result<Self> where Self: Sized; fn serialize(&self) -> Result<Vec<u8>>; fn add_caveat(&self, caveat: &Caveat) -> Self; fn verify(&self, key: &[u8]) -> Result<()>; }