A11 (C++ runtime)
Native C++ implementation of the A11 streaming action runtime
Loading...
Searching...
No Matches
percent.h File Reference

Percent-encoding, as inline functions over a string_view. More...

#include <cstddef>
#include <string>
#include <string_view>
#include <absl/status/status.h>
#include <absl/status/statusor.h>
#include <absl/strings/ascii.h>
#include <absl/strings/str_cat.h>
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  a11
 
namespace  a11::percent
 

Functions

int a11::percent::HexDigit (char one)
 The value 0-15 of a hex digit, either case, or -1 if one is not one.
 
std::string a11::percent::Decode (std::string_view value, bool plus_is_space=false)
 Percent-decodes value, leaving anything malformed as it stands.
 
absl::StatusOr< std::string > a11::percent::DecodeStrict (std::string_view value, std::string_view what)
 Percent-decodes value, or says why it cannot be decoded.
 
std::string a11::percent::Encode (std::string_view value)
 Percent-encodes everything outside RFC 3986's unreserved set.
 

Detailed Description

Percent-encoding, as inline functions over a string_view.

Header-only so that the three unrelated libraries needing it – a Redis URL, a W3C baggage header, an action-discovery query string – share one implementation without any of them taking a link dependency on the others.