pub fn write<T, W: Write>(writer: &mut W, value: T)where T: From<u8> + BitAnd + BitOrAssign + Shl + VarInt,