pub trait VarIntWrite {
// Required methods
fn write_var_u32(&mut self, value: u32) -> Result<usize>;
fn write_var_u64(&mut self, value: u64) -> Result<usize>;
// Provided methods
fn write_var_i32(&mut self, value: i32) -> Result<usize> { ... }
fn write_var_i64(&mut self, value: i64) -> Result<usize> { ... }
}