pub trait Object {
// Required methods
fn key(&self) -> &Key;
fn usage(&self) -> &Usage;
fn usage_mut(&mut self) -> &mut Usage;
fn flags(&self) -> &HandleFlags;
// Provided methods
fn restrict_usage(&mut self, restriction: Usage) { ... }
fn get_info(&self, data_size: usize, data_position: usize) -> ObjectInfo { ... }
}