FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::net::Url Struct Reference

#include <fastmm/net/url.hpp>

Public Member Functions

std::size_t request_target (std::span< char > buf) const noexcept
 Path + "?" + query as sent in the request line; buf must hold both.
 

Static Public Member Functions

static std::optional< Url > parse (std::string_view s) noexcept
 Accepts scheme://host[:port][/path][?query].
 

Public Attributes

std::string_view scheme
 "wss", "https", ...
 
std::string_view host
 without brackets for IPv6 literals
 
std::uint16_t port = 0
 explicit or scheme default (80/443)
 
std::string_view path
 always at least "/"
 
std::string_view query
 without '?'
 
bool tls = false
 scheme is wss/https
 

Member Function Documentation

◆ request_target()

std::size_t fastmm::net::Url::request_target ( std::span< char >  buf) const
inlinenoexcept

Path + "?" + query as sent in the request line; buf must hold both.

◆ parse()

static std::optional< Url > fastmm::net::Url::parse ( std::string_view  s)
inlinestaticnoexcept

Accepts scheme://host[:port][/path][?query].

Fragment is not supported (venue URLs never carry one). Returns nullopt for a missing scheme/host or a bad port.

< IPv6 literal

Member Data Documentation

◆ scheme

std::string_view fastmm::net::Url::scheme

"wss", "https", ...

◆ host

std::string_view fastmm::net::Url::host

without brackets for IPv6 literals

◆ port

std::uint16_t fastmm::net::Url::port = 0

explicit or scheme default (80/443)

◆ path

std::string_view fastmm::net::Url::path

always at least "/"

◆ query

std::string_view fastmm::net::Url::query

without '?'

◆ tls

bool fastmm::net::Url::tls = false

scheme is wss/https