enum

#[derive(Debug)]
pub enum E {
    a(A),
    b(B),
    c(C),
}

假设E的每个Item都实现了

fn decode(buffer: Vec<u8>) -> Self;
fn id() -> u32;

那么如何优雅的实现

fn decode(id:u32,buffer:Vec<u8>) -> E