fn pack_pool_state<W: Write>(
    pool_state: &PoolState,
    codec: &mut Codec<W>
) -> Result<(), WriteError>