diff --git a/docs/api/implementors/core/clone/trait.Clone.js b/docs/api/implementors/core/clone/trait.Clone.js
index 815445bb..6c0b08e3 100644
--- a/docs/api/implementors/core/clone/trait.Clone.js
+++ b/docs/api/implementors/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Clone for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Clone for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Clone for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Clone for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Clone for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Clone for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Clone for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Clone for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl<T: Clone + Transferables> Clone for Message<T> where T::TileTessellated: Clone, T::UnavailableLayer: Clone, T::TessellatedLayer: Clone, ","synthetic":false,"types":["maplibre::io::apc::Message"]},{"text":"impl Clone for Input","synthetic":false,"types":["maplibre::io::apc::Input"]},{"text":"impl<T: Clone + Transferables, HC: Clone + HttpClient> Clone for SchedulerContext<T, HC>","synthetic":false,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<T: Clone> Clone for IndexedGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T: Clone> Clone for ExactGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl<HC: Clone> Clone for HttpSourceClient<HC> where HC: HttpClient, ","synthetic":false,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC: Clone> Clone for SourceClient<HC> where HC: HttpClient, ","synthetic":false,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Clone for DefaultTransferables","synthetic":false,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Clone for TileRequest","synthetic":false,"types":["maplibre::io::TileRequest"]},{"text":"impl Clone for ReqwestHttpClient","synthetic":false,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Clone for Edge","synthetic":false,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Clone for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Clone for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Clone for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Clone for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Clone for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Clone for SlotInfo","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Clone for IndexEntry","synthetic":false,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Clone for VertexBufferLayout","synthetic":false,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Clone for FragmentState","synthetic":false,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Clone for VertexState","synthetic":false,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Clone for RenderStageLabel","synthetic":false,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Clone for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Clone for ShaderGlobals","synthetic":false,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Clone for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Clone for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Clone for ShaderLayerMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Clone for ShaderTileMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Clone for TileShape","synthetic":false,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Clone for TileInView","synthetic":false,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl Clone for Camera","synthetic":false,"types":["maplibre::render::camera::Camera"]},{"text":"impl Clone for WgpuSettings","synthetic":false,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Clone for SurfaceType","synthetic":false,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Clone for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Clone for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Clone for BackgroundPaint","synthetic":false,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Clone for FillPaint","synthetic":false,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Clone for LinePaint","synthetic":false,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Clone for LayerPaint","synthetic":false,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Clone for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Clone for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Clone for VectorSource","synthetic":false,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Clone for Source","synthetic":false,"types":["maplibre::style::source::Source"]},{"text":"impl Clone for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl Clone for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Clone for WindowSize","synthetic":false,"types":["maplibre::window::WindowSize"]},{"text":"impl Clone for Box<dyn StageLabel>","synthetic":false,"types":["alloc::boxed::Box"]},{"text":"impl<V: Clone, I: Clone> Clone for OverAlignedVertexBuffer<V, I>","synthetic":false,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]}];
+implementors["maplibre"] = [{"text":"impl<V: Clone, I: Clone> Clone for OverAlignedVertexBuffer<V, I>","synthetic":false,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl Clone for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Clone for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Clone for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Clone for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Clone for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Clone for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Clone for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Clone for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl<T: Clone + Transferables> Clone for Message<T> where T::TileTessellated: Clone, T::UnavailableLayer: Clone, T::TessellatedLayer: Clone, ","synthetic":false,"types":["maplibre::io::apc::Message"]},{"text":"impl Clone for Input","synthetic":false,"types":["maplibre::io::apc::Input"]},{"text":"impl<T: Clone + Transferables, HC: Clone + HttpClient> Clone for SchedulerContext<T, HC>","synthetic":false,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<T: Clone> Clone for IndexedGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T: Clone> Clone for ExactGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl<HC: Clone> Clone for HttpSourceClient<HC> where HC: HttpClient, ","synthetic":false,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC: Clone> Clone for SourceClient<HC> where HC: HttpClient, ","synthetic":false,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Clone for StoredLayer","synthetic":false,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Clone for TileStatus","synthetic":false,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Clone for StoredTile","synthetic":false,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Clone for DefaultTransferables","synthetic":false,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Clone for TileRequest","synthetic":false,"types":["maplibre::io::TileRequest"]},{"text":"impl Clone for ReqwestHttpClient","synthetic":false,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Clone for Edge","synthetic":false,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Clone for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Clone for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Clone for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Clone for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Clone for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Clone for SlotInfo","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Clone for IndexEntry","synthetic":false,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Clone for VertexBufferLayout","synthetic":false,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Clone for FragmentState","synthetic":false,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Clone for VertexState","synthetic":false,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Clone for RenderStageLabel","synthetic":false,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Clone for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Clone for ShaderGlobals","synthetic":false,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Clone for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Clone for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Clone for ShaderLayerMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Clone for ShaderTileMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Clone for TileShape","synthetic":false,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Clone for TileInView","synthetic":false,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl Clone for Camera","synthetic":false,"types":["maplibre::render::camera::Camera"]},{"text":"impl Clone for WgpuSettings","synthetic":false,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Clone for SurfaceType","synthetic":false,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Clone for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Clone for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Clone for BackgroundPaint","synthetic":false,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Clone for FillPaint","synthetic":false,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Clone for LinePaint","synthetic":false,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Clone for LayerPaint","synthetic":false,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Clone for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Clone for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Clone for VectorSource","synthetic":false,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Clone for Source","synthetic":false,"types":["maplibre::style::source::Source"]},{"text":"impl Clone for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl Clone for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Clone for WindowSize","synthetic":false,"types":["maplibre::window::WindowSize"]},{"text":"impl Clone for Box<dyn StageLabel>","synthetic":false,"types":["alloc::boxed::Box"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/convert/trait.From.js b/docs/api/implementors/core/convert/trait.From.js
index ca3c313f..fbf85e5b 100644
--- a/docs/api/implementors/core/convert/trait.From.js
+++ b/docs/api/implementors/core/convert/trait.From.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl From<u8> for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl From<(u32, u32, ZoomLevel)> for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl From<(i32, i32, ZoomLevel)> for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl From<(f32, f32)> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl From<(f64, f64)> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl From<Point3<f64>> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl From<SurfaceError> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<TessellationError> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<T> From<SendError<T>> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<F, I, O> From<F> for ClosureProcessable<F, I, O> where F: Fn(I, &mut PipelineContext) -> O, ","synthetic":false,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<InputSlotError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<OutputSlotError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<RunSubGraphError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<&NodeLabel> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<String> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<&'static str> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<NodeId> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<Buffer> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<TextureView> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<Sampler> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<&SlotLabel> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<String> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<&'static str> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<Cow<'static, str>> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<usize> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl<T: IntoIterator<Item = SlotInfo>> From<T> for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl From<TextureView> for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl From<SurfaceTexture> for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl From<NodeRunError> for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl From<WorldCoords> for [f32; 3]","synthetic":false,"types":[]},{"text":"impl<V: Pod, I: Pod> From<VertexBuffers<V, I>> for OverAlignedVertexBuffer<V, I>","synthetic":false,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]}];
+implementors["maplibre"] = [{"text":"impl<V: Pod, I: Pod> From<VertexBuffers<V, I>> for OverAlignedVertexBuffer<V, I>","synthetic":false,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl From<u8> for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl From<(u32, u32, ZoomLevel)> for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl From<(i32, i32, ZoomLevel)> for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl From<(f32, f32)> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl From<(f64, f64)> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl From<Point3<f64>> for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl<E> From<E> for Errorwhere E: Into<RenderError>, ","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<TessellationError> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<T> From<SendError<T>> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<F, I, O> From<F> for ClosureProcessable<F, I, O> where F: Fn(I, &mut PipelineContext) -> O, ","synthetic":false,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<Error> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<InputSlotError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<OutputSlotError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<RunSubGraphError> for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl From<&NodeLabel> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<String> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<&'static str> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<NodeId> for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl From<Buffer> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<TextureView> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<Sampler> for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl From<&SlotLabel> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<String> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<&'static str> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<Cow<'static, str>> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl From<usize> for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl<T: IntoIterator<Item = SlotInfo>> From<T> for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl From<TextureView> for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl From<SurfaceTexture> for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl From<NodeRunError> for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl From<WorldCoords> for [f32; 3]","synthetic":false,"types":[]},{"text":"impl From<RenderGraphError> for RenderError","synthetic":false,"types":["maplibre::render::error::RenderError"]},{"text":"impl From<SurfaceError> for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl From<RequestDeviceError> for Error","synthetic":false,"types":["maplibre::error::Error"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/default/trait.Default.js b/docs/api/implementors/core/default/trait.Default.js
index 6e7caae6..fc556c93 100644
--- a/docs/api/implementors/core/default/trait.Default.js
+++ b/docs/api/implementors/core/default/trait.Default.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Default for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Default for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Default for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Default for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Default for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Default for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Default for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl<I> Default for PipelineEnd<I>","synthetic":false,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl Default for ParseTile","synthetic":false,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Default for IndexLayer","synthetic":false,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Default for TessellateLayer","synthetic":false,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Default for TileRepository","synthetic":false,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Default for RenderGraph","synthetic":false,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Default for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Default for ExtractStage","synthetic":false,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Default for PhaseSortStage","synthetic":false,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Default for QueueStage","synthetic":false,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Default for ResourceStage","synthetic":false,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Default for UploadStage","synthetic":false,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Default for PrepareStage","synthetic":false,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl<I: PhaseItem> Default for RenderPhase<I>","synthetic":false,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Default for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Default for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl<T> Default for Eventually<T>","synthetic":false,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Default for WgpuSettings","synthetic":false,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Default for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Default for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Default for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Default for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Default for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl<T> Default for ChangeObserver<T> where T: Default, ","synthetic":false,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Default for Schedule","synthetic":false,"types":["maplibre::schedule::Schedule"]},{"text":"impl<I: Add + From<VertexId> + MaxIndex> Default for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]}];
+implementors["maplibre"] = [{"text":"impl<I: Add + From<VertexId> + MaxIndex> Default for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Default for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Default for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Default for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Default for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Default for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Default for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Default for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl<I> Default for PipelineEnd<I>","synthetic":false,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl Default for ParseTile","synthetic":false,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Default for IndexLayer","synthetic":false,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Default for TessellateLayer","synthetic":false,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Default for TileRepository","synthetic":false,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Default for RenderGraph","synthetic":false,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Default for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Default for ExtractStage","synthetic":false,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Default for PhaseSortStage","synthetic":false,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Default for QueueStage","synthetic":false,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Default for ResourceStage","synthetic":false,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Default for UploadStage","synthetic":false,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Default for PrepareStage","synthetic":false,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl<I: PhaseItem> Default for RenderPhase<I>","synthetic":false,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Default for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Default for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Default for InitializationResult","synthetic":false,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl<T> Default for Eventually<T>","synthetic":false,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Default for WgpuSettings","synthetic":false,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Default for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Default for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Default for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Default for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Default for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl<T> Default for ChangeObserver<T> where T: Default, ","synthetic":false,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Default for Schedule","synthetic":false,"types":["maplibre::schedule::Schedule"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/fmt/trait.Debug.js b/docs/api/implementors/core/fmt/trait.Debug.js
index b67c4d35..3e350848 100644
--- a/docs/api/implementors/core/fmt/trait.Debug.js
+++ b/docs/api/implementors/core/fmt/trait.Debug.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Debug for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Debug for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Debug for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Debug for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Debug for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Debug for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Debug for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Debug for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Debug for ViewRegion","synthetic":false,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Debug for RenderError","synthetic":false,"types":["maplibre::error::RenderError"]},{"text":"impl Debug for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<T: Debug> Debug for IndexedGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T: Debug> Debug for ExactGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Debug for TileRequest","synthetic":false,"types":["maplibre::io::TileRequest"]},{"text":"impl Debug for RunSubGraphError","synthetic":false,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Debug for OutputSlotError","synthetic":false,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Debug for InputSlotError","synthetic":false,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Debug for Edge","synthetic":false,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Debug for RenderGraph","synthetic":false,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Debug for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Debug for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Debug for Edges","synthetic":false,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Debug for NodeState","synthetic":false,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Debug for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Debug for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Debug for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Debug for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Debug for SlotInfo","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Debug for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Debug for RenderGraphError","synthetic":false,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q: Debug, B: Debug, V: Debug, I: Debug, TM: Debug, FM: Debug> Debug for BufferPool<Q, B, V, I, TM, FM>","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Debug for BackingBufferType","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B: Debug> Debug for BackingBuffer<B>","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Debug for IndexEntry","synthetic":false,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Debug for RingIndex","synthetic":false,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Debug for VertexBufferLayout","synthetic":false,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Debug for FragmentState","synthetic":false,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Debug for VertexState","synthetic":false,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Debug for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Debug for RenderStageLabel","synthetic":false,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Debug for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Debug for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl<B: Debug> Debug for BackingBuffer<B>","synthetic":false,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Debug for ViewProjection","synthetic":false,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Debug for Camera","synthetic":false,"types":["maplibre::render::camera::Camera"]},{"text":"impl Debug for BackgroundPaint","synthetic":false,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Debug for FillPaint","synthetic":false,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Debug for LinePaint","synthetic":false,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Debug for LayerPaint","synthetic":false,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Debug for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Debug for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Debug for VectorSource","synthetic":false,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Debug for Source","synthetic":false,"types":["maplibre::style::source::Source"]},{"text":"impl Debug for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl<S: BaseFloat> Debug for Plane<S>","synthetic":false,"types":["maplibre::util::math::Plane"]},{"text":"impl<S: BaseNum> Debug for Aabb2<S>","synthetic":false,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S: BaseNum> Debug for Aabb3<S>","synthetic":false,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Debug for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]}];
+implementors["maplibre"] = [{"text":"impl Debug for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Debug for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Debug for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Debug for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Debug for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Debug for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Debug for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Debug for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Debug for ViewRegion","synthetic":false,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Debug for Error","synthetic":false,"types":["maplibre::error::Error"]},{"text":"impl<T: Debug> Debug for IndexedGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T: Debug> Debug for ExactGeometry<T> where T: CoordFloat + Bounded + Signed, ","synthetic":false,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Debug for TileRequest","synthetic":false,"types":["maplibre::io::TileRequest"]},{"text":"impl Debug for RunSubGraphError","synthetic":false,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Debug for OutputSlotError","synthetic":false,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Debug for InputSlotError","synthetic":false,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Debug for Edge","synthetic":false,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Debug for RenderGraph","synthetic":false,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Debug for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Debug for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Debug for Edges","synthetic":false,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Debug for NodeState","synthetic":false,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Debug for NodeLabel","synthetic":false,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Debug for SlotValue","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Debug for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Debug for SlotLabel","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Debug for SlotInfo","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Debug for SlotInfos","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Debug for RenderGraphError","synthetic":false,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q: Debug, B: Debug, V: Debug, I: Debug, TM: Debug, FM: Debug> Debug for BufferPool<Q, B, V, I, TM, FM>","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Debug for BackingBufferType","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B: Debug> Debug for BackingBuffer<B>","synthetic":false,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Debug for IndexEntry","synthetic":false,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Debug for RingIndex","synthetic":false,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Debug for VertexBufferLayout","synthetic":false,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Debug for FragmentState","synthetic":false,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Debug for VertexState","synthetic":false,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Debug for TextureView","synthetic":false,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Debug for RenderStageLabel","synthetic":false,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Debug for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Debug for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl<B: Debug> Debug for BackingBuffer<B>","synthetic":false,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Debug for ViewProjection","synthetic":false,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Debug for Camera","synthetic":false,"types":["maplibre::render::camera::Camera"]},{"text":"impl Debug for RenderError","synthetic":false,"types":["maplibre::render::error::RenderError"]},{"text":"impl Debug for BackgroundPaint","synthetic":false,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Debug for FillPaint","synthetic":false,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Debug for LinePaint","synthetic":false,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Debug for LayerPaint","synthetic":false,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Debug for StyleLayer","synthetic":false,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Debug for TileAddressingScheme","synthetic":false,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Debug for VectorSource","synthetic":false,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Debug for Source","synthetic":false,"types":["maplibre::style::source::Source"]},{"text":"impl Debug for Style","synthetic":false,"types":["maplibre::style::style::Style"]},{"text":"impl<S: BaseFloat> Debug for Plane<S>","synthetic":false,"types":["maplibre::util::math::Plane"]},{"text":"impl<S: BaseNum> Debug for Aabb2<S>","synthetic":false,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S: BaseNum> Debug for Aabb3<S>","synthetic":false,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Debug for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/fmt/trait.Display.js b/docs/api/implementors/core/fmt/trait.Display.js
index 5982cabf..cd0041c1 100644
--- a/docs/api/implementors/core/fmt/trait.Display.js
+++ b/docs/api/implementors/core/fmt/trait.Display.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Display for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Display for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Display for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Display for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Display for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Display for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Display for RenderError","synthetic":false,"types":["maplibre::error::RenderError"]},{"text":"impl Display for RunSubGraphError","synthetic":false,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Display for OutputSlotError","synthetic":false,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Display for InputSlotError","synthetic":false,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Display for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Display for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Display for RenderGraphError","synthetic":false,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl Display for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]}];
+implementors["maplibre"] = [{"text":"impl Display for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Display for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Display for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Display for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Display for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Display for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Display for RunSubGraphError","synthetic":false,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Display for OutputSlotError","synthetic":false,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Display for InputSlotError","synthetic":false,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Display for NodeRunError","synthetic":false,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Display for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Display for RenderGraphError","synthetic":false,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl Display for RenderGraphRunnerError","synthetic":false,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Display for RenderError","synthetic":false,"types":["maplibre::render::error::RenderError"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/marker/trait.Copy.js b/docs/api/implementors/core/marker/trait.Copy.js
index 643ee25d..8e979a48 100644
--- a/docs/api/implementors/core/marker/trait.Copy.js
+++ b/docs/api/implementors/core/marker/trait.Copy.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Copy for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Copy for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Copy for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Copy for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Copy for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Copy for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Copy for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Copy for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Copy for DefaultTransferables","synthetic":false,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Copy for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Copy for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Copy for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Copy for ShaderGlobals","synthetic":false,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Copy for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Copy for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Copy for ShaderLayerMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Copy for ShaderTileMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Copy for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Copy for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Copy for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Copy for WindowSize","synthetic":false,"types":["maplibre::window::WindowSize"]}];
+implementors["maplibre"] = [{"text":"impl Copy for Quadkey","synthetic":false,"types":["maplibre::coords::Quadkey"]},{"text":"impl Copy for ZoomLevel","synthetic":false,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Copy for LatLon","synthetic":false,"types":["maplibre::coords::LatLon"]},{"text":"impl Copy for Zoom","synthetic":false,"types":["maplibre::coords::Zoom"]},{"text":"impl Copy for InnerCoords","synthetic":false,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Copy for TileCoords","synthetic":false,"types":["maplibre::coords::TileCoords"]},{"text":"impl Copy for WorldTileCoords","synthetic":false,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Copy for WorldCoords","synthetic":false,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Copy for TileStatus","synthetic":false,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Copy for DefaultTransferables","synthetic":false,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Copy for NodeId","synthetic":false,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Copy for SlotType","synthetic":false,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Copy for ShaderCamera","synthetic":false,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Copy for ShaderGlobals","synthetic":false,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Copy for ShaderVertex","synthetic":false,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Copy for ShaderFeatureStyle","synthetic":false,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Copy for ShaderLayerMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Copy for ShaderTileMetadata","synthetic":false,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Copy for Msaa","synthetic":false,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Copy for RendererSettings","synthetic":false,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Copy for FloatOrd","synthetic":false,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Copy for WindowSize","synthetic":false,"types":["maplibre::window::WindowSize"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/marker/trait.Freeze.js b/docs/api/implementors/core/marker/trait.Freeze.js
index c09be115..db23e20b 100644
--- a/docs/api/implementors/core/marker/trait.Freeze.js
+++ b/docs/api/implementors/core/marker/trait.Freeze.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Freeze for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl !Freeze for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Freeze for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Freeze for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Freeze for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Freeze for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Freeze for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Freeze for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Freeze for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Freeze for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Freeze for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Freeze for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Freeze for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl Freeze for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Freeze for Message<T> where <T as Transferables>::TessellatedLayer: Freeze, <T as Transferables>::TileTessellated: Freeze, <T as Transferables>::UnavailableLayer: Freeze, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Freeze for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !Freeze for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !Freeze for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Freeze for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Freeze for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Freeze for IndexedGeometry<T> where T: Freeze, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Freeze for ExactGeometry<T>","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Freeze for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl Freeze for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Freeze for DataPipeline<P, N> where N: Freeze, P: Freeze, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Freeze for PipelineEnd<I>","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Freeze for ClosureProcessable<F, I, O> where F: Freeze, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Freeze for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Freeze for HttpSourceClient<HC> where HC: Freeze, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Freeze for SourceClient<HC> where HC: Freeze, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Freeze for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Freeze for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Freeze for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Freeze for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Freeze for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Freeze for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Freeze for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Freeze for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Freeze for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Freeze for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Freeze for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Freeze for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> !Freeze for InteractiveMapSchedule<E>","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl Freeze for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl !Freeze for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl Freeze for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Freeze for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl Freeze for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> Freeze for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Freeze for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Freeze for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Freeze for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Freeze for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Freeze for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Freeze for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Freeze for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Freeze for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Freeze for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Freeze for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Freeze for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Freeze for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Freeze for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Freeze for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl Freeze for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Freeze for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Freeze for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Freeze for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Freeze for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Freeze for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Freeze for BufferPool<Q, B, V, I, TM, FM> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Freeze for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Freeze for BackingBufferDescriptor<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Freeze for BackingBuffer<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Freeze for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Freeze for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !Freeze for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Freeze for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Freeze for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Freeze for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Freeze for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Freeze for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !Freeze for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !Freeze for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !Freeze for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !Freeze for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Freeze for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Freeze for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Freeze for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Freeze for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Freeze for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Freeze for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Freeze for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Freeze for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Freeze for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Freeze for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Freeze for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Freeze for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Freeze for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Freeze for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Freeze for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Freeze for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Freeze for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Freeze for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Freeze for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Freeze for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Freeze for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Freeze for RenderPhase<I>","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Freeze for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Freeze for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Freeze for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Freeze for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Freeze for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Freeze for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Freeze for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Freeze for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Freeze for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Freeze for TileViewPattern<Q, B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Freeze for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Freeze for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Freeze for BackingBuffer<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Freeze for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Freeze for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Freeze for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Freeze for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Freeze for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> Freeze for Eventually<T> where T: Freeze, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Freeze for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Freeze for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Freeze for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Freeze for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !Freeze for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !Freeze for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Freeze for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Freeze for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Freeze for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Freeze for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Freeze for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Freeze for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Freeze for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Freeze for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Freeze for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Freeze for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Freeze for Plane<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Freeze for Aabb2<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Freeze for Aabb3<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Freeze for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Freeze for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Freeze for ChangeObserver<T> where T: Freeze, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Freeze for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Freeze for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Freeze for MultiStage<I, S> where S: Freeze, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl Freeze for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> Freeze for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> Freeze for RequestStage<E> where <E as Environment>::HttpClient: Freeze, ","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Freeze for HeadedPipelineProcessor<T, HC, C> where C: Freeze, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> !Freeze for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Freeze for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Freeze for OverAlignedVertexBuffer<V, I>","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> !Freeze for Map<E>","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> Freeze for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: Freeze, <E as Environment>::HttpClient: Freeze, <E as Environment>::MapWindowConfig: Freeze, <E as Environment>::Scheduler: Freeze, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> Freeze for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: Freeze, <E as Environment>::HttpClient: Freeze, <E as Environment>::MapWindowConfig: Freeze, <E as Environment>::Scheduler: Freeze, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> !Freeze for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Freeze for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Freeze for OverAlignedVertexBuffer<V, I>","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl !Freeze for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Freeze for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Freeze for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Freeze for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Freeze for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Freeze for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Freeze for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Freeze for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Freeze for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Freeze for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Freeze for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Freeze for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Freeze for Message<T> where <T as Transferables>::TessellatedLayer: Freeze, <T as Transferables>::TileTessellated: Freeze, <T as Transferables>::UnavailableLayer: Freeze, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Freeze for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !Freeze for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !Freeze for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Freeze for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Freeze for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Freeze for IndexedGeometry<T> where T: Freeze, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Freeze for ExactGeometry<T>","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Freeze for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl Freeze for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Freeze for DataPipeline<P, N> where N: Freeze, P: Freeze, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Freeze for PipelineEnd<I>","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Freeze for ClosureProcessable<F, I, O> where F: Freeze, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Freeze for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Freeze for HttpSourceClient<HC> where HC: Freeze, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Freeze for SourceClient<HC> where HC: Freeze, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Freeze for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Freeze for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Freeze for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Freeze for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Freeze for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Freeze for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Freeze for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Freeze for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Freeze for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Freeze for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Freeze for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Freeze for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl Freeze for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Freeze for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl Freeze for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> Freeze for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Freeze for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Freeze for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Freeze for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Freeze for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Freeze for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Freeze for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Freeze for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Freeze for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Freeze for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Freeze for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Freeze for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Freeze for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Freeze for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Freeze for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl Freeze for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Freeze for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Freeze for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Freeze for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Freeze for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Freeze for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Freeze for BufferPool<Q, B, V, I, TM, FM> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Freeze for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Freeze for BackingBufferDescriptor<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Freeze for BackingBuffer<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Freeze for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Freeze for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !Freeze for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Freeze for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Freeze for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Freeze for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Freeze for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Freeze for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !Freeze for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !Freeze for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !Freeze for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !Freeze for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Freeze for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Freeze for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Freeze for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Freeze for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Freeze for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Freeze for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Freeze for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Freeze for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Freeze for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Freeze for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Freeze for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Freeze for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Freeze for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Freeze for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Freeze for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Freeze for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Freeze for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Freeze for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Freeze for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Freeze for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Freeze for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Freeze for RenderPhase<I>","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Freeze for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Freeze for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Freeze for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Freeze for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Freeze for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Freeze for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Freeze for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Freeze for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Freeze for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Freeze for TileViewPattern<Q, B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Freeze for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Freeze for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Freeze for BackingBuffer<B> where B: Freeze, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Freeze for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl !Freeze for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl Freeze for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl !Freeze for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl Freeze for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Freeze for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Freeze for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Freeze for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Freeze for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl Freeze for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> Freeze for Eventually<T> where T: Freeze, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Freeze for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Freeze for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Freeze for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Freeze for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !Freeze for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !Freeze for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Freeze for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Freeze for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Freeze for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Freeze for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Freeze for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Freeze for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Freeze for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Freeze for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Freeze for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Freeze for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Freeze for Plane<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Freeze for Aabb2<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Freeze for Aabb3<S> where S: Freeze, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Freeze for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Freeze for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Freeze for ChangeObserver<T> where T: Freeze, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Freeze for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Freeze for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Freeze for MultiStage<I, S> where S: Freeze, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl Freeze for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> Freeze for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> Freeze for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Freeze for HeadedPipelineProcessor<T, HC, C> where C: Freeze, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> Freeze for Kernel<E> where <E as Environment>::AsyncProcedureCall: Freeze, <E as Environment>::HttpClient: Freeze, <E as Environment>::MapWindowConfig: Freeze, <E as Environment>::Scheduler: Freeze, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> Freeze for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: Freeze, <E as Environment>::HttpClient: Freeze, <E as Environment>::MapWindowConfig: Freeze, <E as Environment>::Scheduler: Freeze, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl !Freeze for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> !Freeze for Map<E>","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl Freeze for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl Freeze for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/marker/trait.Send.js b/docs/api/implementors/core/marker/trait.Send.js
index a3ed19be..f2394872 100644
--- a/docs/api/implementors/core/marker/trait.Send.js
+++ b/docs/api/implementors/core/marker/trait.Send.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Send for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl Send for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Send for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Send for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Send for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Send for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Send for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Send for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Send for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Send for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Send for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Send for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Send for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl Send for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Send for Message<T>","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Send for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> Send for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> Send for SchedulerAsyncProcedureCall<HC, S> where S: Send, ","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Send for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Send for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Send for IndexedGeometry<T> where T: Send, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Send for ExactGeometry<T> where T: Send, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Send for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !Send for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Send for DataPipeline<P, N> where N: Send, P: Send, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Send for PipelineEnd<I> where I: Send, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Send for ClosureProcessable<F, I, O> where F: Send, I: Send, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Send for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Send for HttpSourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Send for SourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Send for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Send for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Send for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Send for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Send for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Send for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Send for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Send for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Send for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Send for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Send for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Send for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> !Send for InteractiveMapSchedule<E>","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl Send for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl Send for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl Send for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Send for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !Send for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !Send for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Send for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Send for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Send for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Send for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Send for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Send for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Send for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Send for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Send for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Send for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Send for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Send for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Send for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Send for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !Send for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Send for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Send for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Send for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Send for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Send for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Send for BufferPool<Q, B, V, I, TM, FM> where B: Send, FM: Send, I: Send, Q: Send, TM: Send, V: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Send for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Send for BackingBufferDescriptor<B> where B: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Send for BackingBuffer<B> where B: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Send for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Send for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Send for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Send for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Send for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Send for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Send for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Send for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Send for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Send for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Send for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Send for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Send for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Send for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Send for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Send for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Send for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Send for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Send for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Send for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Send for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Send for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Send for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Send for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Send for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Send for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Send for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Send for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Send for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Send for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Send for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Send for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Send for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Send for RenderPhase<I> where I: Send, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Send for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Send for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Send for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Send for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Send for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Send for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Send for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Send for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Send for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Send for TileViewPattern<Q, B> where B: Send, Q: Send, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Send for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Send for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Send for BackingBuffer<B> where B: Send, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Send for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Send for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Send for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Send for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Send for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> Send for Eventually<T> where T: Send, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Send for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Send for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Send for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Send for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Send for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Send for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Send for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Send for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Send for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Send for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Send for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Send for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Send for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Send for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Send for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Send for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Send for Plane<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Send for Aabb2<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Send for Aabb3<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Send for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Send for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Send for ChangeObserver<T> where T: Send, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Send for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Send for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Send for MultiStage<I, S> where S: Send, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !Send for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !Send for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !Send for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Send for HeadedPipelineProcessor<T, HC, C> where T: Send, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> Send for ZeroTessellator<I> where I: Send, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Send for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Send for OverAlignedVertexBuffer<V, I> where I: Send, V: Send, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> !Send for Map<E>","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> Send for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: Send, <E as Environment>::MapWindowConfig: Send, <E as Environment>::Scheduler: Send, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> Send for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: Send, <E as Environment>::MapWindowConfig: Send, <E as Environment>::Scheduler: Send, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> Send for ZeroTessellator<I> where I: Send, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Send for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Send for OverAlignedVertexBuffer<V, I> where I: Send, V: Send, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl Send for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Send for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Send for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Send for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Send for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Send for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Send for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Send for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Send for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Send for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Send for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Send for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Send for Message<T>","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Send for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> Send for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> Send for SchedulerAsyncProcedureCall<HC, S> where S: Send, ","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Send for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Send for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Send for IndexedGeometry<T> where T: Send, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Send for ExactGeometry<T> where T: Send, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Send for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !Send for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Send for DataPipeline<P, N> where N: Send, P: Send, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Send for PipelineEnd<I> where I: Send, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Send for ClosureProcessable<F, I, O> where F: Send, I: Send, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Send for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Send for HttpSourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Send for SourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Send for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Send for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Send for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Send for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Send for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Send for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Send for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Send for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Send for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Send for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Send for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Send for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl Send for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Send for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !Send for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !Send for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Send for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Send for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Send for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Send for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Send for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Send for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Send for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Send for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Send for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Send for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Send for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Send for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Send for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Send for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !Send for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Send for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Send for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Send for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Send for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Send for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Send for BufferPool<Q, B, V, I, TM, FM> where B: Send, FM: Send, I: Send, Q: Send, TM: Send, V: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Send for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Send for BackingBufferDescriptor<B> where B: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Send for BackingBuffer<B> where B: Send, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Send for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Send for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Send for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Send for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Send for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Send for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Send for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Send for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Send for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Send for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Send for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Send for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Send for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Send for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Send for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Send for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Send for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Send for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Send for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Send for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Send for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Send for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Send for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Send for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Send for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Send for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Send for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Send for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Send for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Send for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Send for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Send for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Send for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Send for RenderPhase<I> where I: Send, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Send for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Send for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Send for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Send for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Send for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Send for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Send for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Send for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Send for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Send for TileViewPattern<Q, B> where B: Send, Q: Send, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Send for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Send for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Send for BackingBuffer<B> where B: Send, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Send for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl Send for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl Send for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl Send for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl Send for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Send for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Send for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Send for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Send for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl Send for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> Send for Eventually<T> where T: Send, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Send for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Send for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Send for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Send for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Send for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Send for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Send for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Send for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Send for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Send for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Send for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Send for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Send for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Send for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Send for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Send for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Send for Plane<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Send for Aabb2<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Send for Aabb3<S> where S: Send, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Send for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Send for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Send for ChangeObserver<T> where T: Send, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Send for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Send for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Send for MultiStage<I, S> where S: Send, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !Send for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !Send for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !Send for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Send for HeadedPipelineProcessor<T, HC, C> where T: Send, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> Send for Kernel<E> where <E as Environment>::AsyncProcedureCall: Send, <E as Environment>::MapWindowConfig: Send, <E as Environment>::Scheduler: Send, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> Send for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: Send, <E as Environment>::MapWindowConfig: Send, <E as Environment>::Scheduler: Send, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl Send for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> !Send for Map<E>","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl Send for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl Send for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/marker/trait.Sync.js b/docs/api/implementors/core/marker/trait.Sync.js
index 424f38cb..381160ac 100644
--- a/docs/api/implementors/core/marker/trait.Sync.js
+++ b/docs/api/implementors/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Sync for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl Sync for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Sync for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Sync for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Sync for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Sync for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Sync for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Sync for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Sync for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Sync for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Sync for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Sync for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Sync for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl Sync for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Sync for Message<T> where <T as Transferables>::TessellatedLayer: Sync, <T as Transferables>::TileTessellated: Sync, <T as Transferables>::UnavailableLayer: Sync, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Sync for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !Sync for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !Sync for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Sync for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Sync for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Sync for IndexedGeometry<T> where T: Sync, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Sync for ExactGeometry<T> where T: Sync, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Sync for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !Sync for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Sync for DataPipeline<P, N> where N: Sync, P: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Sync for PipelineEnd<I> where I: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Sync for ClosureProcessable<F, I, O> where F: Sync, I: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Sync for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Sync for HttpSourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Sync for SourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Sync for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Sync for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Sync for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Sync for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Sync for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Sync for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Sync for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Sync for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Sync for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Sync for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Sync for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Sync for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> !Sync for InteractiveMapSchedule<E>","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl Sync for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl Sync for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl Sync for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Sync for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !Sync for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !Sync for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Sync for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Sync for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Sync for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Sync for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Sync for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Sync for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Sync for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Sync for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Sync for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Sync for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Sync for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Sync for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Sync for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Sync for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !Sync for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Sync for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Sync for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Sync for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Sync for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Sync for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Sync for BufferPool<Q, B, V, I, TM, FM> where B: Sync, FM: Sync, I: Sync, Q: Sync, TM: Sync, V: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Sync for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Sync for BackingBufferDescriptor<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Sync for BackingBuffer<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Sync for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Sync for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Sync for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Sync for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Sync for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Sync for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Sync for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Sync for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Sync for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Sync for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Sync for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Sync for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Sync for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Sync for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Sync for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Sync for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Sync for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Sync for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Sync for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Sync for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Sync for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Sync for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Sync for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Sync for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Sync for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Sync for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Sync for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Sync for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Sync for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Sync for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Sync for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Sync for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Sync for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Sync for RenderPhase<I> where I: Sync, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Sync for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Sync for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Sync for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Sync for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Sync for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Sync for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Sync for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Sync for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Sync for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Sync for TileViewPattern<Q, B> where B: Sync, Q: Sync, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Sync for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Sync for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Sync for BackingBuffer<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Sync for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Sync for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Sync for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Sync for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Sync for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> Sync for Eventually<T> where T: Sync, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Sync for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Sync for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Sync for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Sync for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Sync for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Sync for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Sync for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Sync for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Sync for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Sync for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Sync for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Sync for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Sync for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Sync for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Sync for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Sync for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Sync for Plane<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Sync for Aabb2<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Sync for Aabb3<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Sync for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Sync for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Sync for ChangeObserver<T> where T: Sync, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Sync for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Sync for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Sync for MultiStage<I, S> where S: Sync, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !Sync for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !Sync for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !Sync for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Sync for HeadedPipelineProcessor<T, HC, C> where C: Sync, T: Sync, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> !Sync for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Sync for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Sync for OverAlignedVertexBuffer<V, I> where I: Sync, V: Sync, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> !Sync for Map<E>","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> Sync for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: Sync, <E as Environment>::MapWindowConfig: Sync, <E as Environment>::Scheduler: Sync, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> Sync for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: Sync, <E as Environment>::MapWindowConfig: Sync, <E as Environment>::Scheduler: Sync, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> !Sync for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Sync for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Sync for OverAlignedVertexBuffer<V, I> where I: Sync, V: Sync, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl Sync for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Sync for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Sync for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Sync for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Sync for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Sync for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Sync for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Sync for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Sync for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Sync for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Sync for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Sync for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Sync for Message<T> where <T as Transferables>::TessellatedLayer: Sync, <T as Transferables>::TileTessellated: Sync, <T as Transferables>::UnavailableLayer: Sync, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Sync for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !Sync for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !Sync for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Sync for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Sync for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Sync for IndexedGeometry<T> where T: Sync, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Sync for ExactGeometry<T> where T: Sync, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Sync for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !Sync for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Sync for DataPipeline<P, N> where N: Sync, P: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Sync for PipelineEnd<I> where I: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Sync for ClosureProcessable<F, I, O> where F: Sync, I: Sync, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Sync for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Sync for HttpSourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Sync for SourceClient<HC>","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Sync for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Sync for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Sync for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Sync for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Sync for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Sync for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Sync for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Sync for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Sync for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Sync for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Sync for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Sync for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl Sync for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Sync for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !Sync for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !Sync for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Sync for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Sync for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Sync for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Sync for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Sync for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Sync for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Sync for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Sync for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Sync for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Sync for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Sync for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Sync for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Sync for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Sync for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !Sync for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Sync for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Sync for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Sync for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Sync for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Sync for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Sync for BufferPool<Q, B, V, I, TM, FM> where B: Sync, FM: Sync, I: Sync, Q: Sync, TM: Sync, V: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Sync for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Sync for BackingBufferDescriptor<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Sync for BackingBuffer<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Sync for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Sync for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Sync for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Sync for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Sync for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Sync for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Sync for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Sync for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Sync for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Sync for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Sync for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Sync for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Sync for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Sync for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Sync for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Sync for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Sync for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Sync for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Sync for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Sync for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Sync for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Sync for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Sync for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Sync for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Sync for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Sync for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Sync for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Sync for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Sync for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Sync for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Sync for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Sync for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Sync for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Sync for RenderPhase<I> where I: Sync, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Sync for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Sync for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Sync for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Sync for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Sync for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Sync for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Sync for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Sync for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Sync for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Sync for TileViewPattern<Q, B> where B: Sync, Q: Sync, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Sync for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Sync for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Sync for BackingBuffer<B> where B: Sync, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Sync for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl Sync for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl Sync for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl Sync for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl Sync for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Sync for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Sync for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Sync for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Sync for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl Sync for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> Sync for Eventually<T> where T: Sync, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Sync for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Sync for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Sync for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Sync for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Sync for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Sync for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Sync for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Sync for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Sync for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Sync for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Sync for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Sync for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Sync for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Sync for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Sync for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Sync for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Sync for Plane<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Sync for Aabb2<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Sync for Aabb3<S> where S: Sync, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Sync for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Sync for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Sync for ChangeObserver<T> where T: Sync, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Sync for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Sync for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Sync for MultiStage<I, S> where S: Sync, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !Sync for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !Sync for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !Sync for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Sync for HeadedPipelineProcessor<T, HC, C> where C: Sync, T: Sync, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> Sync for Kernel<E> where <E as Environment>::AsyncProcedureCall: Sync, <E as Environment>::MapWindowConfig: Sync, <E as Environment>::Scheduler: Sync, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> Sync for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: Sync, <E as Environment>::MapWindowConfig: Sync, <E as Environment>::Scheduler: Sync, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl Sync for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> !Sync for Map<E>","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl Sync for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl Sync for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/marker/trait.Unpin.js b/docs/api/implementors/core/marker/trait.Unpin.js
index 84a55219..88d8a6ac 100644
--- a/docs/api/implementors/core/marker/trait.Unpin.js
+++ b/docs/api/implementors/core/marker/trait.Unpin.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl Unpin for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl Unpin for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Unpin for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Unpin for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Unpin for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Unpin for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Unpin for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Unpin for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Unpin for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Unpin for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Unpin for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Unpin for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Unpin for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl Unpin for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Unpin for Message<T> where <T as Transferables>::TessellatedLayer: Unpin, <T as Transferables>::TileTessellated: Unpin, <T as Transferables>::UnavailableLayer: Unpin, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Unpin for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> Unpin for SchedulerContext<T, HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> Unpin for SchedulerAsyncProcedureCall<HC, S> where HC: Unpin, S: Unpin, ","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Unpin for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Unpin for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Unpin for IndexedGeometry<T> where T: Unpin, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Unpin for ExactGeometry<T> where T: Unpin, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Unpin for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl Unpin for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Unpin for DataPipeline<P, N> where N: Unpin, P: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Unpin for PipelineEnd<I> where I: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Unpin for ClosureProcessable<F, I, O> where F: Unpin, I: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Unpin for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Unpin for HttpSourceClient<HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Unpin for SourceClient<HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Unpin for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Unpin for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Unpin for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Unpin for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Unpin for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Unpin for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Unpin for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Unpin for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Unpin for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Unpin for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Unpin for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Unpin for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> Unpin for InteractiveMapSchedule<E> where <E as Environment>::MapWindowConfig: Unpin, ","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl Unpin for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl Unpin for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl Unpin for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Unpin for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl Unpin for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> Unpin for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Unpin for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Unpin for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Unpin for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Unpin for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Unpin for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Unpin for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Unpin for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Unpin for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Unpin for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Unpin for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Unpin for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Unpin for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Unpin for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Unpin for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl Unpin for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Unpin for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Unpin for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Unpin for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Unpin for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Unpin for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Unpin for BufferPool<Q, B, V, I, TM, FM> where B: Unpin, FM: Unpin, I: Unpin, Q: Unpin, TM: Unpin, V: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Unpin for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Unpin for BackingBufferDescriptor<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Unpin for BackingBuffer<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Unpin for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Unpin for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Unpin for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Unpin for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Unpin for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Unpin for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Unpin for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Unpin for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Unpin for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Unpin for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Unpin for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Unpin for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Unpin for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Unpin for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Unpin for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Unpin for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Unpin for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Unpin for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Unpin for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Unpin for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Unpin for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Unpin for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Unpin for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Unpin for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Unpin for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Unpin for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Unpin for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Unpin for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Unpin for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Unpin for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Unpin for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Unpin for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Unpin for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Unpin for RenderPhase<I> where I: Unpin, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Unpin for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Unpin for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Unpin for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Unpin for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Unpin for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Unpin for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Unpin for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Unpin for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Unpin for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Unpin for TileViewPattern<Q, B> where B: Unpin, Q: Unpin, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Unpin for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Unpin for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Unpin for BackingBuffer<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Unpin for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Unpin for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Unpin for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Unpin for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Unpin for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> Unpin for Eventually<T> where T: Unpin, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Unpin for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Unpin for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Unpin for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Unpin for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Unpin for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Unpin for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Unpin for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Unpin for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Unpin for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Unpin for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Unpin for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Unpin for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Unpin for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Unpin for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Unpin for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Unpin for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Unpin for Plane<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Unpin for Aabb2<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Unpin for Aabb3<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Unpin for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Unpin for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Unpin for ChangeObserver<T> where T: Unpin, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Unpin for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Unpin for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Unpin for MultiStage<I, S> where S: Unpin, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl Unpin for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> Unpin for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> Unpin for RequestStage<E> where <E as Environment>::HttpClient: Unpin, ","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Unpin for HeadedPipelineProcessor<T, HC, C> where C: Unpin, HC: Unpin, T: Unpin, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> Unpin for ZeroTessellator<I> where I: Unpin, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Unpin for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Unpin for OverAlignedVertexBuffer<V, I> where I: Unpin, V: Unpin, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> Unpin for Map<E> where <<E as Environment>::MapWindowConfig as MapWindowConfig>::MapWindow: Unpin, ","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> Unpin for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: Unpin, <E as Environment>::HttpClient: Unpin, <E as Environment>::MapWindowConfig: Unpin, <E as Environment>::Scheduler: Unpin, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> Unpin for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: Unpin, <E as Environment>::HttpClient: Unpin, <E as Environment>::MapWindowConfig: Unpin, <E as Environment>::Scheduler: Unpin, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> Unpin for ZeroTessellator<I> where I: Unpin, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl Unpin for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> Unpin for OverAlignedVertexBuffer<V, I> where I: Unpin, V: Unpin, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl Unpin for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl Unpin for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl Unpin for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl Unpin for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl Unpin for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl Unpin for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl Unpin for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl Unpin for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl Unpin for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl Unpin for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl Unpin for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl Unpin for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> Unpin for Message<T> where <T as Transferables>::TessellatedLayer: Unpin, <T as Transferables>::TileTessellated: Unpin, <T as Transferables>::UnavailableLayer: Unpin, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl Unpin for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> Unpin for SchedulerContext<T, HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> Unpin for SchedulerAsyncProcedureCall<HC, S> where HC: Unpin, S: Unpin, ","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl Unpin for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl Unpin for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> Unpin for IndexedGeometry<T> where T: Unpin, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> Unpin for ExactGeometry<T> where T: Unpin, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl Unpin for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl Unpin for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> Unpin for DataPipeline<P, N> where N: Unpin, P: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> Unpin for PipelineEnd<I> where I: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> Unpin for ClosureProcessable<F, I, O> where F: Unpin, I: Unpin, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl Unpin for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> Unpin for HttpSourceClient<HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> Unpin for SourceClient<HC> where HC: Unpin, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl Unpin for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl Unpin for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl Unpin for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl Unpin for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl Unpin for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl Unpin for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl Unpin for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl Unpin for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl Unpin for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl Unpin for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl Unpin for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl Unpin for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl Unpin for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl Unpin for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl Unpin for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> Unpin for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl Unpin for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl Unpin for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl Unpin for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl Unpin for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl Unpin for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl Unpin for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl Unpin for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> Unpin for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl Unpin for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl Unpin for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl Unpin for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl Unpin for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl Unpin for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl Unpin for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl Unpin for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl Unpin for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl Unpin for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl Unpin for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl Unpin for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl Unpin for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> Unpin for BufferPool<Q, B, V, I, TM, FM> where B: Unpin, FM: Unpin, I: Unpin, Q: Unpin, TM: Unpin, V: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl Unpin for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> Unpin for BackingBufferDescriptor<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> Unpin for BackingBuffer<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl Unpin for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl Unpin for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl Unpin for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl Unpin for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl Unpin for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl Unpin for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl Unpin for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl Unpin for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl Unpin for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl Unpin for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl Unpin for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl Unpin for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl Unpin for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl Unpin for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> Unpin for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl Unpin for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl Unpin for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl Unpin for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl Unpin for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl Unpin for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl Unpin for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl Unpin for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl Unpin for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl Unpin for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl Unpin for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl Unpin for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl Unpin for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> Unpin for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl Unpin for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl Unpin for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl Unpin for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl Unpin for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl Unpin for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> Unpin for RenderPhase<I> where I: Unpin, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl Unpin for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl Unpin for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl Unpin for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl Unpin for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl Unpin for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl Unpin for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl Unpin for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl Unpin for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl Unpin for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> Unpin for TileViewPattern<Q, B> where B: Unpin, Q: Unpin, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl Unpin for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl Unpin for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> Unpin for BackingBuffer<B> where B: Unpin, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl Unpin for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl Unpin for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl Unpin for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl Unpin for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl Unpin for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl Unpin for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl Unpin for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl Unpin for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl Unpin for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl Unpin for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> Unpin for Eventually<T> where T: Unpin, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl Unpin for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl Unpin for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl Unpin for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl Unpin for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl Unpin for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl Unpin for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl Unpin for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl Unpin for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl Unpin for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl Unpin for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl Unpin for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl Unpin for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl Unpin for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl Unpin for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl Unpin for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl Unpin for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> Unpin for Plane<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> Unpin for Aabb2<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> Unpin for Aabb3<S> where S: Unpin, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl Unpin for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl Unpin for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> Unpin for ChangeObserver<T> where T: Unpin, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl Unpin for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl Unpin for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> Unpin for MultiStage<I, S> where S: Unpin, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl Unpin for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> Unpin for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> Unpin for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> Unpin for HeadedPipelineProcessor<T, HC, C> where C: Unpin, HC: Unpin, T: Unpin, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> Unpin for Kernel<E> where <E as Environment>::AsyncProcedureCall: Unpin, <E as Environment>::HttpClient: Unpin, <E as Environment>::MapWindowConfig: Unpin, <E as Environment>::Scheduler: Unpin, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> Unpin for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: Unpin, <E as Environment>::HttpClient: Unpin, <E as Environment>::MapWindowConfig: Unpin, <E as Environment>::Scheduler: Unpin, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl Unpin for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> Unpin for Map<E> where <<E as Environment>::MapWindowConfig as MapWindowConfig>::MapWindow: Unpin, ","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl Unpin for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl Unpin for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
index 1c632995..deeaf4d8 100644
--- a/docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
+++ b/docs/api/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl RefUnwindSafe for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl !RefUnwindSafe for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl RefUnwindSafe for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl RefUnwindSafe for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl RefUnwindSafe for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl RefUnwindSafe for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl RefUnwindSafe for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl RefUnwindSafe for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl RefUnwindSafe for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl RefUnwindSafe for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl RefUnwindSafe for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl RefUnwindSafe for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl RefUnwindSafe for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl RefUnwindSafe for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> RefUnwindSafe for Message<T> where <T as Transferables>::TessellatedLayer: RefUnwindSafe, <T as Transferables>::TileTessellated: RefUnwindSafe, <T as Transferables>::UnavailableLayer: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl RefUnwindSafe for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !RefUnwindSafe for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !RefUnwindSafe for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl RefUnwindSafe for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl RefUnwindSafe for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> RefUnwindSafe for IndexedGeometry<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> RefUnwindSafe for ExactGeometry<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl RefUnwindSafe for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !RefUnwindSafe for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> RefUnwindSafe for DataPipeline<P, N> where N: RefUnwindSafe, P: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> RefUnwindSafe for PipelineEnd<I> where I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> RefUnwindSafe for ClosureProcessable<F, I, O> where F: RefUnwindSafe, I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl RefUnwindSafe for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> RefUnwindSafe for HttpSourceClient<HC> where HC: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> RefUnwindSafe for SourceClient<HC> where HC: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl RefUnwindSafe for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl RefUnwindSafe for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl RefUnwindSafe for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl RefUnwindSafe for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl RefUnwindSafe for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl RefUnwindSafe for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl RefUnwindSafe for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl RefUnwindSafe for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl RefUnwindSafe for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl RefUnwindSafe for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl RefUnwindSafe for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl RefUnwindSafe for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> !RefUnwindSafe for InteractiveMapSchedule<E>","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl RefUnwindSafe for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl !RefUnwindSafe for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl !RefUnwindSafe for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl RefUnwindSafe for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !RefUnwindSafe for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !RefUnwindSafe for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl RefUnwindSafe for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl RefUnwindSafe for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl RefUnwindSafe for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl RefUnwindSafe for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl RefUnwindSafe for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl !RefUnwindSafe for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl RefUnwindSafe for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> !RefUnwindSafe for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl RefUnwindSafe for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl RefUnwindSafe for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl RefUnwindSafe for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl !RefUnwindSafe for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl RefUnwindSafe for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl RefUnwindSafe for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !RefUnwindSafe for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl RefUnwindSafe for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl RefUnwindSafe for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl RefUnwindSafe for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl RefUnwindSafe for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl RefUnwindSafe for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> RefUnwindSafe for BufferPool<Q, B, V, I, TM, FM> where B: RefUnwindSafe, FM: RefUnwindSafe, I: RefUnwindSafe, Q: RefUnwindSafe, TM: RefUnwindSafe, V: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl RefUnwindSafe for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> RefUnwindSafe for BackingBufferDescriptor<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> RefUnwindSafe for BackingBuffer<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl RefUnwindSafe for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl RefUnwindSafe for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !RefUnwindSafe for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl RefUnwindSafe for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl RefUnwindSafe for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl RefUnwindSafe for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl RefUnwindSafe for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl RefUnwindSafe for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !RefUnwindSafe for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !RefUnwindSafe for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !RefUnwindSafe for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !RefUnwindSafe for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl !RefUnwindSafe for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl !RefUnwindSafe for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> !RefUnwindSafe for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl RefUnwindSafe for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl !RefUnwindSafe for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl RefUnwindSafe for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl RefUnwindSafe for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl RefUnwindSafe for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl RefUnwindSafe for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl RefUnwindSafe for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl RefUnwindSafe for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl RefUnwindSafe for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl RefUnwindSafe for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl RefUnwindSafe for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl RefUnwindSafe for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> RefUnwindSafe for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl RefUnwindSafe for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl RefUnwindSafe for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl RefUnwindSafe for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl RefUnwindSafe for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl RefUnwindSafe for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> RefUnwindSafe for RenderPhase<I> where I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl RefUnwindSafe for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl RefUnwindSafe for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl RefUnwindSafe for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl RefUnwindSafe for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl RefUnwindSafe for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl RefUnwindSafe for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl RefUnwindSafe for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl RefUnwindSafe for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl RefUnwindSafe for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> RefUnwindSafe for TileViewPattern<Q, B> where B: RefUnwindSafe, Q: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl RefUnwindSafe for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl RefUnwindSafe for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> RefUnwindSafe for BackingBuffer<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl RefUnwindSafe for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl RefUnwindSafe for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl RefUnwindSafe for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl RefUnwindSafe for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl RefUnwindSafe for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> RefUnwindSafe for Eventually<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl RefUnwindSafe for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl RefUnwindSafe for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl RefUnwindSafe for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl RefUnwindSafe for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !RefUnwindSafe for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !RefUnwindSafe for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl RefUnwindSafe for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl RefUnwindSafe for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl RefUnwindSafe for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl RefUnwindSafe for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl RefUnwindSafe for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl RefUnwindSafe for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl RefUnwindSafe for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl RefUnwindSafe for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl RefUnwindSafe for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl RefUnwindSafe for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> RefUnwindSafe for Plane<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> RefUnwindSafe for Aabb2<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> RefUnwindSafe for Aabb3<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl RefUnwindSafe for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl RefUnwindSafe for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> RefUnwindSafe for ChangeObserver<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl RefUnwindSafe for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl RefUnwindSafe for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> RefUnwindSafe for MultiStage<I, S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !RefUnwindSafe for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !RefUnwindSafe for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !RefUnwindSafe for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> RefUnwindSafe for HeadedPipelineProcessor<T, HC, C> where C: RefUnwindSafe, HC: RefUnwindSafe, T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> !RefUnwindSafe for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl RefUnwindSafe for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> RefUnwindSafe for OverAlignedVertexBuffer<V, I> where I: RefUnwindSafe, V: RefUnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> !RefUnwindSafe for Map<E>","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> RefUnwindSafe for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> RefUnwindSafe for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> !RefUnwindSafe for ZeroTessellator<I>","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl RefUnwindSafe for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> RefUnwindSafe for OverAlignedVertexBuffer<V, I> where I: RefUnwindSafe, V: RefUnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl !RefUnwindSafe for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl RefUnwindSafe for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl RefUnwindSafe for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl RefUnwindSafe for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl RefUnwindSafe for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl RefUnwindSafe for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl RefUnwindSafe for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl RefUnwindSafe for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl RefUnwindSafe for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl RefUnwindSafe for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl RefUnwindSafe for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl RefUnwindSafe for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> RefUnwindSafe for Message<T> where <T as Transferables>::TessellatedLayer: RefUnwindSafe, <T as Transferables>::TileTessellated: RefUnwindSafe, <T as Transferables>::UnavailableLayer: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl RefUnwindSafe for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !RefUnwindSafe for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !RefUnwindSafe for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl RefUnwindSafe for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl RefUnwindSafe for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> RefUnwindSafe for IndexedGeometry<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> RefUnwindSafe for ExactGeometry<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl RefUnwindSafe for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !RefUnwindSafe for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> RefUnwindSafe for DataPipeline<P, N> where N: RefUnwindSafe, P: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> RefUnwindSafe for PipelineEnd<I> where I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> RefUnwindSafe for ClosureProcessable<F, I, O> where F: RefUnwindSafe, I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl RefUnwindSafe for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> RefUnwindSafe for HttpSourceClient<HC> where HC: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> RefUnwindSafe for SourceClient<HC> where HC: RefUnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl RefUnwindSafe for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl RefUnwindSafe for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl RefUnwindSafe for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl RefUnwindSafe for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl RefUnwindSafe for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl RefUnwindSafe for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl RefUnwindSafe for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl RefUnwindSafe for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl RefUnwindSafe for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl RefUnwindSafe for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl RefUnwindSafe for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl RefUnwindSafe for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl !RefUnwindSafe for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl RefUnwindSafe for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !RefUnwindSafe for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !RefUnwindSafe for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl RefUnwindSafe for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl RefUnwindSafe for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl RefUnwindSafe for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl RefUnwindSafe for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl RefUnwindSafe for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl !RefUnwindSafe for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl RefUnwindSafe for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> !RefUnwindSafe for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl RefUnwindSafe for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl RefUnwindSafe for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl RefUnwindSafe for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl !RefUnwindSafe for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl RefUnwindSafe for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl RefUnwindSafe for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !RefUnwindSafe for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl RefUnwindSafe for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl RefUnwindSafe for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl RefUnwindSafe for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl RefUnwindSafe for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl RefUnwindSafe for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> RefUnwindSafe for BufferPool<Q, B, V, I, TM, FM> where B: RefUnwindSafe, FM: RefUnwindSafe, I: RefUnwindSafe, Q: RefUnwindSafe, TM: RefUnwindSafe, V: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl RefUnwindSafe for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> RefUnwindSafe for BackingBufferDescriptor<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> RefUnwindSafe for BackingBuffer<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl RefUnwindSafe for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl RefUnwindSafe for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !RefUnwindSafe for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl RefUnwindSafe for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl RefUnwindSafe for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl RefUnwindSafe for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl RefUnwindSafe for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl RefUnwindSafe for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !RefUnwindSafe for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !RefUnwindSafe for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !RefUnwindSafe for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !RefUnwindSafe for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl !RefUnwindSafe for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl !RefUnwindSafe for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> !RefUnwindSafe for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl RefUnwindSafe for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl !RefUnwindSafe for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl RefUnwindSafe for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl RefUnwindSafe for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl RefUnwindSafe for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl RefUnwindSafe for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl RefUnwindSafe for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl RefUnwindSafe for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl RefUnwindSafe for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl RefUnwindSafe for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl RefUnwindSafe for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl RefUnwindSafe for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> RefUnwindSafe for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl RefUnwindSafe for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl RefUnwindSafe for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl RefUnwindSafe for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl RefUnwindSafe for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl RefUnwindSafe for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> RefUnwindSafe for RenderPhase<I> where I: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl RefUnwindSafe for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl RefUnwindSafe for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl RefUnwindSafe for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl RefUnwindSafe for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl RefUnwindSafe for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl RefUnwindSafe for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl RefUnwindSafe for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl RefUnwindSafe for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl RefUnwindSafe for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> RefUnwindSafe for TileViewPattern<Q, B> where B: RefUnwindSafe, Q: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl RefUnwindSafe for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl RefUnwindSafe for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> RefUnwindSafe for BackingBuffer<B> where B: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl RefUnwindSafe for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl !RefUnwindSafe for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl RefUnwindSafe for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl !RefUnwindSafe for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl RefUnwindSafe for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl RefUnwindSafe for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl RefUnwindSafe for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl RefUnwindSafe for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl RefUnwindSafe for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl RefUnwindSafe for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> RefUnwindSafe for Eventually<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl RefUnwindSafe for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl RefUnwindSafe for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl RefUnwindSafe for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl RefUnwindSafe for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !RefUnwindSafe for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !RefUnwindSafe for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl RefUnwindSafe for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl RefUnwindSafe for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl RefUnwindSafe for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl RefUnwindSafe for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl RefUnwindSafe for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl RefUnwindSafe for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl RefUnwindSafe for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl RefUnwindSafe for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl RefUnwindSafe for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl RefUnwindSafe for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> RefUnwindSafe for Plane<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> RefUnwindSafe for Aabb2<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> RefUnwindSafe for Aabb3<S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl RefUnwindSafe for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl RefUnwindSafe for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> RefUnwindSafe for ChangeObserver<T> where T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl RefUnwindSafe for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl RefUnwindSafe for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> RefUnwindSafe for MultiStage<I, S> where S: RefUnwindSafe, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !RefUnwindSafe for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> RefUnwindSafe for PopulateTileStore<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> RefUnwindSafe for RequestStage<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> RefUnwindSafe for HeadedPipelineProcessor<T, HC, C> where C: RefUnwindSafe, HC: RefUnwindSafe, T: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> RefUnwindSafe for Kernel<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> RefUnwindSafe for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl !RefUnwindSafe for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> !RefUnwindSafe for Map<E>","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl RefUnwindSafe for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl RefUnwindSafe for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
index 2d5bcae0..67cfe635 100644
--- a/docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
+++ b/docs/api/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl UnwindSafe for ViewState","synthetic":true,"types":["maplibre::context::ViewState"]},{"text":"impl !UnwindSafe for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl UnwindSafe for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl UnwindSafe for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl UnwindSafe for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl UnwindSafe for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl UnwindSafe for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl UnwindSafe for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl UnwindSafe for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl UnwindSafe for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl UnwindSafe for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl UnwindSafe for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl UnwindSafe for RenderError","synthetic":true,"types":["maplibre::error::RenderError"]},{"text":"impl UnwindSafe for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> UnwindSafe for Message<T> where <T as Transferables>::TessellatedLayer: UnwindSafe, <T as Transferables>::TileTessellated: UnwindSafe, <T as Transferables>::UnavailableLayer: UnwindSafe, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl UnwindSafe for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !UnwindSafe for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !UnwindSafe for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl UnwindSafe for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl UnwindSafe for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> UnwindSafe for IndexedGeometry<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> UnwindSafe for ExactGeometry<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl UnwindSafe for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !UnwindSafe for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> UnwindSafe for DataPipeline<P, N> where N: UnwindSafe, P: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> UnwindSafe for PipelineEnd<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> UnwindSafe for ClosureProcessable<F, I, O> where F: UnwindSafe, I: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl UnwindSafe for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> UnwindSafe for HttpSourceClient<HC> where HC: UnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> UnwindSafe for SourceClient<HC> where HC: UnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl UnwindSafe for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl UnwindSafe for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl UnwindSafe for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl UnwindSafe for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl UnwindSafe for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl UnwindSafe for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl UnwindSafe for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl UnwindSafe for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl UnwindSafe for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl UnwindSafe for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl UnwindSafe for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl UnwindSafe for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl<E> !UnwindSafe for InteractiveMapSchedule<E>","synthetic":true,"types":["maplibre::map_schedule::InteractiveMapSchedule"]},{"text":"impl UnwindSafe for PrematureMapContext","synthetic":true,"types":["maplibre::map_schedule::PrematureMapContext"]},{"text":"impl !UnwindSafe for EventuallyMapContext","synthetic":true,"types":["maplibre::map_schedule::EventuallyMapContext"]},{"text":"impl !UnwindSafe for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl UnwindSafe for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !UnwindSafe for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !UnwindSafe for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl UnwindSafe for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl UnwindSafe for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl UnwindSafe for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl UnwindSafe for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl UnwindSafe for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl !UnwindSafe for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl UnwindSafe for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> !UnwindSafe for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl UnwindSafe for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl UnwindSafe for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl UnwindSafe for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl !UnwindSafe for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl UnwindSafe for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl UnwindSafe for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !UnwindSafe for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl UnwindSafe for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl UnwindSafe for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl UnwindSafe for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl UnwindSafe for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl UnwindSafe for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> UnwindSafe for BufferPool<Q, B, V, I, TM, FM> where B: UnwindSafe, FM: UnwindSafe, I: UnwindSafe, Q: UnwindSafe, TM: UnwindSafe, V: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl UnwindSafe for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> UnwindSafe for BackingBufferDescriptor<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> UnwindSafe for BackingBuffer<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl UnwindSafe for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl UnwindSafe for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !UnwindSafe for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl UnwindSafe for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl UnwindSafe for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl UnwindSafe for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl UnwindSafe for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl UnwindSafe for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !UnwindSafe for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !UnwindSafe for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !UnwindSafe for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !UnwindSafe for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl !UnwindSafe for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl !UnwindSafe for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> !UnwindSafe for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl UnwindSafe for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl !UnwindSafe for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl UnwindSafe for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl UnwindSafe for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl UnwindSafe for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl UnwindSafe for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl UnwindSafe for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl UnwindSafe for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl UnwindSafe for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl UnwindSafe for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl UnwindSafe for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl UnwindSafe for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> UnwindSafe for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl UnwindSafe for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl UnwindSafe for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl UnwindSafe for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl UnwindSafe for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl UnwindSafe for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> UnwindSafe for RenderPhase<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl UnwindSafe for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl UnwindSafe for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl UnwindSafe for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl UnwindSafe for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl UnwindSafe for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl UnwindSafe for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl UnwindSafe for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl UnwindSafe for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl UnwindSafe for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> UnwindSafe for TileViewPattern<Q, B> where B: UnwindSafe, Q: UnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl UnwindSafe for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl UnwindSafe for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> UnwindSafe for BackingBuffer<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl UnwindSafe for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl UnwindSafe for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl UnwindSafe for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl UnwindSafe for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl UnwindSafe for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl<T> UnwindSafe for Eventually<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl UnwindSafe for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl UnwindSafe for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl UnwindSafe for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl UnwindSafe for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !UnwindSafe for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !UnwindSafe for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl UnwindSafe for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl UnwindSafe for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl UnwindSafe for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl UnwindSafe for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl UnwindSafe for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl UnwindSafe for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl UnwindSafe for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl UnwindSafe for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl UnwindSafe for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl UnwindSafe for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> UnwindSafe for Plane<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> UnwindSafe for Aabb2<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> UnwindSafe for Aabb3<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl UnwindSafe for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl UnwindSafe for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> UnwindSafe for ChangeObserver<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl UnwindSafe for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl UnwindSafe for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> UnwindSafe for MultiStage<I, S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !UnwindSafe for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> !UnwindSafe for PopulateTileStore<E>","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> !UnwindSafe for RequestStage<E>","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> UnwindSafe for HeadedPipelineProcessor<T, HC, C> where C: UnwindSafe, HC: UnwindSafe, T: UnwindSafe, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<I> UnwindSafe for ZeroTessellator<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl UnwindSafe for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> UnwindSafe for OverAlignedVertexBuffer<V, I> where I: UnwindSafe, V: UnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl<E> !UnwindSafe for Map<E>","synthetic":true,"types":["maplibre::Map"]},{"text":"impl<E> UnwindSafe for UninitializedMap<E> where <E as Environment>::AsyncProcedureCall: UnwindSafe, <E as Environment>::HttpClient: UnwindSafe, <E as Environment>::MapWindowConfig: UnwindSafe, <E as Environment>::Scheduler: UnwindSafe, ","synthetic":true,"types":["maplibre::UninitializedMap"]},{"text":"impl<E> UnwindSafe for MapBuilder<E> where <E as Environment>::AsyncProcedureCall: UnwindSafe, <E as Environment>::HttpClient: UnwindSafe, <E as Environment>::MapWindowConfig: UnwindSafe, <E as Environment>::Scheduler: UnwindSafe, ","synthetic":true,"types":["maplibre::MapBuilder"]}];
+implementors["maplibre"] = [{"text":"impl<I> UnwindSafe for ZeroTessellator<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl UnwindSafe for VertexConstructor","synthetic":true,"types":["maplibre::tessellation::VertexConstructor"]},{"text":"impl<V, I> UnwindSafe for OverAlignedVertexBuffer<V, I> where I: UnwindSafe, V: UnwindSafe, ","synthetic":true,"types":["maplibre::tessellation::OverAlignedVertexBuffer"]},{"text":"impl !UnwindSafe for MapContext","synthetic":true,"types":["maplibre::context::MapContext"]},{"text":"impl UnwindSafe for Quadkey","synthetic":true,"types":["maplibre::coords::Quadkey"]},{"text":"impl UnwindSafe for ZoomLevel","synthetic":true,"types":["maplibre::coords::ZoomLevel"]},{"text":"impl UnwindSafe for LatLon","synthetic":true,"types":["maplibre::coords::LatLon"]},{"text":"impl UnwindSafe for Zoom","synthetic":true,"types":["maplibre::coords::Zoom"]},{"text":"impl UnwindSafe for InnerCoords","synthetic":true,"types":["maplibre::coords::InnerCoords"]},{"text":"impl UnwindSafe for TileCoords","synthetic":true,"types":["maplibre::coords::TileCoords"]},{"text":"impl UnwindSafe for WorldTileCoords","synthetic":true,"types":["maplibre::coords::WorldTileCoords"]},{"text":"impl UnwindSafe for AlignedWorldTileCoords","synthetic":true,"types":["maplibre::coords::AlignedWorldTileCoords"]},{"text":"impl UnwindSafe for WorldCoords","synthetic":true,"types":["maplibre::coords::WorldCoords"]},{"text":"impl UnwindSafe for ViewRegion","synthetic":true,"types":["maplibre::coords::ViewRegion"]},{"text":"impl UnwindSafe for Error","synthetic":true,"types":["maplibre::error::Error"]},{"text":"impl<T> UnwindSafe for Message<T> where <T as Transferables>::TessellatedLayer: UnwindSafe, <T as Transferables>::TileTessellated: UnwindSafe, <T as Transferables>::UnavailableLayer: UnwindSafe, ","synthetic":true,"types":["maplibre::io::apc::Message"]},{"text":"impl UnwindSafe for Input","synthetic":true,"types":["maplibre::io::apc::Input"]},{"text":"impl<T, HC> !UnwindSafe for SchedulerContext<T, HC>","synthetic":true,"types":["maplibre::io::apc::SchedulerContext"]},{"text":"impl<HC, S> !UnwindSafe for SchedulerAsyncProcedureCall<HC, S>","synthetic":true,"types":["maplibre::io::apc::SchedulerAsyncProcedureCall"]},{"text":"impl UnwindSafe for GeometryIndex","synthetic":true,"types":["maplibre::io::geometry_index::GeometryIndex"]},{"text":"impl UnwindSafe for TileIndex","synthetic":true,"types":["maplibre::io::geometry_index::TileIndex"]},{"text":"impl<T> UnwindSafe for IndexedGeometry<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::IndexedGeometry"]},{"text":"impl<T> UnwindSafe for ExactGeometry<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::io::geometry_index::ExactGeometry"]},{"text":"impl UnwindSafe for IndexProcessor","synthetic":true,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl !UnwindSafe for PipelineContext","synthetic":true,"types":["maplibre::io::pipeline::PipelineContext"]},{"text":"impl<P, N> UnwindSafe for DataPipeline<P, N> where N: UnwindSafe, P: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::DataPipeline"]},{"text":"impl<I> UnwindSafe for PipelineEnd<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::PipelineEnd"]},{"text":"impl<F, I, O> UnwindSafe for ClosureProcessable<F, I, O> where F: UnwindSafe, I: UnwindSafe, ","synthetic":true,"types":["maplibre::io::pipeline::ClosureProcessable"]},{"text":"impl UnwindSafe for NopScheduler","synthetic":true,"types":["maplibre::io::scheduler::NopScheduler"]},{"text":"impl<HC> UnwindSafe for HttpSourceClient<HC> where HC: UnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::HttpSourceClient"]},{"text":"impl<HC> UnwindSafe for SourceClient<HC> where HC: UnwindSafe, ","synthetic":true,"types":["maplibre::io::source_client::SourceClient"]},{"text":"impl UnwindSafe for ParseTile","synthetic":true,"types":["maplibre::io::tile_pipelines::ParseTile"]},{"text":"impl UnwindSafe for IndexLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::IndexLayer"]},{"text":"impl UnwindSafe for TessellateLayer","synthetic":true,"types":["maplibre::io::tile_pipelines::TessellateLayer"]},{"text":"impl UnwindSafe for StoredLayer","synthetic":true,"types":["maplibre::io::tile_repository::StoredLayer"]},{"text":"impl UnwindSafe for TileStatus","synthetic":true,"types":["maplibre::io::tile_repository::TileStatus"]},{"text":"impl UnwindSafe for StoredTile","synthetic":true,"types":["maplibre::io::tile_repository::StoredTile"]},{"text":"impl UnwindSafe for TileRepository","synthetic":true,"types":["maplibre::io::tile_repository::TileRepository"]},{"text":"impl UnwindSafe for DefaultTileTessellated","synthetic":true,"types":["maplibre::io::transferables::DefaultTileTessellated"]},{"text":"impl UnwindSafe for DefaultUnavailableLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultUnavailableLayer"]},{"text":"impl UnwindSafe for DefaultTessellatedLayer","synthetic":true,"types":["maplibre::io::transferables::DefaultTessellatedLayer"]},{"text":"impl UnwindSafe for DefaultTransferables","synthetic":true,"types":["maplibre::io::transferables::DefaultTransferables"]},{"text":"impl UnwindSafe for TileRequest","synthetic":true,"types":["maplibre::io::TileRequest"]},{"text":"impl !UnwindSafe for ReqwestHttpClient","synthetic":true,"types":["maplibre::platform::noweb::http_client::ReqwestHttpClient"]},{"text":"impl UnwindSafe for TokioScheduler","synthetic":true,"types":["maplibre::platform::noweb::scheduler::TokioScheduler"]},{"text":"impl !UnwindSafe for RunSubGraph","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraph"]},{"text":"impl<'a> !UnwindSafe for RenderGraphContext<'a>","synthetic":true,"types":["maplibre::render::graph::context::RenderGraphContext"]},{"text":"impl UnwindSafe for RunSubGraphError","synthetic":true,"types":["maplibre::render::graph::context::RunSubGraphError"]},{"text":"impl UnwindSafe for OutputSlotError","synthetic":true,"types":["maplibre::render::graph::context::OutputSlotError"]},{"text":"impl UnwindSafe for InputSlotError","synthetic":true,"types":["maplibre::render::graph::context::InputSlotError"]},{"text":"impl UnwindSafe for Edge","synthetic":true,"types":["maplibre::render::graph::edge::Edge"]},{"text":"impl UnwindSafe for EdgeExistence","synthetic":true,"types":["maplibre::render::graph::edge::EdgeExistence"]},{"text":"impl !UnwindSafe for RenderGraph","synthetic":true,"types":["maplibre::render::graph::graph::RenderGraph"]},{"text":"impl UnwindSafe for GraphInputNode","synthetic":true,"types":["maplibre::render::graph::graph::GraphInputNode"]},{"text":"impl<'d> !UnwindSafe for RenderContext<'d>","synthetic":true,"types":["maplibre::render::graph::node::RenderContext"]},{"text":"impl UnwindSafe for NodeId","synthetic":true,"types":["maplibre::render::graph::node::NodeId"]},{"text":"impl UnwindSafe for NodeRunError","synthetic":true,"types":["maplibre::render::graph::node::NodeRunError"]},{"text":"impl UnwindSafe for Edges","synthetic":true,"types":["maplibre::render::graph::node::Edges"]},{"text":"impl !UnwindSafe for NodeState","synthetic":true,"types":["maplibre::render::graph::node::NodeState"]},{"text":"impl UnwindSafe for NodeLabel","synthetic":true,"types":["maplibre::render::graph::node::NodeLabel"]},{"text":"impl UnwindSafe for EmptyNode","synthetic":true,"types":["maplibre::render::graph::node::EmptyNode"]},{"text":"impl !UnwindSafe for SlotValue","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotValue"]},{"text":"impl UnwindSafe for SlotType","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotType"]},{"text":"impl UnwindSafe for SlotLabel","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotLabel"]},{"text":"impl UnwindSafe for SlotInfo","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfo"]},{"text":"impl UnwindSafe for SlotInfos","synthetic":true,"types":["maplibre::render::graph::node_slot::SlotInfos"]},{"text":"impl UnwindSafe for RenderGraphError","synthetic":true,"types":["maplibre::render::graph::RenderGraphError"]},{"text":"impl<Q, B, V, I, TM, FM> UnwindSafe for BufferPool<Q, B, V, I, TM, FM> where B: UnwindSafe, FM: UnwindSafe, I: UnwindSafe, Q: UnwindSafe, TM: UnwindSafe, V: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BufferPool"]},{"text":"impl UnwindSafe for BackingBufferType","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferType"]},{"text":"impl<B> UnwindSafe for BackingBufferDescriptor<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBufferDescriptor"]},{"text":"impl<B> UnwindSafe for BackingBuffer<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::resource::buffer_pool::BackingBuffer"]},{"text":"impl UnwindSafe for IndexEntry","synthetic":true,"types":["maplibre::render::resource::buffer_pool::IndexEntry"]},{"text":"impl UnwindSafe for RingIndex","synthetic":true,"types":["maplibre::render::resource::buffer_pool::RingIndex"]},{"text":"impl !UnwindSafe for Globals","synthetic":true,"types":["maplibre::render::resource::globals::Globals"]},{"text":"impl UnwindSafe for RenderPipelineDescriptor","synthetic":true,"types":["maplibre::render::resource::pipeline::RenderPipelineDescriptor"]},{"text":"impl UnwindSafe for VertexBufferLayout","synthetic":true,"types":["maplibre::render::resource::shader::VertexBufferLayout"]},{"text":"impl UnwindSafe for FragmentState","synthetic":true,"types":["maplibre::render::resource::shader::FragmentState"]},{"text":"impl UnwindSafe for VertexState","synthetic":true,"types":["maplibre::render::resource::shader::VertexState"]},{"text":"impl UnwindSafe for BufferDimensions","synthetic":true,"types":["maplibre::render::resource::surface::BufferDimensions"]},{"text":"impl !UnwindSafe for WindowHead","synthetic":true,"types":["maplibre::render::resource::surface::WindowHead"]},{"text":"impl !UnwindSafe for BufferedTextureHead","synthetic":true,"types":["maplibre::render::resource::surface::BufferedTextureHead"]},{"text":"impl !UnwindSafe for Head","synthetic":true,"types":["maplibre::render::resource::surface::Head"]},{"text":"impl !UnwindSafe for Surface","synthetic":true,"types":["maplibre::render::resource::surface::Surface"]},{"text":"impl !UnwindSafe for TextureView","synthetic":true,"types":["maplibre::render::resource::texture::TextureView"]},{"text":"impl !UnwindSafe for Texture","synthetic":true,"types":["maplibre::render::resource::texture::Texture"]},{"text":"impl<'a> !UnwindSafe for TrackedRenderPass<'a>","synthetic":true,"types":["maplibre::render::resource::tracked_render_pass::TrackedRenderPass"]},{"text":"impl UnwindSafe for ExtractStage","synthetic":true,"types":["maplibre::render::stages::extract_stage::ExtractStage"]},{"text":"impl !UnwindSafe for GraphRunnerStage","synthetic":true,"types":["maplibre::render::stages::graph_runner_stage::GraphRunnerStage"]},{"text":"impl UnwindSafe for PhaseSortStage","synthetic":true,"types":["maplibre::render::stages::phase_sort_stage::PhaseSortStage"]},{"text":"impl UnwindSafe for QueueStage","synthetic":true,"types":["maplibre::render::stages::queue_stage::QueueStage"]},{"text":"impl UnwindSafe for ResourceStage","synthetic":true,"types":["maplibre::render::stages::resource_stage::ResourceStage"]},{"text":"impl UnwindSafe for UploadStage","synthetic":true,"types":["maplibre::render::stages::upload_stage::UploadStage"]},{"text":"impl UnwindSafe for RenderStageLabel","synthetic":true,"types":["maplibre::render::stages::RenderStageLabel"]},{"text":"impl UnwindSafe for PrepareStage","synthetic":true,"types":["maplibre::render::stages::PrepareStage"]},{"text":"impl UnwindSafe for RenderGraphRunner","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunner"]},{"text":"impl UnwindSafe for RenderGraphRunnerError","synthetic":true,"types":["maplibre::render::graph_runner::RenderGraphRunnerError"]},{"text":"impl UnwindSafe for MainPassNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassNode"]},{"text":"impl UnwindSafe for MainPassDriverNode","synthetic":true,"types":["maplibre::render::main_pass::MainPassDriverNode"]},{"text":"impl<const I: usize> UnwindSafe for SetViewBindGroup<I>","synthetic":true,"types":["maplibre::render::render_commands::SetViewBindGroup"]},{"text":"impl UnwindSafe for SetMaskPipeline","synthetic":true,"types":["maplibre::render::render_commands::SetMaskPipeline"]},{"text":"impl UnwindSafe for SetTilePipeline","synthetic":true,"types":["maplibre::render::render_commands::SetTilePipeline"]},{"text":"impl UnwindSafe for DrawMask","synthetic":true,"types":["maplibre::render::render_commands::DrawMask"]},{"text":"impl UnwindSafe for DrawTile","synthetic":true,"types":["maplibre::render::render_commands::DrawTile"]},{"text":"impl UnwindSafe for RenderCommandResult","synthetic":true,"types":["maplibre::render::render_phase::draw::RenderCommandResult"]},{"text":"impl<I> UnwindSafe for RenderPhase<I> where I: UnwindSafe, ","synthetic":true,"types":["maplibre::render::render_phase::RenderPhase"]},{"text":"impl UnwindSafe for TileMaskShader","synthetic":true,"types":["maplibre::render::shaders::TileMaskShader"]},{"text":"impl UnwindSafe for TileShader","synthetic":true,"types":["maplibre::render::shaders::TileShader"]},{"text":"impl UnwindSafe for ShaderCamera","synthetic":true,"types":["maplibre::render::shaders::ShaderCamera"]},{"text":"impl UnwindSafe for ShaderGlobals","synthetic":true,"types":["maplibre::render::shaders::ShaderGlobals"]},{"text":"impl UnwindSafe for ShaderVertex","synthetic":true,"types":["maplibre::render::shaders::ShaderVertex"]},{"text":"impl UnwindSafe for ShaderFeatureStyle","synthetic":true,"types":["maplibre::render::shaders::ShaderFeatureStyle"]},{"text":"impl UnwindSafe for ShaderLayerMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderLayerMetadata"]},{"text":"impl UnwindSafe for ShaderTileMetadata","synthetic":true,"types":["maplibre::render::shaders::ShaderTileMetadata"]},{"text":"impl UnwindSafe for TilePipeline","synthetic":true,"types":["maplibre::render::tile_pipeline::TilePipeline"]},{"text":"impl<Q, B> UnwindSafe for TileViewPattern<Q, B> where B: UnwindSafe, Q: UnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileViewPattern"]},{"text":"impl UnwindSafe for TileShape","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileShape"]},{"text":"impl UnwindSafe for TileInView","synthetic":true,"types":["maplibre::render::tile_view_pattern::TileInView"]},{"text":"impl<B> UnwindSafe for BackingBuffer<B> where B: UnwindSafe, ","synthetic":true,"types":["maplibre::render::tile_view_pattern::BackingBuffer"]},{"text":"impl UnwindSafe for RendererBuilder","synthetic":true,"types":["maplibre::render::builder::RendererBuilder"]},{"text":"impl !UnwindSafe for InitializationResult","synthetic":true,"types":["maplibre::render::builder::InitializationResult"]},{"text":"impl UnwindSafe for UninitializedRenderer","synthetic":true,"types":["maplibre::render::builder::UninitializedRenderer"]},{"text":"impl !UnwindSafe for InitializedRenderer","synthetic":true,"types":["maplibre::render::builder::InitializedRenderer"]},{"text":"impl UnwindSafe for ViewProjection","synthetic":true,"types":["maplibre::render::camera::ViewProjection"]},{"text":"impl UnwindSafe for InvertedViewProjection","synthetic":true,"types":["maplibre::render::camera::InvertedViewProjection"]},{"text":"impl UnwindSafe for ModelViewProjection","synthetic":true,"types":["maplibre::render::camera::ModelViewProjection"]},{"text":"impl UnwindSafe for Camera","synthetic":true,"types":["maplibre::render::camera::Camera"]},{"text":"impl UnwindSafe for Perspective","synthetic":true,"types":["maplibre::render::camera::Perspective"]},{"text":"impl UnwindSafe for RenderError","synthetic":true,"types":["maplibre::render::error::RenderError"]},{"text":"impl<T> UnwindSafe for Eventually<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::render::eventually::Eventually"]},{"text":"impl UnwindSafe for WgpuSettings","synthetic":true,"types":["maplibre::render::settings::WgpuSettings"]},{"text":"impl UnwindSafe for SurfaceType","synthetic":true,"types":["maplibre::render::settings::SurfaceType"]},{"text":"impl UnwindSafe for Msaa","synthetic":true,"types":["maplibre::render::settings::Msaa"]},{"text":"impl UnwindSafe for RendererSettings","synthetic":true,"types":["maplibre::render::settings::RendererSettings"]},{"text":"impl !UnwindSafe for RenderState","synthetic":true,"types":["maplibre::render::RenderState"]},{"text":"impl !UnwindSafe for Renderer","synthetic":true,"types":["maplibre::render::Renderer"]},{"text":"impl UnwindSafe for BackgroundPaint","synthetic":true,"types":["maplibre::style::layer::BackgroundPaint"]},{"text":"impl UnwindSafe for FillPaint","synthetic":true,"types":["maplibre::style::layer::FillPaint"]},{"text":"impl UnwindSafe for LinePaint","synthetic":true,"types":["maplibre::style::layer::LinePaint"]},{"text":"impl UnwindSafe for LayerPaint","synthetic":true,"types":["maplibre::style::layer::LayerPaint"]},{"text":"impl UnwindSafe for StyleLayer","synthetic":true,"types":["maplibre::style::layer::StyleLayer"]},{"text":"impl UnwindSafe for TileAddressingScheme","synthetic":true,"types":["maplibre::style::source::TileAddressingScheme"]},{"text":"impl UnwindSafe for VectorSource","synthetic":true,"types":["maplibre::style::source::VectorSource"]},{"text":"impl UnwindSafe for Source","synthetic":true,"types":["maplibre::style::source::Source"]},{"text":"impl UnwindSafe for Style","synthetic":true,"types":["maplibre::style::style::Style"]},{"text":"impl UnwindSafe for FPSMeter","synthetic":true,"types":["maplibre::util::fps_meter::FPSMeter"]},{"text":"impl<S> UnwindSafe for Plane<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Plane"]},{"text":"impl<S> UnwindSafe for Aabb2<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb2"]},{"text":"impl<S> UnwindSafe for Aabb3<S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::util::math::Aabb3"]},{"text":"impl UnwindSafe for FloatOrd","synthetic":true,"types":["maplibre::util::math::FloatOrd"]},{"text":"impl UnwindSafe for MinMaxBoundingBox","synthetic":true,"types":["maplibre::util::MinMaxBoundingBox"]},{"text":"impl<T> UnwindSafe for ChangeObserver<T> where T: UnwindSafe, ","synthetic":true,"types":["maplibre::util::ChangeObserver"]},{"text":"impl UnwindSafe for WindowSize","synthetic":true,"types":["maplibre::window::WindowSize"]},{"text":"impl UnwindSafe for NopStage","synthetic":true,"types":["maplibre::schedule::NopStage"]},{"text":"impl<const I: usize, S> UnwindSafe for MultiStage<I, S> where S: UnwindSafe, ","synthetic":true,"types":["maplibre::schedule::MultiStage"]},{"text":"impl !UnwindSafe for Schedule","synthetic":true,"types":["maplibre::schedule::Schedule"]},{"text":"impl<E> UnwindSafe for PopulateTileStore<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::populate_tile_store_stage::PopulateTileStore"]},{"text":"impl<E> UnwindSafe for RequestStage<E> where <E as Environment>::AsyncProcedureCall: RefUnwindSafe, <E as Environment>::HttpClient: RefUnwindSafe, <E as Environment>::MapWindowConfig: RefUnwindSafe, <E as Environment>::Scheduler: RefUnwindSafe, ","synthetic":true,"types":["maplibre::stages::request_stage::RequestStage"]},{"text":"impl<T, HC, C> UnwindSafe for HeadedPipelineProcessor<T, HC, C> where C: UnwindSafe, HC: UnwindSafe, T: UnwindSafe, ","synthetic":true,"types":["maplibre::stages::HeadedPipelineProcessor"]},{"text":"impl<E> UnwindSafe for Kernel<E> where <E as Environment>::AsyncProcedureCall: UnwindSafe, <E as Environment>::HttpClient: UnwindSafe, <E as Environment>::MapWindowConfig: UnwindSafe, <E as Environment>::Scheduler: UnwindSafe, ","synthetic":true,"types":["maplibre::kernel::Kernel"]},{"text":"impl<E> UnwindSafe for KernelBuilder<E> where <E as Environment>::AsyncProcedureCall: UnwindSafe, <E as Environment>::HttpClient: UnwindSafe, <E as Environment>::MapWindowConfig: UnwindSafe, <E as Environment>::Scheduler: UnwindSafe, ","synthetic":true,"types":["maplibre::kernel::KernelBuilder"]},{"text":"impl !UnwindSafe for MapContextState","synthetic":true,"types":["maplibre::map::MapContextState"]},{"text":"impl<E> !UnwindSafe for Map<E>","synthetic":true,"types":["maplibre::map::Map"]},{"text":"impl UnwindSafe for World","synthetic":true,"types":["maplibre::world::World"]},{"text":"impl UnwindSafe for ViewState","synthetic":true,"types":["maplibre::world::ViewState"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/geozero/feature_processor/trait.FeatureProcessor.js b/docs/api/implementors/geozero/feature_processor/trait.FeatureProcessor.js
index 9d03bc7a..1984c4d9 100644
--- a/docs/api/implementors/geozero/feature_processor/trait.FeatureProcessor.js
+++ b/docs/api/implementors/geozero/feature_processor/trait.FeatureProcessor.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl FeatureProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl<I: Add + From<VertexId> + MaxIndex> FeatureProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]}];
+implementors["maplibre"] = [{"text":"impl<I: Add + From<VertexId> + MaxIndex> FeatureProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl FeatureProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/geozero/geometry_processor/trait.GeomProcessor.js b/docs/api/implementors/geozero/geometry_processor/trait.GeomProcessor.js
index ab7a3361..408f37b0 100644
--- a/docs/api/implementors/geozero/geometry_processor/trait.GeomProcessor.js
+++ b/docs/api/implementors/geozero/geometry_processor/trait.GeomProcessor.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl GeomProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl<I: Add + From<VertexId> + MaxIndex> GeomProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]}];
+implementors["maplibre"] = [{"text":"impl<I: Add + From<VertexId> + MaxIndex> GeomProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl GeomProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/geozero/property_processor/trait.PropertyProcessor.js b/docs/api/implementors/geozero/property_processor/trait.PropertyProcessor.js
index 56059c11..eefd8955 100644
--- a/docs/api/implementors/geozero/property_processor/trait.PropertyProcessor.js
+++ b/docs/api/implementors/geozero/property_processor/trait.PropertyProcessor.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl PropertyProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]},{"text":"impl<I: Add + From<VertexId> + MaxIndex> PropertyProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]}];
+implementors["maplibre"] = [{"text":"impl<I: Add + From<VertexId> + MaxIndex> PropertyProcessor for ZeroTessellator<I>","synthetic":false,"types":["maplibre::tessellation::zero_tessellator::ZeroTessellator"]},{"text":"impl PropertyProcessor for IndexProcessor","synthetic":false,"types":["maplibre::io::geometry_index::IndexProcessor"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/lyon_tessellation/geometry_builder/trait.FillVertexConstructor.js b/docs/api/implementors/lyon_tessellation/geometry_builder/trait.FillVertexConstructor.js
index da24a77e..6b016837 100644
--- a/docs/api/implementors/lyon_tessellation/geometry_builder/trait.FillVertexConstructor.js
+++ b/docs/api/implementors/lyon_tessellation/geometry_builder/trait.FillVertexConstructor.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl FillVertexConstructor<ShaderVertex> for VertexConstructor","synthetic":false,"types":["maplibre::tessellation::VertexConstructor"]}];
+implementors["maplibre"] = [{"text":"impl FillVertexConstructor<ShaderVertex> for VertexConstructor","synthetic":false,"types":["maplibre::tessellation::VertexConstructor"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/implementors/lyon_tessellation/geometry_builder/trait.StrokeVertexConstructor.js b/docs/api/implementors/lyon_tessellation/geometry_builder/trait.StrokeVertexConstructor.js
index 61aa6655..5b5fdc7b 100644
--- a/docs/api/implementors/lyon_tessellation/geometry_builder/trait.StrokeVertexConstructor.js
+++ b/docs/api/implementors/lyon_tessellation/geometry_builder/trait.StrokeVertexConstructor.js
@@ -1,3 +1,3 @@
(function() {var implementors = {};
-implementors["maplibre"] = [{"text":"impl StrokeVertexConstructor<ShaderVertex> for VertexConstructor","synthetic":false,"types":["maplibre::tessellation::VertexConstructor"]}];
+implementors["maplibre"] = [{"text":"impl StrokeVertexConstructor<ShaderVertex> for VertexConstructor","synthetic":false,"types":["maplibre::tessellation::VertexConstructor"]}];
if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api/maplibre/all.html b/docs/api/maplibre/all.html
index c744f81a..2fb9c9b0 100644
--- a/docs/api/maplibre/all.html
+++ b/docs/api/maplibre/all.html
@@ -1 +1 @@
-
\ No newline at end of file
diff --git a/docs/api/maplibre/context/sidebar-items.js b/docs/api/maplibre/context/sidebar-items.js
index 67eee10f..0e270a7c 100644
--- a/docs/api/maplibre/context/sidebar-items.js
+++ b/docs/api/maplibre/context/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"struct":[["MapContext","Stores the context of the map."],["ViewState","Stores the camera configuration."]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"struct":[["MapContext","Stores the context of the map."]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/context/struct.MapContext.html b/docs/api/maplibre/context/struct.MapContext.html
index 0a19f931..1563b1bd 100644
--- a/docs/api/maplibre/context/struct.MapContext.html
+++ b/docs/api/maplibre/context/struct.MapContext.html
@@ -1,10 +1,9 @@
-MapContext in maplibre::context - Rust
The environment defines which types must be injected into maplibre at compile time.
+Essentially, this trait implements the
+dependency injection design pattern.
+By instantiating this trait at compile time with concrete types, it is possible to create
+different compile-time instances of maplibre.
+
\ No newline at end of file
diff --git a/docs/api/maplibre/environment/sidebar-items.js b/docs/api/maplibre/environment/sidebar-items.js
index 94fc85ec..5a636a64 100644
--- a/docs/api/maplibre/environment/sidebar-items.js
+++ b/docs/api/maplibre/environment/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"trait":[["Environment",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"trait":[["Environment","The environment defines which types must be injected into maplibre at compile time. Essentially, this trait implements the dependency injection design pattern. By instantiating this trait at compile time with concrete types, it is possible to create different compile-time instances of maplibre."]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/environment/trait.Environment.html b/docs/api/maplibre/environment/trait.Environment.html
index 1bc9712c..b3c0173b 100644
--- a/docs/api/maplibre/environment/trait.Environment.html
+++ b/docs/api/maplibre/environment/trait.Environment.html
@@ -1,7 +1,13 @@
-Environment in maplibre::environment - Rust
The environment defines which types must be injected into maplibre at compile time.
+Essentially, this trait implements the
+dependency injection design pattern.
+By instantiating this trait at compile time with concrete types, it is possible to create
+different compile-time instances of maplibre.
+
For example it is possible to change the way tasks are scheduled. It is also possible to change
+the HTTP implementation for fetching tiles over the network.
\ No newline at end of file
diff --git a/docs/api/maplibre/error/enum.Error.html b/docs/api/maplibre/error/enum.Error.html
index d96babab..cdc8a76b 100644
--- a/docs/api/maplibre/error/enum.Error.html
+++ b/docs/api/maplibre/error/enum.Error.html
@@ -1,15 +1,19 @@
-Error in maplibre::error - Rust
Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be
further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more
Instruments this type with the currentSpan, returning an
diff --git a/docs/api/maplibre/error/index.html b/docs/api/maplibre/error/index.html
index 7ccbf8af..bf8a1d0e 100644
--- a/docs/api/maplibre/error/index.html
+++ b/docs/api/maplibre/error/index.html
@@ -1,3 +1,3 @@
-
\ No newline at end of file
diff --git a/docs/api/maplibre/error/sidebar-items.js b/docs/api/maplibre/error/sidebar-items.js
index bab2568e..75cb2449 100644
--- a/docs/api/maplibre/error/sidebar-items.js
+++ b/docs/api/maplibre/error/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"enum":[["Error","Enumeration of errors which can happen during the operation of the library."],["RenderError",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"enum":[["Error","Enumeration of errors which can happen during the operation of the library."]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/event_loop/index.html b/docs/api/maplibre/event_loop/index.html
new file mode 100644
index 00000000..fccbe012
--- /dev/null
+++ b/docs/api/maplibre/event_loop/index.html
@@ -0,0 +1 @@
+maplibre::event_loop - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/event_loop/sidebar-items.js b/docs/api/maplibre/event_loop/sidebar-items.js
new file mode 100644
index 00000000..9fcba969
--- /dev/null
+++ b/docs/api/maplibre/event_loop/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"trait":[["EventLoop",""],["EventLoopConfig",""],["EventLoopProxy",""]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/event_loop/trait.EventLoop.html b/docs/api/maplibre/event_loop/trait.EventLoop.html
new file mode 100644
index 00000000..1d85c1f8
--- /dev/null
+++ b/docs/api/maplibre/event_loop/trait.EventLoop.html
@@ -0,0 +1,6 @@
+EventLoop in maplibre::event_loop - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/event_loop/trait.EventLoopConfig.html b/docs/api/maplibre/event_loop/trait.EventLoopConfig.html
new file mode 100644
index 00000000..9c6e4582
--- /dev/null
+++ b/docs/api/maplibre/event_loop/trait.EventLoopConfig.html
@@ -0,0 +1,6 @@
+EventLoopConfig in maplibre::event_loop - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/event_loop/trait.EventLoopProxy.html b/docs/api/maplibre/event_loop/trait.EventLoopProxy.html
new file mode 100644
index 00000000..fef1d012
--- /dev/null
+++ b/docs/api/maplibre/event_loop/trait.EventLoopProxy.html
@@ -0,0 +1,3 @@
+EventLoopProxy in maplibre::event_loop - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/index.html b/docs/api/maplibre/index.html
index a9c16c9e..46f66869 100644
--- a/docs/api/maplibre/index.html
+++ b/docs/api/maplibre/index.html
@@ -1,4 +1,4 @@
-maplibre - Rust
A multi-platform library for rendering vector tile maps with WebGPU.
Maplibre-rs is a map renderer that can run natively on MacOS, Linux, Windows, Android, iOS and the web.
It takes advantage of Lyon to tessellate vector tiles and WebGPU to display them efficiently.
@@ -9,8 +9,8 @@ Maplibre-rs also has an headless mode (work in progress) that can gener
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/enum.Input.html b/docs/api/maplibre/io/apc/enum.Input.html
index 26255212..15187d44 100644
--- a/docs/api/maplibre/io/apc/enum.Input.html
+++ b/docs/api/maplibre/io/apc/enum.Input.html
@@ -1,9 +1,10 @@
-Input in maplibre::io::apc - Rust
The result of the tessellation of a tile.
-TessellatedLayer contains the result of the tessellation for a specific layer, otherwise
-UnavailableLayer if the layer doesn’t exist.
The result of the tessellation of a tile.
-TessellatedLayer contains the result of the tessellation for a specific layer, otherwise
-UnavailableLayer if the layer doesn’t exist.
APCs define an interface for performing work asynchronously.
+This work can be implemented through procedures which can be called asynchronously, hence the
+name AsyncProcedureCall or APC for short.
Type definitions for asynchronous procedure calls. These functions can be called in an
+AsyncProcedureCall. Functions of this type are required to be statically available at
+compile time. It is explicitly not possible to use closures, as they would require special
+serialization which is currently not supported.
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/sidebar-items.js b/docs/api/maplibre/io/apc/sidebar-items.js
index 353c2565..3afbcc53 100644
--- a/docs/api/maplibre/io/apc/sidebar-items.js
+++ b/docs/api/maplibre/io/apc/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"enum":[["Input",""],["Message","The result of the tessellation of a tile. `TessellatedLayer` contains the result of the tessellation for a specific layer, otherwise `UnavailableLayer` if the layer doesn’t exist."]],"struct":[["SchedulerAsyncProcedureCall",""],["SchedulerContext",""]],"trait":[["AsyncProcedureCall",""],["Context",""]],"type":[["AsyncProcedure",""],["AsyncProcedureFuture",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"enum":[["Input","Inputs for an [`AsyncProcedure`]"],["Message","The result of the tessellation of a tile. This is sent as a message from a worker to the caller of an [`AsyncProcedure`]."]],"struct":[["SchedulerAsyncProcedureCall",""],["SchedulerContext",""]],"trait":[["AsyncProcedureCall","APCs define an interface for performing work asynchronously. This work can be implemented through procedures which can be called asynchronously, hence the name AsyncProcedureCall or APC for short."],["Context","Allows sending messages from workers to back to the caller."]],"type":[["AsyncProcedure","Type definitions for asynchronous procedure calls. These functions can be called in an [`AsyncProcedureCall`]. Functions of this type are required to be statically available at compile time. It is explicitly not possible to use closures, as they would require special serialization which is currently not supported."],["AsyncProcedureFuture",""]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/struct.SchedulerAsyncProcedureCall.html b/docs/api/maplibre/io/apc/struct.SchedulerAsyncProcedureCall.html
index 2e6954d9..638ac55e 100644
--- a/docs/api/maplibre/io/apc/struct.SchedulerAsyncProcedureCall.html
+++ b/docs/api/maplibre/io/apc/struct.SchedulerAsyncProcedureCall.html
@@ -1,8 +1,11 @@
-SchedulerAsyncProcedureCall in maplibre::io::apc - Rust
APCs define an interface for performing work asynchronously.
+This work can be implemented through procedures which can be called asynchronously, hence the
+name AsyncProcedureCall or APC for short.
+
APCs serve as an abstraction for doing work on a separate thread, and then getting responses
+back. An asynchronous procedure call can for example be performed by using message passing. In
+fact this could theoretically work over a network socket.
Based on whether the current platform supports shared-memory or not, the implementation of APCs
+might want to send the whole data from the worker to the caller back or just pointers to that
+data. The Transferables trait allows developers to define that and use different data
+layouts for different platforms.
One might wonder why this is called AsyncProcedureCall instead of MessagePassingInterface.
+The reason for this is quite simple. We are actually referencing and calling procedures which
+are defined in different threads, processes or hosts. That means, that an AsyncProcedureCall
+is actually distinct from a MessagePassingInterface.
We currently have two implementation for APCs. One uses the Tokio async runtime on native
+targets in SchedulerAsyncProcedureCall.
+For the web we implemented an alternative way to call APCs which is called
+[PassingAsyncProcedureCall]. This implementation does not depend on shared-memory compared to
+SchedulerAsyncProcedureCall. In fact, on the web we are currently not depending on
+shared-memory because that feature is hidden behind feature flags in browsers
+(see here.
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/trait.Context.html b/docs/api/maplibre/io/apc/trait.Context.html
index 6ae72656..4d45299f 100644
--- a/docs/api/maplibre/io/apc/trait.Context.html
+++ b/docs/api/maplibre/io/apc/trait.Context.html
@@ -1,4 +1,6 @@
-Context in maplibre::io::apc - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/type.AsyncProcedure.html b/docs/api/maplibre/io/apc/type.AsyncProcedure.html
index 2d764832..e85d2ccc 100644
--- a/docs/api/maplibre/io/apc/type.AsyncProcedure.html
+++ b/docs/api/maplibre/io/apc/type.AsyncProcedure.html
@@ -1 +1,5 @@
-AsyncProcedure in maplibre::io::apc - Rust
Type definitions for asynchronous procedure calls. These functions can be called in an
+AsyncProcedureCall. Functions of this type are required to be statically available at
+compile time. It is explicitly not possible to use closures, as they would require special
+serialization which is currently not supported.
+
\ No newline at end of file
diff --git a/docs/api/maplibre/io/apc/type.AsyncProcedureFuture.html b/docs/api/maplibre/io/apc/type.AsyncProcedureFuture.html
index 6e7d40a7..410034d0 100644
--- a/docs/api/maplibre/io/apc/type.AsyncProcedureFuture.html
+++ b/docs/api/maplibre/io/apc/type.AsyncProcedureFuture.html
@@ -1 +1 @@
-AsyncProcedureFuture in maplibre::io::apc - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/pipeline/index.html b/docs/api/maplibre/io/pipeline/index.html
index 750e8735..bd33925f 100644
--- a/docs/api/maplibre/io/pipeline/index.html
+++ b/docs/api/maplibre/io/pipeline/index.html
@@ -1,4 +1,4 @@
-maplibre::io::pipeline - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/pipeline/trait.Processable.html b/docs/api/maplibre/io/pipeline/trait.Processable.html
index 968cacd6..572cc2a4 100644
--- a/docs/api/maplibre/io/pipeline/trait.Processable.html
+++ b/docs/api/maplibre/io/pipeline/trait.Processable.html
@@ -1,6 +1,6 @@
-Processable in maplibre::io::pipeline - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/source_client/index.html b/docs/api/maplibre/io/source_client/index.html
index 08dea4a7..fcfb6f5b 100644
--- a/docs/api/maplibre/io/source_client/index.html
+++ b/docs/api/maplibre/io/source_client/index.html
@@ -1,7 +1,7 @@
-maplibre::io::source_client - Rust
On the web platform futures are not thread-safe (i.e. not Send). This means we need to tell
async_trait that these bounds should not be placed on the async trait:
diff --git a/docs/api/maplibre/io/source_client/sidebar-items.js b/docs/api/maplibre/io/source_client/sidebar-items.js
index c7b0265c..9cb0a4b0 100644
--- a/docs/api/maplibre/io/source_client/sidebar-items.js
+++ b/docs/api/maplibre/io/source_client/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"enum":[["SourceClient","Defines the different types of HTTP clients such as basic HTTP and Mbtiles. More types might be coming such as S3 and other cloud http clients."]],"struct":[["HttpSourceClient","Gives access to the HTTP client which can be of multiple types, see [crates::io::source_client::SourceClient]"]],"trait":[["HttpClient","On the web platform futures are not thread-safe (i.e. not Send). This means we need to tell async_trait that these bounds should not be placed on the async trait: https://github.com/dtolnay/async-trait/blob/b70720c4c1cc0d810b7446efda44f81310ee7bf2/README.md#non-threadsafe-futures"]],"type":[["HTTPClientFactory","A closure that returns a HTTP client."]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"struct":[["HttpSourceClient","Gives access to the HTTP client which can be of multiple types, see [crates::io::source_client::SourceClient]"],["SourceClient","Defines the different types of HTTP clients such as basic HTTP and Mbtiles. More types might be coming such as S3 and other cloud http clients."]],"trait":[["HttpClient","On the web platform futures are not thread-safe (i.e. not Send). This means we need to tell async_trait that these bounds should not be placed on the async trait: https://github.com/dtolnay/async-trait/blob/b70720c4c1cc0d810b7446efda44f81310ee7bf2/README.md#non-threadsafe-futures"]],"type":[["HTTPClientFactory","A closure that returns a HTTP client."]]};
\ No newline at end of file
diff --git a/docs/api/maplibre/io/source_client/struct.HttpSourceClient.html b/docs/api/maplibre/io/source_client/struct.HttpSourceClient.html
index c703c7dc..eda20e83 100644
--- a/docs/api/maplibre/io/source_client/struct.HttpSourceClient.html
+++ b/docs/api/maplibre/io/source_client/struct.HttpSourceClient.html
@@ -2,7 +2,7 @@
inner_client: HC,
}
Expand description
Gives access to the HTTP client which can be of multiple types,
see [crates::io::source_client::SourceClient]
Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
diff --git a/docs/api/maplibre/io/source_client/trait.HttpClient.html b/docs/api/maplibre/io/source_client/trait.HttpClient.html
index 3b1ee030..e2595677 100644
--- a/docs/api/maplibre/io/source_client/trait.HttpClient.html
+++ b/docs/api/maplibre/io/source_client/trait.HttpClient.html
@@ -4,5 +4,5 @@
async_trait that these bounds should not be placed on the async trait:
https://github.com/dtolnay/async-trait/blob/b70720c4c1cc0d810b7446efda44f81310ee7bf2/README.md#non-threadsafe-futures
Users of this library can decide whether futures from the HTTPClient are thread-safe or not via
-the future “no-thread-safe-futures”. Tokio futures are thread-safe.
\ No newline at end of file
diff --git a/docs/api/maplibre/io/tile_pipelines/fn.build_vector_tile_pipeline.html b/docs/api/maplibre/io/tile_pipelines/fn.build_vector_tile_pipeline.html
index 9c063a93..316e86cb 100644
--- a/docs/api/maplibre/io/tile_pipelines/fn.build_vector_tile_pipeline.html
+++ b/docs/api/maplibre/io/tile_pipelines/fn.build_vector_tile_pipeline.html
@@ -1 +1 @@
-build_vector_tile_pipeline in maplibre::io::tile_pipelines - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/tile_pipelines/index.html b/docs/api/maplibre/io/tile_pipelines/index.html
index ce5a99c7..b62e96e5 100644
--- a/docs/api/maplibre/io/tile_pipelines/index.html
+++ b/docs/api/maplibre/io/tile_pipelines/index.html
@@ -1 +1 @@
-maplibre::io::tile_pipelines - Rust
\ No newline at end of file
diff --git a/docs/api/maplibre/io/tile_pipelines/struct.IndexLayer.html b/docs/api/maplibre/io/tile_pipelines/struct.IndexLayer.html
index 6544af3b..d90bc86f 100644
--- a/docs/api/maplibre/io/tile_pipelines/struct.IndexLayer.html
+++ b/docs/api/maplibre/io/tile_pipelines/struct.IndexLayer.html
@@ -1,5 +1,5 @@
IndexLayer in maplibre::io::tile_pipelines - Rust