181 lines
85 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Represents the sets of limits an adapter/device supports."><title>Limits in maplibre::render::settings - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../static.files/rustdoc-cb6f1f67f1bcd037.css" id="mainThemeStyle"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="maplibre" data-themes="" data-resource-suffix="" data-rustdoc-version="1.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../static.files/noscript-cffde32267a19fd6.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="logo-container" href="../../../maplibre/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../maplibre/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2 class="location"><a href="#">Limits</a></h2><div class="sidebar-elems"><section><h3><a href="#fields">Fields</a></h3><ul class="block"><li><a href="#structfield.max_bind_groups">max_bind_groups</a></li><li><a href="#structfield.max_bindings_per_bind_group">max_bindings_per_bind_group</a></li><li><a href="#structfield.max_buffer_size">max_buffer_size</a></li><li><a href="#structfield.max_compute_invocations_per_workgroup">max_compute_invocations_per_workgroup</a></li><li><a href="#structfield.max_compute_workgroup_size_x">max_compute_workgroup_size_x</a></li><li><a href="#structfield.max_compute_workgroup_size_y">max_compute_workgroup_size_y</a></li><li><a href="#structfield.max_compute_workgroup_size_z">max_compute_workgroup_size_z</a></li><li><a href="#structfield.max_compute_workgroup_storage_size">max_compute_workgroup_storage_size</a></li><li><a href="#structfield.max_compute_workgroups_per_dimension">max_compute_workgroups_per_dimension</a></li><li><a href="#structfield.max_dynamic_storage_buffers_per_pipeline_layout">max_dynamic_storage_buffers_per_pipeline_layout</a></li><li><a href="#structfield.max_dynamic_uniform_buffers_per_pipeline_layout">max_dynamic_uniform_buffers_per_pipeline_layout</a></li><li><a href="#structfield.max_inter_stage_shader_components">max_inter_stage_shader_components</a></li><li><a href="#structfield.max_push_constant_size">max_push_constant_size</a></li><li><a href="#structfield.max_sampled_textures_per_shader_stage">max_sampled_textures_per_shader_stage</a></li><li><a href="#structfield.max_samplers_per_shader_stage">max_samplers_per_shader_stage</a></li><li><a href="#structfield.max_storage_buffer_binding_size">max_storage_buffer_binding_size</a></li><li><a href="#structfield.max_storage_buffers_per_shader_stage">max_storage_buffers_per_shader_stage</a></li><li><a href="#structfield.max_storage_textures_per_shader_stage">max_storage_textures_per_shader_stage</a></li><li><a href="#structfield.max_texture_array_layers">max_texture_array_layers</a></li><li><a href="#structfield.max_texture_dimension_1d">max_texture_dimension_1d</a></li><li><a href="#structfield.max_texture_dimension_2d">max_texture_dimension_2d</a></li><li><a href="#structfield.max_texture_dimension_3d">max_texture_dimension_3d</a></li><li><a href="#structfield.max_uniform_buffer_binding_size">max_uniform_buffer_binding_size</a></li><li><a href="#structfield.max_uniform_buffers_per_shader_stage">max_uniform_buffers_per_shader_stage</a></li><li><a href="#structfield.max_vertex_attributes">max_vertex_attributes</a></li><li><a href="#structfield.max_vertex_buffer_array_stride">max_vertex_buffer_array_stride</a></li><li><a href="#structfield.max_vertex_buffers">max_vertex_buffers</a></li><li><a href="#structfield.min_storage_buffer_offset_alignment">min_storage_buffer_offset_alignment</a></li><li><a href="#structfield.min_uniform_buffer_offset_alignment">min_uniform_buffer_offset_alignment</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.check_limits">check_limits</a></li><li><a href="#method.check_limits_with_fail_fn">check_limits_with_fail_fn</a></li><li><a href="#method.downlevel_defaults">downlevel_defaults</a></li><li><a href="#method.downlevel_webgl2_defaults">downlevel_webgl2_defaults</a></li><li><a href="#method.using_alignment">using_alignment</a></li><li><a href="#method.using_resolution">using_resolution</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-Limits">Clone</a></li><li><a href="#impl-Debug-for-Limits">Debug</a></li><li><a href="#impl-Default-for-Limits">Default</a></li><li><a href="#impl-Eq-for-Limits">Eq</a></li><li><a href="#impl-Hash-for-Limits">Hash</a></li><li><a href="#impl-PartialEq%3CLimits%3E-for-Limits">PartialEq&lt;Limits&gt;</a></li><li><a href="#impl-StructuralEq-for-Limits">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-Limits">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Limits">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Limits">Send</a></li><li><a href="#impl-Sync-for-Limits">Sync</a></li><li><a href="#impl-Unpin-for-Limits">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Limits">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Limits">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Limits">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Limits">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Downcast-for-Limits">Downcast</a></li><li><a href="#impl-Downcast%3CT%3E-for-Limits">Downcast&lt;T&gt;</a></li><li><a href="#impl-DowncastSync-for-Limits">DowncastSync</a></li><li><a href="#impl-DynEq-for-Limits">DynEq</a></li><li><a href="#impl-DynHash-for-Limits">DynHash</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Limits">Equivalent&lt;K&gt;</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Limits-1">Equivalent&lt;K&gt;</a></li><li><a href="#impl-Equivalent%3CK%3E-for-Limits-2">Equivalent&lt;K&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Limits">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-Limits">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-Limits">Into&lt;U&gt;</a></li><li><a href="#impl-Resource-for-Limits">Resource</a></li><li><a href="#impl-Same%3CT%3E-for-Limits">Same&lt;T&gt;</a></li><li><a href="#impl-ToOwned-for-Limits">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Limits">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Limits">TryInto&lt;U&gt;</a></li><li><a href="#impl-Upcast%3CT%3E-for-Limits">Upcast&lt;T&gt;</a></li><li><a href="#impl-WasmNotSend-for-Limits">WasmNotSend</a></li><li><a href="#impl-WasmNotSync-for-Limits">WasmNotSync</a></li><li><a href="#impl-WithSubscriber-for-Limits">WithSubscriber</a></li><li><a href="#impl-Within%3CG2%3E-for-Limits">Within&lt;G2&gt;</a></li></ul></section><h2><a href="index.html">In maplibre::render::settings</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../../index.html">maplibre</a>::<wbr><a href="../index.html">render</a>::<wbr><a href="index.html">settings</a>::<wbr><a class="struct" href="#">Limits</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code><div class="code-attribute">#[repr(C)]</div>pub struct Limits {<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 29 fields</span></summary>
pub max_texture_dimension_1d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_texture_dimension_2d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_texture_dimension_3d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_texture_array_layers: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_bind_groups: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_bindings_per_bind_group: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_dynamic_uniform_buffers_per_pipeline_layout: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_dynamic_storage_buffers_per_pipeline_layout: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_sampled_textures_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_samplers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_storage_buffers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_storage_textures_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_uniform_buffers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_uniform_buffer_binding_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_storage_buffer_binding_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_vertex_buffers: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_buffer_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u64.html">u64</a>,
pub max_vertex_attributes: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_vertex_buffer_array_stride: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub min_uniform_buffer_offset_alignment: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub min_storage_buffer_offset_alignment: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_inter_stage_shader_components: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_workgroup_storage_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_invocations_per_workgroup: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_workgroup_size_x: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_workgroup_size_y: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_workgroup_size_z: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_compute_workgroups_per_dimension: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
pub max_push_constant_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a>,
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Represents the sets of limits an adapter/device supports.</p>
<p>We provide three different defaults.</p>
<ul>
<li><a href="struct.Limits.html#method.downlevel_defaults" title="associated function maplibre::render::settings::Limits::downlevel_defaults"><code>Limits::downlevel_defaults()</code></a>. This is a set of limits that is guaranteed to work on almost
all backends, including “downlevel” backends such as OpenGL and D3D11, other than WebGL. For
most applications we recommend using these limits, assuming they are high enough for your
application, and you do not intent to support WebGL.</li>
<li><a href="struct.Limits.html#method.downlevel_webgl2_defaults" title="associated function maplibre::render::settings::Limits::downlevel_webgl2_defaults"><code>Limits::downlevel_webgl2_defaults()</code></a> This is a set of limits that is lower even than the
<a href="struct.Limits.html#method.downlevel_defaults" title="associated function maplibre::render::settings::Limits::downlevel_defaults"><code>downlevel_defaults()</code></a>, configured to be low enough to support running in the browser using
WebGL2.</li>
<li><a href="struct.Limits.html#method.default" title="associated function maplibre::render::settings::Limits::default"><code>Limits::default()</code></a>. This is the set of limits that is guaranteed to work on all modern
backends and is guaranteed to be supported by WebGPU. Applications needing more modern
features can use this as a reasonable set of limits if they are targeting only desktop and
modern mobile devices.</li>
</ul>
<p>We recommend starting with the most restrictive limits you can and manually increasing the
limits you need boosted. This will let you stay running on all hardware that supports the limits
you need.</p>
<p>Limits “better” than the default must be supported by the adapter and requested when requesting
a device. If limits “better” than the adapter supports are requested, requesting a device will
panic. Once a device is requested, you may only use resources up to the limits requested <em>even</em>
if the adapter supports “better” limits.</p>
<p>Requesting limits that are “better” than you need may cause performance to decrease because the
implementation needs to support more than is needed. You should ideally only request exactly
what you need.</p>
<p>Corresponds to <a href="https://gpuweb.github.io/gpuweb/#gpusupportedlimits">WebGPU <code>GPUSupportedLimits</code></a>.</p>
</div></details><h2 id="fields" class="fields small-section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.max_texture_dimension_1d" class="structfield small-section-header"><a href="#structfield.max_texture_dimension_1d" class="anchor field">§</a><code>max_texture_dimension_1d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum allowed value for the <code>size.width</code> of a texture created with <code>TextureDimension::D1</code>.
Defaults to 8192. Higher is “better”.</p>
</div><span id="structfield.max_texture_dimension_2d" class="structfield small-section-header"><a href="#structfield.max_texture_dimension_2d" class="anchor field">§</a><code>max_texture_dimension_2d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum allowed value for the <code>size.width</code> and <code>size.height</code> of a texture created with <code>TextureDimension::D2</code>.
Defaults to 8192. Higher is “better”.</p>
</div><span id="structfield.max_texture_dimension_3d" class="structfield small-section-header"><a href="#structfield.max_texture_dimension_3d" class="anchor field">§</a><code>max_texture_dimension_3d: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum allowed value for the <code>size.width</code>, <code>size.height</code>, and <code>size.depth_or_array_layers</code>
of a texture created with <code>TextureDimension::D3</code>.
Defaults to 2048. Higher is “better”.</p>
</div><span id="structfield.max_texture_array_layers" class="structfield small-section-header"><a href="#structfield.max_texture_array_layers" class="anchor field">§</a><code>max_texture_array_layers: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum allowed value for the <code>size.depth_or_array_layers</code> of a texture created with <code>TextureDimension::D2</code>.
Defaults to 256. Higher is “better”.</p>
</div><span id="structfield.max_bind_groups" class="structfield small-section-header"><a href="#structfield.max_bind_groups" class="anchor field">§</a><code>max_bind_groups: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of bind groups that can be attached to a pipeline at the same time. Defaults to 4. Higher is “better”.</p>
</div><span id="structfield.max_bindings_per_bind_group" class="structfield small-section-header"><a href="#structfield.max_bindings_per_bind_group" class="anchor field">§</a><code>max_bindings_per_bind_group: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum binding index allowed in <code>create_bind_group_layout</code>. Defaults to 1000.</p>
</div><span id="structfield.max_dynamic_uniform_buffers_per_pipeline_layout" class="structfield small-section-header"><a href="#structfield.max_dynamic_uniform_buffers_per_pipeline_layout" class="anchor field">§</a><code>max_dynamic_uniform_buffers_per_pipeline_layout: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of uniform buffer bindings that can be dynamic in a single pipeline. Defaults to 8. Higher is “better”.</p>
</div><span id="structfield.max_dynamic_storage_buffers_per_pipeline_layout" class="structfield small-section-header"><a href="#structfield.max_dynamic_storage_buffers_per_pipeline_layout" class="anchor field">§</a><code>max_dynamic_storage_buffers_per_pipeline_layout: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of storage buffer bindings that can be dynamic in a single pipeline. Defaults to 4. Higher is “better”.</p>
</div><span id="structfield.max_sampled_textures_per_shader_stage" class="structfield small-section-header"><a href="#structfield.max_sampled_textures_per_shader_stage" class="anchor field">§</a><code>max_sampled_textures_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of sampled textures visible in a single shader stage. Defaults to 16. Higher is “better”.</p>
</div><span id="structfield.max_samplers_per_shader_stage" class="structfield small-section-header"><a href="#structfield.max_samplers_per_shader_stage" class="anchor field">§</a><code>max_samplers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of samplers visible in a single shader stage. Defaults to 16. Higher is “better”.</p>
</div><span id="structfield.max_storage_buffers_per_shader_stage" class="structfield small-section-header"><a href="#structfield.max_storage_buffers_per_shader_stage" class="anchor field">§</a><code>max_storage_buffers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of storage buffers visible in a single shader stage. Defaults to 8. Higher is “better”.</p>
</div><span id="structfield.max_storage_textures_per_shader_stage" class="structfield small-section-header"><a href="#structfield.max_storage_textures_per_shader_stage" class="anchor field">§</a><code>max_storage_textures_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of storage textures visible in a single shader stage. Defaults to 4. Higher is “better”.</p>
</div><span id="structfield.max_uniform_buffers_per_shader_stage" class="structfield small-section-header"><a href="#structfield.max_uniform_buffers_per_shader_stage" class="anchor field">§</a><code>max_uniform_buffers_per_shader_stage: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of uniform buffers visible in a single shader stage. Defaults to 12. Higher is “better”.</p>
</div><span id="structfield.max_uniform_buffer_binding_size" class="structfield small-section-header"><a href="#structfield.max_uniform_buffer_binding_size" class="anchor field">§</a><code>max_uniform_buffer_binding_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum size in bytes of a binding to a uniform buffer. Defaults to 64 KB. Higher is “better”.</p>
</div><span id="structfield.max_storage_buffer_binding_size" class="structfield small-section-header"><a href="#structfield.max_storage_buffer_binding_size" class="anchor field">§</a><code>max_storage_buffer_binding_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum size in bytes of a binding to a storage buffer. Defaults to 128 MB. Higher is “better”.</p>
</div><span id="structfield.max_vertex_buffers" class="structfield small-section-header"><a href="#structfield.max_vertex_buffers" class="anchor field">§</a><code>max_vertex_buffers: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum length of <code>VertexState::buffers</code> when creating a <code>RenderPipeline</code>.
Defaults to 8. Higher is “better”.</p>
</div><span id="structfield.max_buffer_size" class="structfield small-section-header"><a href="#structfield.max_buffer_size" class="anchor field">§</a><code>max_buffer_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>A limit above which buffer allocations are guaranteed to fail.</p>
<p>Buffer allocations below the maximum buffer size may not succeed depending on available memory,
fragmentation and other factors.</p>
</div><span id="structfield.max_vertex_attributes" class="structfield small-section-header"><a href="#structfield.max_vertex_attributes" class="anchor field">§</a><code>max_vertex_attributes: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum length of <code>VertexBufferLayout::attributes</code>, summed over all <code>VertexState::buffers</code>,
when creating a <code>RenderPipeline</code>.
Defaults to 16. Higher is “better”.</p>
</div><span id="structfield.max_vertex_buffer_array_stride" class="structfield small-section-header"><a href="#structfield.max_vertex_buffer_array_stride" class="anchor field">§</a><code>max_vertex_buffer_array_stride: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum value for <code>VertexBufferLayout::array_stride</code> when creating a <code>RenderPipeline</code>.
Defaults to 2048. Higher is “better”.</p>
</div><span id="structfield.min_uniform_buffer_offset_alignment" class="structfield small-section-header"><a href="#structfield.min_uniform_buffer_offset_alignment" class="anchor field">§</a><code>min_uniform_buffer_offset_alignment: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Required <code>BufferBindingType::Uniform</code> alignment for <code>BufferBinding::offset</code>
when creating a <code>BindGroup</code>, or for <code>set_bind_group</code> <code>dynamicOffsets</code>.
Defaults to 256. Lower is “better”.</p>
</div><span id="structfield.min_storage_buffer_offset_alignment" class="structfield small-section-header"><a href="#structfield.min_storage_buffer_offset_alignment" class="anchor field">§</a><code>min_storage_buffer_offset_alignment: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Required <code>BufferBindingType::Storage</code> alignment for <code>BufferBinding::offset</code>
when creating a <code>BindGroup</code>, or for <code>set_bind_group</code> <code>dynamicOffsets</code>.
Defaults to 256. Lower is “better”.</p>
</div><span id="structfield.max_inter_stage_shader_components" class="structfield small-section-header"><a href="#structfield.max_inter_stage_shader_components" class="anchor field">§</a><code>max_inter_stage_shader_components: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum allowed number of components (scalars) of input or output locations for
inter-stage communication (vertex outputs to fragment inputs). Defaults to 60.</p>
</div><span id="structfield.max_compute_workgroup_storage_size" class="structfield small-section-header"><a href="#structfield.max_compute_workgroup_storage_size" class="anchor field">§</a><code>max_compute_workgroup_storage_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum number of bytes used for workgroup memory in a compute entry point. Defaults to
16352.</p>
</div><span id="structfield.max_compute_invocations_per_workgroup" class="structfield small-section-header"><a href="#structfield.max_compute_invocations_per_workgroup" class="anchor field">§</a><code>max_compute_invocations_per_workgroup: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Maximum value of the product of the <code>workgroup_size</code> dimensions for a compute entry-point.
Defaults to 256.</p>
</div><span id="structfield.max_compute_workgroup_size_x" class="structfield small-section-header"><a href="#structfield.max_compute_workgroup_size_x" class="anchor field">§</a><code>max_compute_workgroup_size_x: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The maximum value of the workgroup_size X dimension for a compute stage <code>ShaderModule</code> entry-point.
Defaults to 256.</p>
</div><span id="structfield.max_compute_workgroup_size_y" class="structfield small-section-header"><a href="#structfield.max_compute_workgroup_size_y" class="anchor field">§</a><code>max_compute_workgroup_size_y: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The maximum value of the workgroup_size Y dimension for a compute stage <code>ShaderModule</code> entry-point.
Defaults to 256.</p>
</div><span id="structfield.max_compute_workgroup_size_z" class="structfield small-section-header"><a href="#structfield.max_compute_workgroup_size_z" class="anchor field">§</a><code>max_compute_workgroup_size_z: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The maximum value of the workgroup_size Z dimension for a compute stage <code>ShaderModule</code> entry-point.
Defaults to 64.</p>
</div><span id="structfield.max_compute_workgroups_per_dimension" class="structfield small-section-header"><a href="#structfield.max_compute_workgroups_per_dimension" class="anchor field">§</a><code>max_compute_workgroups_per_dimension: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>The maximum value for each dimension of a <code>ComputePass::dispatch(x, y, z)</code> operation.
Defaults to 65535.</p>
</div><span id="structfield.max_push_constant_size" class="structfield small-section-header"><a href="#structfield.max_push_constant_size" class="anchor field">§</a><code>max_push_constant_size: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u32.html">u32</a></code></span><div class="docblock"><p>Amount of storage available for push constants in bytes. Defaults to 0. Higher is “better”.
Requesting more than 0 during device creation requires <a href="struct.Features.html#associatedconstant.PUSH_CONSTANTS" title="associated constant maplibre::render::settings::Features::PUSH_CONSTANTS"><code>Features::PUSH_CONSTANTS</code></a> to be enabled.</p>
<p>Expect the size to be:</p>
<ul>
<li>Vulkan: 128-256 bytes</li>
<li>DX12: 256 bytes</li>
<li>Metal: 4096 bytes</li>
<li>DX11 &amp; OpenGL dont natively support push constants, and are emulated with uniforms,
so this number is less useful but likely 256.</li>
</ul>
</div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Limits" class="impl"><a href="#impl-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.downlevel_defaults" class="method"><h4 class="code-header">pub fn <a href="#method.downlevel_defaults" class="fn">downlevel_defaults</a>() -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class="docblock"><p>These default limits are guaranteed to be compatible with GLES-3.1, and D3D11</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.downlevel_webgl2_defaults" class="method"><h4 class="code-header">pub fn <a href="#method.downlevel_webgl2_defaults" class="fn">downlevel_webgl2_defaults</a>() -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class="docblock"><p>These default limits are guaranteed to be compatible with GLES-3.0, and D3D11, and WebGL2</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.using_resolution" class="method"><h4 class="code-header">pub fn <a href="#method.using_resolution" class="fn">using_resolution</a>(self, other: <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>) -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class="docblock"><p>Modify the current limits to use the resolution limits of the other.</p>
<p>This is useful because the swapchain might need to be larger than any other image in the application.</p>
<p>If your application only needs 512x512, you might be running on a 4k display and need extremely high resolution limits.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.using_alignment" class="method"><h4 class="code-header">pub fn <a href="#method.using_alignment" class="fn">using_alignment</a>(self, other: <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>) -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class="docblock"><p>Modify the current limits to use the buffer alignment limits of the adapter.</p>
<p>This is useful for when youd like to dynamically use the “best” supported buffer alignments.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.check_limits" class="method"><h4 class="code-header">pub fn <a href="#method.check_limits" class="fn">check_limits</a>(&amp;self, allowed: &amp;<a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Compares every limits within self is within the limits given in <code>allowed</code>.</p>
<p>If you need detailed information on failures, look at <a href="struct.Limits.html#method.check_limits_with_fail_fn" title="method maplibre::render::settings::Limits::check_limits_with_fail_fn"><code>Limits::check_limits_with_fail_fn</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.check_limits_with_fail_fn" class="method"><h4 class="code-header">pub fn <a href="#method.check_limits_with_fail_fn" class="fn">check_limits_with_fail_fn</a>(
&amp;self,
allowed: &amp;<a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>,
fatal: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a>,
fail_fn: impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.str.html">str</a>, <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u64.html">u64</a>, <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.u64.html">u64</a>)
)</h4></section></summary><div class="docblock"><p>Compares every limits within self is within the limits given in <code>allowed</code>.
For an easy to use binary choice, use <a href="struct.Limits.html#method.check_limits" title="method maplibre::render::settings::Limits::check_limits"><code>Limits::check_limits</code></a>.</p>
<p>If a value is not within the allowed limit, this function calls the <code>fail_fn</code>
with the:</p>
<ul>
<li>limit name</li>
<li>selfs limit</li>
<li>alloweds limit.</li>
</ul>
<p>If fatal is true, a single failure bails out the comparison after a single failure.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Limits" class="impl"><a href="#impl-Clone-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.73.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Limits" class="impl"><a href="#impl-Debug-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.73.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.73.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/1.73.0/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.73.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-Limits" class="impl"><a href="#impl-Default-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -&gt; <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/1.73.0/core/default/trait.Default.html#tymethod.default">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Hash-for-Limits" class="impl"><a href="#impl-Hash-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a>&lt;__H&gt;(&amp;self, state: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;mut __H</a>)<span class="where fmt-newline">where
__H: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</span></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/1.73.0/src/core/hash/mod.rs.html#237-239">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a>&lt;H&gt;(data: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;mut H</a>)<span class="where fmt-newline">where
H: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CLimits%3E-for-Limits" class="impl"><a href="#impl-PartialEq%3CLimits%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>&gt; for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&amp;self, other: &amp;<a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.73.0/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;Rhs</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Limits" class="impl"><a href="#impl-Eq-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-StructuralEq-for-Limits" class="impl"><a href="#impl-StructuralEq-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-StructuralPartialEq-for-Limits" class="impl"><a href="#impl-StructuralPartialEq-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Limits" class="impl"><a href="#impl-RefUnwindSafe-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-Send-for-Limits" class="impl"><a href="#impl-Send-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-Sync-for-Limits" class="impl"><a href="#impl-Sync-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-Unpin-for-Limits" class="impl"><a href="#impl-Unpin-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section><section id="impl-UnwindSafe-for-Limits" class="impl"><a href="#impl-UnwindSafe-for-Limits" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Limits.html" title="struct maplibre::render::settings::Limits">Limits</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/any.rs.html#135">source</a><a href="#impl-Any-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/any.rs.html#136">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.73.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/borrow.rs.html#208">source</a><a href="#impl-Borrow%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/borrow.rs.html#216">source</a><a href="#impl-BorrowMut%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Downcast%3CT%3E-for-Limits" class="impl"><a href="#impl-Downcast%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Downcast&lt;T&gt; for T</h3></section></summary><div class="impl-items"><section id="method.downcast" class="method trait-impl"><a href="#method.downcast" class="anchor">§</a><h4 class="code-header">fn <a class="fn">downcast</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;T</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Downcast-for-Limits" class="impl"><a href="#impl-Downcast-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Downcast for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_any" class="method trait-impl"><a href="#method.into_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_any</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;T, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;</h4></section></summary><div class='docblock'>Convert <code>Box&lt;dyn Trait&gt;</code> (where <code>Trait: Downcast</code>) to <code>Box&lt;dyn Any&gt;</code>. <code>Box&lt;dyn Any&gt;</code> can
then be further <code>downcast</code> into <code>Box&lt;ConcreteType&gt;</code> where <code>ConcreteType</code> implements <code>Trait</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.into_any_rc" class="method trait-impl"><a href="#method.into_any_rc" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_any_rc</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;T, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/rc/struct.Rc.html" title="struct alloc::rc::Rc">Rc</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;</h4></section></summary><div class='docblock'>Convert <code>Rc&lt;Trait&gt;</code> (where <code>Trait: Downcast</code>) to <code>Rc&lt;Any&gt;</code>. <code>Rc&lt;Any&gt;</code> can then be
further <code>downcast</code> into <code>Rc&lt;ConcreteType&gt;</code> where <code>ConcreteType</code> implements <code>Trait</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.as_any-1" class="method trait-impl"><a href="#method.as_any-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4></section></summary><div class='docblock'>Convert <code>&amp;Trait</code> (where <code>Trait: Downcast</code>) to <code>&amp;Any</code>. This is needed since Rust cannot
generate <code>&amp;Any</code>s vtable from <code>&amp;Trait</code>s.</div></details><details class="toggle method-toggle" open><summary><section id="method.as_any_mut" class="method trait-impl"><a href="#method.as_any_mut" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any_mut</a>(&amp;mut self) -&gt; &amp;mut (dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4></section></summary><div class='docblock'>Convert <code>&amp;mut Trait</code> (where <code>Trait: Downcast</code>) to <code>&amp;Any</code>. This is needed since Rust cannot
generate <code>&amp;mut Any</code>s vtable from <code>&amp;mut Trait</code>s.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-DowncastSync-for-Limits" class="impl"><a href="#impl-DowncastSync-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; DowncastSync for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_any_arc" class="method trait-impl"><a href="#method.into_any_arc" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_any_arc</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;T, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>, <a class="struct" href="https://doc.rust-lang.org/1.73.0/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;</h4></section></summary><div class='docblock'>Convert <code>Arc&lt;Trait&gt;</code> (where <code>Trait: Downcast</code>) to <code>Arc&lt;Any&gt;</code>. <code>Arc&lt;Any&gt;</code> can then be
further <code>downcast</code> into <code>Arc&lt;ConcreteType&gt;</code> where <code>ConcreteType</code> implements <code>Trait</code>.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-DynEq-for-Limits" class="impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#14-28">source</a><a href="#impl-DynEq-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../util/label/trait.DynEq.html" title="trait maplibre::util::label::DynEq">DynEq</a> for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>,</span></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#18-20">source</a><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a href="../../util/label/trait.DynEq.html#tymethod.as_any" class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4></section><section id="method.dyn_eq" class="method trait-impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#22-27">source</a><a href="#method.dyn_eq" class="anchor">§</a><h4 class="code-header">fn <a href="../../util/label/trait.DynEq.html#tymethod.dyn_eq" class="fn">dyn_eq</a>(&amp;self, other: &amp;(dyn <a class="trait" href="../../util/label/trait.DynEq.html" title="trait maplibre::util::label::DynEq">DynEq</a> + 'static)) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-DynHash-for-Limits" class="impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#36-48">source</a><a href="#impl-DynHash-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../util/label/trait.DynHash.html" title="trait maplibre::util::label::DynHash">DynHash</a> for T<span class="where fmt-newline">where
T: <a class="trait" href="../../util/label/trait.DynEq.html" title="trait maplibre::util::label::DynEq">DynEq</a> + <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a>,</span></h3></section></summary><div class="impl-items"><section id="method.as_dyn_eq" class="method trait-impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#40-42">source</a><a href="#method.as_dyn_eq" class="anchor">§</a><h4 class="code-header">fn <a href="../../util/label/trait.DynHash.html#tymethod.as_dyn_eq" class="fn">as_dyn_eq</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="../../util/label/trait.DynEq.html" title="trait maplibre::util::label::DynEq">DynEq</a> + 'static)</h4></section><section id="method.dyn_hash" class="method trait-impl"><a class="src rightside" href="../../../src/maplibre/util/label.rs.html#44-47">source</a><a href="#method.dyn_hash" class="anchor">§</a><h4 class="code-header">fn <a href="../../util/label/trait.DynHash.html#tymethod.dyn_hash" class="fn">dyn_hash</a>(&amp;self, state: &amp;mut dyn <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>)</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Limits" class="impl"><a href="#impl-Equivalent%3CK%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Equivalent&lt;K&gt; for Q<span class="where fmt-newline">where
Q: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent" class="method trait-impl"><a href="#method.equivalent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Checks if this value is equivalent to the given key. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Limits-1" class="impl"><a href="#impl-Equivalent%3CK%3E-for-Limits-1" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; Equivalent&lt;K&gt; for Q<span class="where fmt-newline">where
Q: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent-1" class="method trait-impl"><a href="#method.equivalent-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Compare self to <code>key</code> and return <code>true</code> if they are equal.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Equivalent%3CK%3E-for-Limits-2" class="impl"><a class="src rightside" href="https://docs.rs/indexmap/1/src/indexmap/equivalent.rs.html#18">source</a><a href="#impl-Equivalent%3CK%3E-for-Limits-2" class="anchor">§</a><h3 class="code-header">impl&lt;Q, K&gt; <a class="trait" href="https://docs.rs/indexmap/1/indexmap/equivalent/trait.Equivalent.html" title="trait indexmap::equivalent::Equivalent">Equivalent</a>&lt;K&gt; for Q<span class="where fmt-newline">where
Q: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
K: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;Q&gt; + ?<a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.equivalent-2" class="method trait-impl"><a class="src rightside" href="https://docs.rs/indexmap/1/src/indexmap/equivalent.rs.html#24">source</a><a href="#method.equivalent-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/indexmap/1/indexmap/equivalent/trait.Equivalent.html#tymethod.equivalent" class="fn">equivalent</a>(&amp;self, key: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;K</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Compare self to <code>key</code> and return <code>true</code> if they are equal.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#722">source</a><a href="#impl-From%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#725">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-Limits" class="impl"><a href="#impl-Instrument-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#706">source</a><a href="#impl-Into%3CU%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where
U: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#715">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Same%3CT%3E-for-Limits" class="impl"><a class="src rightside" href="https://docs.rs/typenum/1.17.0/src/typenum/type_operators.rs.html#34">source</a><a href="#impl-Same%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/typenum/1.17.0/typenum/type_operators/trait.Same.html" title="trait typenum::type_operators::Same">Same</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://docs.rs/typenum/1.17.0/typenum/type_operators/trait.Same.html#associatedtype.Output" class="associatedtype">Output</a> = T</h4></section></summary><div class='docblock'>Should always be <code>Self</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.73.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#762">source</a><a href="#impl-TryFrom%3CU%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<span class="where fmt-newline">where
U: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.73.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#769">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.73.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Limits" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#747">source</a><a href="#impl-TryInto%3CU%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<span class="where fmt-newline">where
U: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.73.0/src/core/convert/mod.rs.html#754">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.73.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Upcast%3CT%3E-for-Limits" class="impl"><a href="#impl-Upcast%3CT%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Upcast&lt;T&gt; for T</h3></section></summary><div class="impl-items"><section id="method.upcast" class="method trait-impl"><a href="#method.upcast" class="anchor">§</a><h4 class="code-header">fn <a class="fn">upcast</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.73.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;T</a>&gt;</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-Limits" class="impl"><a href="#impl-WithSubscriber-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<span class="where fmt-newline">where
S: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</span></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Within%3CG2%3E-for-Limits" class="impl"><a href="#impl-Within%3CG2%3E-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;G1, G2&gt; Within&lt;G2&gt; for G1<span class="where fmt-newline">where
G2: Contains&lt;G1&gt;,</span></h3></section></summary><div class="impl-items"><section id="method.is_within" class="method trait-impl"><a href="#method.is_within" class="anchor">§</a><h4 class="code-header">fn <a class="fn">is_within</a>(&amp;self, b: <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.reference.html">&amp;G2</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.73.0/std/primitive.bool.html">bool</a></h4></section></div></details><section id="impl-Resource-for-Limits" class="impl"><a class="src rightside" href="../../../src/maplibre/tcs/resources.rs.html#10">source</a><a href="#impl-Resource-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="../../tcs/resources/trait.Resource.html" title="trait maplibre::tcs::resources::Resource">Resource</a> for T<span class="where fmt-newline">where
T: 'static,</span></h3></section><section id="impl-WasmNotSend-for-Limits" class="impl"><a href="#impl-WasmNotSend-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WasmNotSend for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-WasmNotSync-for-Limits" class="impl"><a href="#impl-WasmNotSync-for-Limits" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WasmNotSync for T<span class="where fmt-newline">where
T: <a class="trait" href="https://doc.rust-lang.org/1.73.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section></div></section></div></main></body></html>