pub(crate) fn write_product_info<W: Write>(
    w: &mut W,
    product_info: ProductInfo
) -> Result<(), Error>