pub struct HeaderGenerator { /* private fields */ }Expand description
Generates browser HTTP headers, as browserforge’s HeaderGenerator.
Implementations§
Source§impl HeaderGenerator
impl HeaderGenerator
Sourcepub fn new(options: HeaderOptions) -> Result<Self>
pub fn new(options: HeaderOptions) -> Result<Self>
Builds a generator for options.
§Errors
Error::InvalidOptions for a browser whose minimum version exceeds
its maximum or for more than MAX_LOCALES locales;
Error::Data when the embedded browser list or header order is
malformed (never for the shipped data).
Sourcepub fn options(&self) -> &HeaderOptions
pub fn options(&self) -> &HeaderOptions
The options the generator was built with.
Sourcepub fn generate(
&self,
rng: &mut Rng,
overrides: &HeaderOverrides,
) -> Result<Headers>
pub fn generate( &self, rng: &mut Rng, overrides: &HeaderOverrides, ) -> Result<Headers>
Generates one set of headers. The same rng state, options and
overrides always give the same headers.
When no input sample fits, HTTP/1 falls back to HTTP/2; then, unless the options are strict, the first non-default option among locales, devices, operating systems and browsers is reset and the draw retried.
Defect (3): browserforge’s fallback passed http_version twice and
raised TypeError whenever generate had been given one; here it
only switches every browser to HTTP/2.
§Errors
Error::NoHeaders when nothing fits and nothing is left to relax
(or the options are strict); Error::MissingUserAgent or
Error::UnknownBrowser when the drawn headers cannot be ordered;
the network errors of input_network and header_network.