Update Vary HeadersΒΆ

Append to a header string:

auto header = polycpp::vary::append("Accept", "Origin");
// header == "Accept, Origin"

Pass a comma-separated field string when that is what the caller already has:

auto header = polycpp::vary::append("", "  Accept     ,     Origin    ");
// header == "Accept, Origin"

Use a field vector when fields are already structured:

auto header = polycpp::vary::append(
    "Accept, Accept-Encoding",
    polycpp::vary::FieldList{"origin", "accept", "accept-charset"});

// header == "Accept, Accept-Encoding, origin, accept-charset"

Mutate polycpp::http::Headers when adapting upstream vary(res, field) code:

polycpp::http::Headers headers{{"Vary", "Accept"}};
polycpp::vary::vary(headers, "Origin");
// headers.get("Vary").value() == "Accept, Origin"

The adapter updates an existing Vary key case-insensitively and writes a new Vary key when none exists. A response-like overload is also available for polycpp::http::ServerResponse-style handles exposing getHeader, getHeaderNames, and setHeader.