Remove QuicInlinedVector from platform.

Internally, it was defined as absl::InlinedVector and a custom printer was added
(which this CL removes).

In Envoy, it was defined as absl::InlinedVector and a custom printer was added:
https://github.com/envoyproxy/envoy/blob/40a656d36244652b7afd97c7d8492f643c94283d/source/common/quic/platform/quic_containers_impl.h#L51-L65

In Chromium, it was defined as std::vector, and I don't see the printer (maybe
there's one in STL?).

This CL removes QuicInlinedVector, inlines absl::InlinedVector, and adds
quiche::PrintElements() to QUICHE, so that embedders do not have to provide
their custom printers.  PrintElements() is based on the Envoy custom printer
implementation.  However, I'm adding a helper function with std::string return
value instead of an operator<<() override because
  1. an operator<<() override would need to live in either std or absl
     namespace, and it is not nice to add stuff to library namespaces;
  2. if Abseil ever adds an official operator<<() override, that would cause a
     clash immediately, and it would be some amount of work to resolve it while
     the override get upstreamed to public Abseil (internal code uses internal,
     source-of-truth Abseil, other QUICHE embedders use public Abseil, so QUICHE
     needs to work with both at the same time until new operator<<() gets merged
     to public Abseil and that public Abseil gets rolled into QUICHE embedders).
PiperOrigin-RevId: 383833970
13 files changed
tree: c6c49222e1748e27a16d5732673c7f17514a6ebf
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects. QUICHE is only supported on little-endian platforms.

Code can be viewed in CodeSearch in Quiche and is imported into Chromium.