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 Error where
    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 @@ -List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Constants

\ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Constants

\ No newline at end of file diff --git a/docs/api/maplibre/benchmarking/tessellation/struct.OverAlignedVertexBuffer.html b/docs/api/maplibre/benchmarking/tessellation/struct.OverAlignedVertexBuffer.html index f361c4d9..c3ac400e 100644 --- a/docs/api/maplibre/benchmarking/tessellation/struct.OverAlignedVertexBuffer.html +++ b/docs/api/maplibre/benchmarking/tessellation/struct.OverAlignedVertexBuffer.html @@ -2,10 +2,10 @@ pub buffer: VertexBuffers<V, I>, pub usable_indices: u32, }
Expand description

Vertex buffer which includes additional padding to fulfill the wgpu::COPY_BUFFER_ALIGNMENT.

-

Fields

buffer: VertexBuffers<V, I>usable_indices: u32

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Fields

buffer: VertexBuffers<V, I>usable_indices: u32

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/benchmarking/tessellation/struct.VertexConstructor.html b/docs/api/maplibre/benchmarking/tessellation/struct.VertexConstructor.html index feb4f832..5b32b524 100644 --- a/docs/api/maplibre/benchmarking/tessellation/struct.VertexConstructor.html +++ b/docs/api/maplibre/benchmarking/tessellation/struct.VertexConstructor.html @@ -1,5 +1,5 @@ VertexConstructor in maplibre::benchmarking::tessellation - Rust

pub struct VertexConstructor {}
Expand description

Constructor for Fill and Stroke vertices.

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/benchmarking/tessellation/zero_tessellator/struct.ZeroTessellator.html b/docs/api/maplibre/benchmarking/tessellation/zero_tessellator/struct.ZeroTessellator.html index c8f2624d..26f9135a 100644 --- a/docs/api/maplibre/benchmarking/tessellation/zero_tessellator/struct.ZeroTessellator.html +++ b/docs/api/maplibre/benchmarking/tessellation/zero_tessellator/struct.ZeroTessellator.html @@ -6,8 +6,8 @@ pub feature_indices: Vec<u32>, current_index: usize, }

Expand description

Build tessellations with vectors.

-

Fields

path_builder: RefCell<Builder>path_open: boolis_point: boolbuffer: VertexBuffers<ShaderVertex, I>feature_indices: Vec<u32>current_index: usize

Implementations

Trait Implementations

Returns the “default value” for a type. Read more

-

End of feature processing

+

Fields

path_builder: RefCell<Builder>path_open: boolis_point: boolbuffer: VertexBuffers<ShaderVertex, I>feature_indices: Vec<u32>current_index: usize

Implementations

Trait Implementations

Returns the “default value” for a type. Read more

+

End of feature processing

Begin of dataset processing

End of dataset processing

Begin of feature processing

@@ -15,7 +15,7 @@

End of feature property processing

Begin of feature geometry processing

End of feature geometry processing

-

Process coordinate with x,y dimensions

+

Process coordinate with x,y dimensions

Begin of Point processing Read more

End of Point processing

Begin of MultiPoint processing Read more

@@ -51,8 +51,8 @@

End of PolyhedralSurface processing

Begin of Tin processing Read more

End of Tin processing

-

Process property value. Abort processing, if return value is true.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Process property value. Abort processing, if return value is true.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/context/index.html b/docs/api/maplibre/context/index.html index d0d5ffa0..562c6589 100644 --- a/docs/api/maplibre/context/index.html +++ b/docs/api/maplibre/context/index.html @@ -1,3 +1,2 @@ -maplibre::context - Rust

Structs

Stores the context of the map.

-

Stores the camera configuration.

+maplibre::context - Rust

Structs

Stores the context of the map.

\ 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
pub struct MapContext {
-    pub view_state: ViewState,
+MapContext in maplibre::context - Rust
pub struct MapContext {
     pub style: Style,
-    pub tile_repository: TileRepository,
+    pub world: World,
     pub renderer: Renderer,
 }
Expand description

Stores the context of the map.

-

Fields

view_state: ViewStatestyle: Styletile_repository: TileRepositoryrenderer: Renderer

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Fields

style: Styleworld: Worldrenderer: Renderer

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/environment/index.html b/docs/api/maplibre/environment/index.html index b36d8477..bbc93f3f 100644 --- a/docs/api/maplibre/environment/index.html +++ b/docs/api/maplibre/environment/index.html @@ -1 +1,6 @@ -maplibre::environment - Rust

\ No newline at end of file +maplibre::environment - Rust

Traits

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
Expand description

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.

+

Required Associated Types

Implementors

\ 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
pub enum Error {
-    Schedule,
+Error in maplibre::error - Rust
pub enum Error {
+    APC,
+    Scheduler,
     Network(String),
     Tesselation(TessellationError),
-    Render(RenderError),
+    Render(RenderError),
+    Generic(Cow<'static, str>),
 }
Expand description

Enumeration of errors which can happen during the operation of the library.

-

Variants

Schedule

Network(String)

Tesselation(TessellationError)

Render(RenderError)

Trait Implementations

Formats the value using the given formatter. Read more

+

Variants

APC

Scheduler

Network(String)

Tesselation(TessellationError)

Render(RenderError)

Generic(Cow<'static, str>)

Trait Implementations

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

Converts to this type from the input type.

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

@@ -23,7 +27,7 @@ generate &Any’s vtable from &Trait’s. R generate &mut Any’s vtable from &mut Trait’s. Read more

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

-

Returns the argument unchanged.

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, 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 @@ -maplibre::error - Rust

Expand description

Errors which can happen in various parts of the library.

+maplibre::error - Rust
Expand description

Errors which can happen in various parts of the library.

Enums

Enumeration of errors which can happen during the operation of the library.

-
\ No newline at end of file +
\ 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
pub trait EventLoop<ET: 'static + PartialEq> {
+    type EventLoopProxy: EventLoopProxy<ET>;
+
+    fn run<E>(self, map: Map<E>, max_frames: Option<u64>)
    where
        E: Environment,
        <E::MapWindowConfig as MapWindowConfig>::MapWindow: HeadedMapWindow
; + fn create_proxy(&self) -> Self::EventLoopProxy; +}

Required Associated Types

Required Methods

Implementors

\ 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
pub trait EventLoopConfig {
+    type EventType: 'static;
+    type EventLoopProxy: EventLoopProxy<Self::EventType>;
+
+    fn create_proxy() -> Self::EventLoopProxy;
+}

Required Associated Types

Required Methods

Implementors

\ 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
pub trait EventLoopProxy<T: 'static> {
+    fn send_event(&self, event: T);
+}

Required Methods

Implementors

\ 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
Expand description

Maplibre-rs

+maplibre - Rust
Expand description

Maplibre-rs

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

maplibre = "0.0.2"

Modules

Collection of utilities used to perform certain calculations more conveniently.

Provides utilities related to coordinates.

Errors which can happen in various parts of the library.

-

Handles IO related processing as well as multithreading.

-

Handles platform specific code. Depending on the compilation target, different +

Handles IO related processing as well as multithreading.

+

Handles platform specific code. Depending on the compilation target, different parts of this module are used.

This module implements the rendering algorithm of maplibre-rs. It manages the whole communication with the GPU.

@@ -20,7 +20,5 @@ communication with the GPU.

Nested message and enum types in Tile.

Utils which are used internally

Utilities for the window system.

-

Macros

Macro to define a new label trait

-

Structs

The Map defines the public interface of the map renderer.

-

Stores the map configuration before the map’s state has been fully initialized.

-
\ No newline at end of file +

Macros

Macro to define a new label trait

+
\ 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
Expand description

Inputs for an AsyncProcedure

+

Variants

TileRequest(TileRequest)

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/io/apc/enum.Message.html b/docs/api/maplibre/io/apc/enum.Message.html index 4fe4a0a4..a7f4b6e2 100644 --- a/docs/api/maplibre/io/apc/enum.Message.html +++ b/docs/api/maplibre/io/apc/enum.Message.html @@ -1,11 +1,15 @@ -Message in maplibre::io::apc - Rust
pub enum Message<T: Transferables> {
+Message in maplibre::io::apc - Rust
pub enum Message<T: Transferables> {
     TileTessellated(T::TileTessellated),
     UnavailableLayer(T::UnavailableLayer),
     TessellatedLayer(T::TessellatedLayer),
-}
Expand description

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.

-

Variants

TileTessellated(T::TileTessellated)

UnavailableLayer(T::UnavailableLayer)

TessellatedLayer(T::TessellatedLayer)

Trait Implementations

Returns a copy of the value. Read more

+}
Expand description

The result of the tessellation of a tile. This is sent as a message from a worker to the caller +of an AsyncProcedure.

+
    +
  • TessellatedLayer contains the result of the tessellation for a specific layer.
  • +
  • UnavailableLayer is sent if a requested layer is not found.
  • +
  • TileTessellated is sent if processing of a tile finished.
  • +
+

Variants

TileTessellated(T::TileTessellated)

UnavailableLayer(T::UnavailableLayer)

TessellatedLayer(T::TessellatedLayer)

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/io/apc/index.html b/docs/api/maplibre/io/apc/index.html index 2f7fa74b..4b87592d 100644 --- a/docs/api/maplibre/io/apc/index.html +++ b/docs/api/maplibre/io/apc/index.html @@ -1,4 +1,12 @@ -maplibre::io::apc - Rust

Structs

Enums

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.

-

Traits

Type Definitions

\ No newline at end of file +maplibre::io::apc - Rust

Structs

Enums

Inputs for an AsyncProcedure

+

The result of the tessellation of a tile. This is sent as a message from a worker to the caller +of an AsyncProcedure.

+

Traits

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.

+

Allows sending messages from workers to back to the caller.

+

Type Definitions

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
pub struct SchedulerAsyncProcedureCall<HC: HttpClient, S: Scheduler> {
+SchedulerAsyncProcedureCall in maplibre::io::apc - Rust
pub struct SchedulerAsyncProcedureCall<HC: HttpClient, S: Scheduler> {
     channel: (Sender<Message<DefaultTransferables>>, Receiver<Message<DefaultTransferables>>),
     http_client: HC,
     scheduler: S,
-}

Fields

channel: (Sender<Message<DefaultTransferables>>, Receiver<Message<DefaultTransferables>>)http_client: HCscheduler: S

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

channel: (Sender<Message<DefaultTransferables>>, Receiver<Message<DefaultTransferables>>)http_client: HCscheduler: S

Implementations

Trait Implementations

Try to receive a message non-blocking.

+

Call an AsyncProcedure using some Input. This function is non-blocking and +returns immediately. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/apc/struct.SchedulerContext.html b/docs/api/maplibre/io/apc/struct.SchedulerContext.html index 081f49cf..cf7a60e7 100644 --- a/docs/api/maplibre/io/apc/struct.SchedulerContext.html +++ b/docs/api/maplibre/io/apc/struct.SchedulerContext.html @@ -1,9 +1,10 @@ -SchedulerContext in maplibre::io::apc - Rust

Fields

sender: Sender<Message<T>>source_client: SourceClient<HC>

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Send a message back to the caller.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/apc/trait.AsyncProcedureCall.html b/docs/api/maplibre/io/apc/trait.AsyncProcedureCall.html index b096545b..49aa53a7 100644 --- a/docs/api/maplibre/io/apc/trait.AsyncProcedureCall.html +++ b/docs/api/maplibre/io/apc/trait.AsyncProcedureCall.html @@ -1,6 +1,38 @@ -AsyncProcedureCall in maplibre::io::apc - Rust

pub trait AsyncProcedureCall<T: Transferables, HC: HttpClient>: 'static {
-    type Context: Context<T, HC> + Send;
+AsyncProcedureCall in maplibre::io::apc - Rust
pub trait AsyncProcedureCall<HC: HttpClient>: 'static {
+    type Context: Context<Self::Transferables, HC> + Send;
+    type Transferables: Transferables;
 
-    fn receive(&mut self) -> Option<Message<T>>;
-    fn schedule(&self, input: Input, procedure: AsyncProcedure<Self::Context>);
-}

Required Associated Types

Required Methods

Implementors

\ No newline at end of file + fn receive(&self) -> Option<Message<Self::Transferables>>; + fn call(&self, input: Input, procedure: AsyncProcedure<Self::Context>); +}
Expand description

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.

+

It is possible to schedule work on a remote host by calling AsyncProcedureCall::call() +and getting the results back by calling the non-blocking function +AsyncProcedureCall::receive(). The AsyncProcedureCall::receive() function returns a +struct which implements Transferables.

+

Transferables

+

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.

+

Message Passing vs APC

+

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.

+

Current Implementations

+

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.

+

Required Associated Types

Required Methods

Try to receive a message non-blocking.

+

Call an AsyncProcedure using some Input. This function is non-blocking and +returns immediately.

+

Implementors

\ 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
pub trait Context<T: Transferables, HC: HttpClient>: Send + 'static {
-    fn send(&self, data: Message<T>);
-    fn source_client(&self) -> &SourceClient<HC>;
-}

Required Methods

Implementors

\ No newline at end of file +Context in maplibre::io::apc - Rust
pub trait Context<T: Transferables, HC: HttpClient>: Send + 'static {
+    fn send(&self, data: Message<T>) -> Result<(), Error>;
+    fn source_client(&self) -> &SourceClient<HC>;
+}
Expand description

Allows sending messages from workers to back to the caller.

+

Required Methods

Send a message back to the caller.

+

Implementors

\ 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 Definition maplibre::io::apc::AsyncProcedure

source · []
pub type AsyncProcedure<C> = fn(input: Input, context: C) -> AsyncProcedureFuture;
\ No newline at end of file +AsyncProcedure in maplibre::io::apc - Rust

Type Definition maplibre::io::apc::AsyncProcedure

source · []
pub type AsyncProcedure<C> = fn(input: Input, context: C) -> AsyncProcedureFuture;
Expand description

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
pub type AsyncProcedureFuture = Pin<Box<dyn Future<Output = ()> + Send + 'static>>;
\ No newline at end of file +AsyncProcedureFuture in maplibre::io::apc - Rust
pub type AsyncProcedureFuture = Pin<Box<dyn Future<Output = ()> + Send + 'static>>;
\ 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

Structs

A pipeline which consists of multiple steps. Steps are Processable workloads. Later steps +maplibre::io::pipeline - Rust

Structs

A pipeline which consists of multiple steps. Steps are Processable workloads. Later steps depend on previous ones.

Context which is available to each step within a DataPipeline

Marks the end of a DataPipeline

diff --git a/docs/api/maplibre/io/pipeline/struct.ClosureProcessable.html b/docs/api/maplibre/io/pipeline/struct.ClosureProcessable.html index db8206e6..2e26b281 100644 --- a/docs/api/maplibre/io/pipeline/struct.ClosureProcessable.html +++ b/docs/api/maplibre/io/pipeline/struct.ClosureProcessable.html @@ -1,8 +1,8 @@ -ClosureProcessable in maplibre::io::pipeline - Rust
pub struct ClosureProcessable<F, I, O> where
    F: Fn(I, &mut PipelineContext) -> O, 
{ +ClosureProcessable in maplibre::io::pipeline - Rust
pub struct ClosureProcessable<F, I, O> where
    F: Fn(I, &mut PipelineContext) -> O, 
{ func: F, phantom_i: PhantomData<I>, -}

Fields

func: Fphantom_i: PhantomData<I>

Trait Implementations

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

func: Fphantom_i: PhantomData<I>

Trait Implementations

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/pipeline/struct.DataPipeline.html b/docs/api/maplibre/io/pipeline/struct.DataPipeline.html index b41d574b..03aa70bc 100644 --- a/docs/api/maplibre/io/pipeline/struct.DataPipeline.html +++ b/docs/api/maplibre/io/pipeline/struct.DataPipeline.html @@ -1,9 +1,9 @@ -DataPipeline in maplibre::io::pipeline - Rust

pub struct DataPipeline<P, N> where
    P: Processable,
    N: Processable<Input = P::Output>, 
{ +DataPipeline in maplibre::io::pipeline - Rust
pub struct DataPipeline<P, N> where
    P: Processable,
    N: Processable<Input = P::Output>, 
{ step: P, next_step: N, }
Expand description

A pipeline which consists of multiple steps. Steps are Processable workloads. Later steps depend on previous ones.

-

Fields

step: Pnext_step: N

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Fields

step: Pnext_step: N

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/pipeline/struct.PipelineContext.html b/docs/api/maplibre/io/pipeline/struct.PipelineContext.html index d9b85f21..405e3fed 100644 --- a/docs/api/maplibre/io/pipeline/struct.PipelineContext.html +++ b/docs/api/maplibre/io/pipeline/struct.PipelineContext.html @@ -1,7 +1,7 @@ -PipelineContext in maplibre::io::pipeline - Rust

pub struct PipelineContext {
+PipelineContext in maplibre::io::pipeline - Rust
pub struct PipelineContext {
     processor: Box<dyn PipelineProcessor>,
 }
Expand description

Context which is available to each step within a DataPipeline

-

Fields

processor: Box<dyn PipelineProcessor>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Fields

processor: Box<dyn PipelineProcessor>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/pipeline/struct.PipelineEnd.html b/docs/api/maplibre/io/pipeline/struct.PipelineEnd.html index db7303b4..98d139e5 100644 --- a/docs/api/maplibre/io/pipeline/struct.PipelineEnd.html +++ b/docs/api/maplibre/io/pipeline/struct.PipelineEnd.html @@ -1,8 +1,8 @@ -PipelineEnd in maplibre::io::pipeline - Rust

pub struct PipelineEnd<I> {
+PipelineEnd in maplibre::io::pipeline - Rust
pub struct PipelineEnd<I> {
     phantom: PhantomData<I>,
 }
Expand description

Marks the end of a DataPipeline

-

Fields

phantom: PhantomData<I>

Trait Implementations

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Fields

phantom: PhantomData<I>

Trait Implementations

Returns the “default value” for a type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/pipeline/trait.PipelineProcessor.html b/docs/api/maplibre/io/pipeline/trait.PipelineProcessor.html index e7b241f4..6bee2c41 100644 --- a/docs/api/maplibre/io/pipeline/trait.PipelineProcessor.html +++ b/docs/api/maplibre/io/pipeline/trait.PipelineProcessor.html @@ -1,7 +1,7 @@ -PipelineProcessor in maplibre::io::pipeline - Rust

pub trait PipelineProcessor: Downcast {
-    fn tile_finished(&mut self, _coords: &WorldTileCoords) { ... }
-    fn layer_unavailable(&mut self, _coords: &WorldTileCoords, _layer_name: &str) { ... }
-    fn layer_tesselation_finished(
        &mut self,
        _coords: &WorldTileCoords,
        _buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
        _feature_indices: Vec<u32>,
        _layer_data: Layer
    ) { ... } - fn layer_indexing_finished(
        &mut self,
        _coords: &WorldTileCoords,
        _geometries: Vec<IndexedGeometry<f64>>
    ) { ... } +PipelineProcessor in maplibre::io::pipeline - Rust
pub trait PipelineProcessor: Downcast {
+    fn tile_finished(&mut self, _coords: &WorldTileCoords) -> Result<(), Error> { ... }
+    fn layer_unavailable(
        &mut self,
        _coords: &WorldTileCoords,
        _layer_name: &str
    ) -> Result<(), Error> { ... } + fn layer_tesselation_finished(
        &mut self,
        _coords: &WorldTileCoords,
        _buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
        _feature_indices: Vec<u32>,
        _layer_data: Layer
    ) -> Result<(), Error> { ... } + fn layer_indexing_finished(
        &mut self,
        _coords: &WorldTileCoords,
        _geometries: Vec<IndexedGeometry<f64>>
    ) -> Result<(), Error> { ... } }
Expand description

Processes events which happen during the pipeline execution

-

Provided Methods

Implementors

\ No newline at end of file +

Provided Methods

Implementors

\ 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
pub trait Processable {
+Processable in maplibre::io::pipeline - Rust
pub trait Processable {
     type Input;
     type Output;
 
     fn process(
        &self,
        input: Self::Input,
        context: &mut PipelineContext
    ) -> Self::Output; -}

Required Associated Types

Required Methods

Implementations on Foreign Types

Implementors

\ No newline at end of file +}

Required Associated Types

Required Methods

Implementations on Foreign Types

Implementors

\ 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
Expand description

HTTP client.

+maplibre::io::source_client - Rust
Expand description

HTTP client.

Structs

Gives access to the HTTP client which can be of multiple types, see [crates::io::source_client::SourceClient]

-

Enums

Defines the different types of HTTP clients such as basic HTTP and Mbtiles. +

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.

Traits

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]

-

Fields

inner_client: HC

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Fields

inner_client: HC

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/io/source_client/enum.SourceClient.html b/docs/api/maplibre/io/source_client/struct.SourceClient.html similarity index 71% rename from docs/api/maplibre/io/source_client/enum.SourceClient.html rename to docs/api/maplibre/io/source_client/struct.SourceClient.html index 03b1c27c..8605d31b 100644 --- a/docs/api/maplibre/io/source_client/enum.SourceClient.html +++ b/docs/api/maplibre/io/source_client/struct.SourceClient.html @@ -1,11 +1,10 @@ -SourceClient in maplibre::io::source_client - Rust
pub enum SourceClient<HC> where
    HC: HttpClient
{ - Http(HttpSourceClient<HC>), - Mbtiles {}, +SourceClient in maplibre::io::source_client - Rust
pub struct SourceClient<HC> where
    HC: HttpClient
{ + http: HttpSourceClient<HC>, }
Expand description

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.

-

Variants

Http(HttpSourceClient<HC>)

Mbtiles

Fields

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Fields

http: HttpSourceClient<HC>

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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.

-

Required Methods

Implementors

\ No newline at end of file +the future “thread-safe-futures”. Tokio futures are thread-safe.

+

Required Methods

Implementors

\ 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
pub fn build_vector_tile_pipeline(
) -> impl Processable<Input = <ParseTile as Processable>::Input>
\ No newline at end of file +build_vector_tile_pipeline in maplibre::io::tile_pipelines - Rust
pub fn build_vector_tile_pipeline(
) -> impl Processable<Input = <ParseTile as Processable>::Input>
\ 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 +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
pub struct IndexLayer;

Trait Implementations

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/tile_pipelines/struct.TessellateLayer.html b/docs/api/maplibre/io/tile_pipelines/struct.TessellateLayer.html index e7f97af7..cd30eca9 100644 --- a/docs/api/maplibre/io/tile_pipelines/struct.TessellateLayer.html +++ b/docs/api/maplibre/io/tile_pipelines/struct.TessellateLayer.html @@ -1,5 +1,5 @@ -TessellateLayer in maplibre::io::tile_pipelines - Rust

pub struct TessellateLayer;

Trait Implementations

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+TessellateLayer in maplibre::io::tile_pipelines - Rust
pub struct TessellateLayer;

Trait Implementations

Returns the “default value” for a type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/tile_repository/enum.StoredLayer.html b/docs/api/maplibre/io/tile_repository/enum.StoredLayer.html index a7b5b200..e04c2eeb 100644 --- a/docs/api/maplibre/io/tile_repository/enum.StoredLayer.html +++ b/docs/api/maplibre/io/tile_repository/enum.StoredLayer.html @@ -1,4 +1,4 @@ -StoredLayer in maplibre::io::tile_repository - Rust

pub enum StoredLayer {
+StoredLayer in maplibre::io::tile_repository - Rust
pub enum StoredLayer {
     UnavailableLayer {
         coords: WorldTileCoords,
         layer_name: String,
@@ -6,12 +6,14 @@
     TessellatedLayer {
         coords: WorldTileCoords,
         layer_name: String,
-        buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
+        buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
         feature_indices: Vec<u32>,
     },
 }
Expand description

A layer which is stored for future use.

-

Variants

UnavailableLayer

Fields

layer_name: String

TessellatedLayer

Fields

layer_name: String
feature_indices: Vec<u32>

Holds for each feature the count of indices.

-

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Variants

UnavailableLayer

Fields

layer_name: String

TessellatedLayer

Fields

layer_name: String
feature_indices: Vec<u32>

Holds for each feature the count of indices.

+

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can @@ -33,6 +35,9 @@ further downcast into Arc<ConcreteType> where That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

diff --git a/docs/api/maplibre/io/tile_repository/enum.TileStatus.html b/docs/api/maplibre/io/tile_repository/enum.TileStatus.html index b6211115..29b2a953 100644 --- a/docs/api/maplibre/io/tile_repository/enum.TileStatus.html +++ b/docs/api/maplibre/io/tile_repository/enum.TileStatus.html @@ -1,11 +1,13 @@ -TileStatus in maplibre::io::tile_repository - Rust

Variants

Pending

Failed

Success

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can @@ -28,6 +30,9 @@ further downcast into Arc<ConcreteType> where That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

diff --git a/docs/api/maplibre/io/tile_repository/index.html b/docs/api/maplibre/io/tile_repository/index.html index d9d6849d..74c9bde2 100644 --- a/docs/api/maplibre/io/tile_repository/index.html +++ b/docs/api/maplibre/io/tile_repository/index.html @@ -1,4 +1,4 @@ -maplibre::io::tile_repository - Rust
Expand description

Tile cache.

+maplibre::io::tile_repository - Rust
Expand description

Tile cache.

Structs

Stores multiple StoredLayers.

Stores and provides access to a quad tree of cached tiles with world tile coords.

Enums

A layer which is stored for future use.

diff --git a/docs/api/maplibre/io/tile_repository/struct.StoredTile.html b/docs/api/maplibre/io/tile_repository/struct.StoredTile.html index 573b2861..8e2c457f 100644 --- a/docs/api/maplibre/io/tile_repository/struct.StoredTile.html +++ b/docs/api/maplibre/io/tile_repository/struct.StoredTile.html @@ -1,8 +1,11 @@ -StoredTile in maplibre::io::tile_repository - Rust
pub struct StoredTile {
+StoredTile in maplibre::io::tile_repository - Rust
pub struct StoredTile {
+    coords: WorldTileCoords,
     layers: Vec<StoredLayer>,
     status: TileStatus,
 }
Expand description

Stores multiple StoredLayers.

-

Fields

layers: Vec<StoredLayer>status: TileStatus

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Fields

coords: WorldTileCoordslayers: Vec<StoredLayer>status: TileStatus

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can @@ -24,6 +27,9 @@ further downcast into Arc<ConcreteType> where That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

diff --git a/docs/api/maplibre/io/tile_repository/struct.TileRepository.html b/docs/api/maplibre/io/tile_repository/struct.TileRepository.html index ab2ffc65..c499e3eb 100644 --- a/docs/api/maplibre/io/tile_repository/struct.TileRepository.html +++ b/docs/api/maplibre/io/tile_repository/struct.TileRepository.html @@ -1,20 +1,17 @@ -TileRepository in maplibre::io::tile_repository - Rust
pub struct TileRepository {
+TileRepository in maplibre::io::tile_repository - Rust
pub struct TileRepository {
     tree: BTreeMap<Quadkey, StoredTile>,
 }
Expand description

Stores and provides access to a quad tree of cached tiles with world tile coords.

-

Fields

tree: BTreeMap<Quadkey, StoredTile>

Implementations

Inserts a tessellated layer into the quad tree at its world tile coords. +

Fields

tree: BTreeMap<Quadkey, StoredTile>

Implementations

Inserts a tessellated layer into the quad tree at its world tile coords. If the space is vacant, the tessellated layer is inserted into a new -[crate::io::tile_repository::CachedTile]. +crate::io::tile_repository::StoredLayer. If the space is occupied, the tessellated layer is added to the current -[crate::io::tile_repository::CachedTile].

-

Returns the list of tessellated layers at the given world tile coords. None if tile is +crate::io::tile_repository::StoredLayer.

+

Returns the list of tessellated layers at the given world tile coords. None if tile is missing from the cache.

-

Create a new tile.

-

Checks if a layer has been fetched.

-

Checks if a layer has been fetched.

-

Removes all the cached tessellate layers that are not contained within the given -layers hashset.

-

Checks if a layer is missing from the given layers set at the given coords.

-

Trait Implementations

Returns the “default value” for a type. Read more

+

Create a new tile.

+

Checks if a layer has been fetched.

+

Checks if a layer has been fetched.

+

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/io/transferables/struct.DefaultTessellatedLayer.html b/docs/api/maplibre/io/transferables/struct.DefaultTessellatedLayer.html index fdcd769c..18b5ca2d 100644 --- a/docs/api/maplibre/io/transferables/struct.DefaultTessellatedLayer.html +++ b/docs/api/maplibre/io/transferables/struct.DefaultTessellatedLayer.html @@ -1,10 +1,10 @@ DefaultTessellatedLayer in maplibre::io::transferables - Rust
pub struct DefaultTessellatedLayer {
     pub coords: WorldTileCoords,
-    pub buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
+    pub buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
     pub feature_indices: Vec<u32>,
     pub layer_data: Layer,
-}

Fields

coords: WorldTileCoordsbuffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>feature_indices: Vec<u32>

Holds for each feature the count of indices.

-
layer_data: Layer

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

coords: WorldTileCoordsbuffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>feature_indices: Vec<u32>

Holds for each feature the count of indices.

+
layer_data: Layer

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/io/transferables/struct.DefaultTransferables.html b/docs/api/maplibre/io/transferables/struct.DefaultTransferables.html index 03efae9c..2cd2cdea 100644 --- a/docs/api/maplibre/io/transferables/struct.DefaultTransferables.html +++ b/docs/api/maplibre/io/transferables/struct.DefaultTransferables.html @@ -1,4 +1,4 @@ -DefaultTransferables in maplibre::io::transferables - Rust

pub struct DefaultTransferables;

Trait Implementations

Returns a copy of the value. Read more

+DefaultTransferables in maplibre::io::transferables - Rust
pub struct DefaultTransferables;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/io/transferables/trait.TessellatedLayer.html b/docs/api/maplibre/io/transferables/trait.TessellatedLayer.html index f06c69b9..1998fba6 100644 --- a/docs/api/maplibre/io/transferables/trait.TessellatedLayer.html +++ b/docs/api/maplibre/io/transferables/trait.TessellatedLayer.html @@ -1,4 +1,4 @@ TessellatedLayer in maplibre::io::transferables - Rust
pub trait TessellatedLayer: Send {
-    fn new(
        coords: WorldTileCoords,
        buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
        feature_indices: Vec<u32>,
        layer_data: Layer
    ) -> Self; + fn new(
        coords: WorldTileCoords,
        buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
        feature_indices: Vec<u32>,
        layer_data: Layer
    ) -> Self; fn to_stored_layer(self) -> StoredLayer; -}

Required Methods

Implementors

\ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/docs/api/maplibre/kernel/index.html b/docs/api/maplibre/kernel/index.html new file mode 100644 index 00000000..a9999376 --- /dev/null +++ b/docs/api/maplibre/kernel/index.html @@ -0,0 +1,5 @@ +maplibre::kernel - Rust

Structs

Holds references to core constructs of maplibre. Based on the compile-time initialization +different implementations for handling windows, asynchronous work, or data sources are provided +through a Kernel.

+

A convenient builder for Kernels.

+
\ No newline at end of file diff --git a/docs/api/maplibre/kernel/sidebar-items.js b/docs/api/maplibre/kernel/sidebar-items.js new file mode 100644 index 00000000..e3b66423 --- /dev/null +++ b/docs/api/maplibre/kernel/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["Kernel","Holds references to core constructs of maplibre. Based on the compile-time initialization different implementations for handling windows, asynchronous work, or data sources are provided through a [`Kernel`]."],["KernelBuilder","A convenient builder for Kernels."]]}; \ No newline at end of file diff --git a/docs/api/maplibre/kernel/struct.Kernel.html b/docs/api/maplibre/kernel/struct.Kernel.html new file mode 100644 index 00000000..032c3f3b --- /dev/null +++ b/docs/api/maplibre/kernel/struct.Kernel.html @@ -0,0 +1,42 @@ +Kernel in maplibre::kernel - Rust
pub struct Kernel<E: Environment> {
+    map_window_config: E::MapWindowConfig,
+    apc: E::AsyncProcedureCall,
+    scheduler: E::Scheduler,
+    source_client: SourceClient<E::HttpClient>,
+}
Expand description

Holds references to core constructs of maplibre. Based on the compile-time initialization +different implementations for handling windows, asynchronous work, or data sources are provided +through a Kernel.

+

An Environment defines the types which are used.

+

A Kernel lives as long as a Map usually. It is shared through out various +components of the maplibre library.

+

Fields

map_window_config: E::MapWindowConfigapc: E::AsyncProcedureCallscheduler: E::Schedulersource_client: SourceClient<E::HttpClient>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

+

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

+

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

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/docs/api/maplibre/kernel/struct.KernelBuilder.html b/docs/api/maplibre/kernel/struct.KernelBuilder.html new file mode 100644 index 00000000..1b40fdc1 --- /dev/null +++ b/docs/api/maplibre/kernel/struct.KernelBuilder.html @@ -0,0 +1,37 @@ +KernelBuilder in maplibre::kernel - Rust
pub struct KernelBuilder<E: Environment> {
+    map_window_config: Option<E::MapWindowConfig>,
+    apc: Option<E::AsyncProcedureCall>,
+    scheduler: Option<E::Scheduler>,
+    http_client: Option<E::HttpClient>,
+}
Expand description

A convenient builder for Kernels.

+

Fields

map_window_config: Option<E::MapWindowConfig>apc: Option<E::AsyncProcedureCall>scheduler: Option<E::Scheduler>http_client: Option<E::HttpClient>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

+

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

+

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

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/docs/api/maplibre/map/enum.MapContextState.html b/docs/api/maplibre/map/enum.MapContextState.html new file mode 100644 index 00000000..fe11ef13 --- /dev/null +++ b/docs/api/maplibre/map/enum.MapContextState.html @@ -0,0 +1,36 @@ +MapContextState in maplibre::map - Rust
pub enum MapContextState {
+    Ready(MapContext),
+    Pending {
+        style: Style,
+    },
+}

Variants

Ready(MapContext)

Pending

Fields

style: Style

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

+

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

+

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

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/docs/api/maplibre/map/index.html b/docs/api/maplibre/map/index.html new file mode 100644 index 00000000..c5067d86 --- /dev/null +++ b/docs/api/maplibre/map/index.html @@ -0,0 +1 @@ +maplibre::map - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/map/sidebar-items.js b/docs/api/maplibre/map/sidebar-items.js new file mode 100644 index 00000000..a1208fb3 --- /dev/null +++ b/docs/api/maplibre/map/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["MapContextState",""]],"struct":[["Map",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/struct.Map.html b/docs/api/maplibre/map/struct.Map.html similarity index 54% rename from docs/api/maplibre/struct.Map.html rename to docs/api/maplibre/map/struct.Map.html index 52637d72..a19df85e 100644 --- a/docs/api/maplibre/struct.Map.html +++ b/docs/api/maplibre/map/struct.Map.html @@ -1,19 +1,9 @@ -Map in maplibre - Rust
pub struct Map<E: Environment> {
-    pub(crate) map_schedule: Rc<RefCell<InteractiveMapSchedule<E>>>,
-    pub(crate) window: RefCell<Option<<E::MapWindowConfig as MapWindowConfig>::MapWindow>>,
-}
Expand description

The Map defines the public interface of the map renderer.

-

Fields

map_schedule: Rc<RefCell<InteractiveMapSchedule<E>>>window: RefCell<Option<<E::MapWindowConfig as MapWindowConfig>::MapWindow>>

Implementations

Starts the [crate::map_schedule::MapState] Runnable with the configured event loop.

-

Starts the [crate::map_schedule::MapState] Runnable with the configured event loop.

-
Arguments
-
    -
  • max_frames - Maximum number of frames per second.
  • -
-

Starts the MapState Runnable with the configured event loop.

-
Arguments
-
    -
  • max_frames - Optional maximum number of frames per second.
  • -
-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+Map in maplibre::map - Rust
pub struct Map<E: Environment> {
+    kernel: Rc<Kernel<E>>,
+    schedule: Schedule,
+    map_context: MapContextState,
+    window: <E::MapWindowConfig as MapWindowConfig>::MapWindow,
+}

Fields

kernel: Rc<Kernel<E>>schedule: Schedulemap_context: MapContextStatewindow: <E::MapWindowConfig as MapWindowConfig>::MapWindow

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can @@ -41,4 +31,4 @@ generate &mut Any’s vtable from &mut Trait WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/maplibre/map_schedule/index.html b/docs/api/maplibre/map_schedule/index.html deleted file mode 100644 index a32eacba..00000000 --- a/docs/api/maplibre/map_schedule/index.html +++ /dev/null @@ -1,2 +0,0 @@ -maplibre::map_schedule - Rust

Structs

Stores the state of the map, dispatches tile fetching and caching, tessellation and drawing.

-

Enums

\ No newline at end of file diff --git a/docs/api/maplibre/map_schedule/sidebar-items.js b/docs/api/maplibre/map_schedule/sidebar-items.js deleted file mode 100644 index c46921de..00000000 --- a/docs/api/maplibre/map_schedule/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -window.SIDEBAR_ITEMS = {"enum":[["EventuallyMapContext",""]],"struct":[["InteractiveMapSchedule","Stores the state of the map, dispatches tile fetching and caching, tessellation and drawing."],["PrematureMapContext",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/map_schedule/struct.InteractiveMapSchedule.html b/docs/api/maplibre/map_schedule/struct.InteractiveMapSchedule.html deleted file mode 100644 index cdf8befb..00000000 --- a/docs/api/maplibre/map_schedule/struct.InteractiveMapSchedule.html +++ /dev/null @@ -1,36 +0,0 @@ -InteractiveMapSchedule in maplibre::map_schedule - Rust
pub struct InteractiveMapSchedule<E: Environment> {
-    map_window_config: E::MapWindowConfig,
-    pub apc: Rc<RefCell<E::AsyncProcedureCall>>,
-    map_context: EventuallyMapContext,
-    schedule: Schedule,
-    suspended: bool,
-}
Expand description

Stores the state of the map, dispatches tile fetching and caching, tessellation and drawing.

-

Fields

map_window_config: E::MapWindowConfigapc: Rc<RefCell<E::AsyncProcedureCall>>map_context: EventuallyMapContextschedule: Schedulesuspended: bool

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

-

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

-

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s. Read more

-

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s. Read more

-

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

-

Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

-

Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

-
\ No newline at end of file diff --git a/docs/api/maplibre/platform/http_client/struct.ReqwestHttpClient.html b/docs/api/maplibre/platform/http_client/struct.ReqwestHttpClient.html index 3b9b137c..88c34436 100644 --- a/docs/api/maplibre/platform/http_client/struct.ReqwestHttpClient.html +++ b/docs/api/maplibre/platform/http_client/struct.ReqwestHttpClient.html @@ -1,9 +1,9 @@ ReqwestHttpClient in maplibre::platform::http_client - Rust
pub struct ReqwestHttpClient {
     client: ClientWithMiddleware,
-}

Fields

client: ClientWithMiddleware

Implementations

cache_path: Under which path should we cache requests.

+}

Fields

client: ClientWithMiddleware

Implementations

cache_path: Under which path should we cache requests.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/platform/noweb/http_client/index.html b/docs/api/maplibre/platform/noweb/http_client/index.html index da6d86d6..4618eba1 100644 --- a/docs/api/maplibre/platform/noweb/http_client/index.html +++ b/docs/api/maplibre/platform/noweb/http_client/index.html @@ -1 +1 @@ -maplibre::platform::noweb::http_client - Rust

\ No newline at end of file +maplibre::platform::noweb::http_client - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/platform/noweb/http_client/struct.ReqwestHttpClient.html b/docs/api/maplibre/platform/noweb/http_client/struct.ReqwestHttpClient.html index 9ff61472..350dabfa 100644 --- a/docs/api/maplibre/platform/noweb/http_client/struct.ReqwestHttpClient.html +++ b/docs/api/maplibre/platform/noweb/http_client/struct.ReqwestHttpClient.html @@ -1,9 +1,9 @@ ReqwestHttpClient in maplibre::platform::noweb::http_client - Rust
pub struct ReqwestHttpClient {
     client: ClientWithMiddleware,
-}

Fields

client: ClientWithMiddleware

Implementations

cache_path: Under which path should we cache requests.

+}

Fields

client: ClientWithMiddleware

Implementations

cache_path: Under which path should we cache requests.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/map_schedule/enum.EventuallyMapContext.html b/docs/api/maplibre/render/builder/enum.InitializationResult.html similarity index 60% rename from docs/api/maplibre/map_schedule/enum.EventuallyMapContext.html rename to docs/api/maplibre/render/builder/enum.InitializationResult.html index 7f1061a0..952bd3c2 100644 --- a/docs/api/maplibre/map_schedule/enum.EventuallyMapContext.html +++ b/docs/api/maplibre/render/builder/enum.InitializationResult.html @@ -1,11 +1,12 @@ -EventuallyMapContext in maplibre::map_schedule - Rust

pub enum EventuallyMapContext {
-    Full(MapContext),
-    Premature(PrematureMapContext),
-    _Uninitialized,
-}

Variants

Full(MapContext)

Premature(PrematureMapContext)

_Uninitialized

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +InitializationResult in maplibre::render::builder - Rust

pub enum InitializationResult {
+    Initialized(InitializedRenderer),
+    Uninizalized(UninitializedRenderer),
+    Gone,
+}

Variants

Initialized(InitializedRenderer)

Uninizalized(UninitializedRenderer)

Gone

Implementations

Trait Implementations

Returns the “default value” for a type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

@@ -13,23 +14,23 @@ further downcast into Rc<ConcreteType> where &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

-

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +

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

-

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an +

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

+

Should always be Self

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/maplibre/render/builder/index.html b/docs/api/maplibre/render/builder/index.html new file mode 100644 index 00000000..1fe9dd1c --- /dev/null +++ b/docs/api/maplibre/render/builder/index.html @@ -0,0 +1 @@ +maplibre::render::builder - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/builder/sidebar-items.js b/docs/api/maplibre/render/builder/sidebar-items.js new file mode 100644 index 00000000..60f0b40b --- /dev/null +++ b/docs/api/maplibre/render/builder/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["InitializationResult",""]],"struct":[["InitializedRenderer",""],["RendererBuilder",""],["UninitializedRenderer",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/map_schedule/struct.PrematureMapContext.html b/docs/api/maplibre/render/builder/struct.InitializedRenderer.html similarity index 63% rename from docs/api/maplibre/map_schedule/struct.PrematureMapContext.html rename to docs/api/maplibre/render/builder/struct.InitializedRenderer.html index e9d6841b..860476cc 100644 --- a/docs/api/maplibre/map_schedule/struct.PrematureMapContext.html +++ b/docs/api/maplibre/render/builder/struct.InitializedRenderer.html @@ -1,13 +1,9 @@ -PrematureMapContext in maplibre::map_schedule - Rust
pub struct PrematureMapContext {
-    view_state: ViewState,
-    style: Style,
-    tile_repository: TileRepository,
-    wgpu_settings: WgpuSettings,
-    renderer_settings: RendererSettings,
-}

Fields

view_state: ViewStatestyle: Styletile_repository: TileRepositorywgpu_settings: WgpuSettingsrenderer_settings: RendererSettings

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +InitializedRenderer in maplibre::render::builder - Rust

pub struct InitializedRenderer {
+    pub renderer: Renderer,
+}

Fields

renderer: Renderer

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

@@ -15,23 +11,23 @@ further downcast into Rc<ConcreteType> where &Any’s vtable from &Trait’s. Read more

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s. Read more

-

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +

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

-

Returns the argument unchanged.

-

Instruments this type with the provided Span, returning an +

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

+

Should always be Self

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/maplibre/render/builder/struct.RendererBuilder.html b/docs/api/maplibre/render/builder/struct.RendererBuilder.html new file mode 100644 index 00000000..a417180a --- /dev/null +++ b/docs/api/maplibre/render/builder/struct.RendererBuilder.html @@ -0,0 +1,34 @@ +RendererBuilder in maplibre::render::builder - Rust
pub struct RendererBuilder {
+    wgpu_settings: Option<WgpuSettings>,
+    renderer_settings: Option<RendererSettings>,
+}

Fields

wgpu_settings: Option<WgpuSettings>renderer_settings: Option<RendererSettings>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

+

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

+

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

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/docs/api/maplibre/render/builder/struct.UninitializedRenderer.html b/docs/api/maplibre/render/builder/struct.UninitializedRenderer.html new file mode 100644 index 00000000..940f6aef --- /dev/null +++ b/docs/api/maplibre/render/builder/struct.UninitializedRenderer.html @@ -0,0 +1,36 @@ +UninitializedRenderer in maplibre::render::builder - Rust
pub struct UninitializedRenderer {
+    pub wgpu_settings: WgpuSettings,
+    pub renderer_settings: RendererSettings,
+}

Fields

wgpu_settings: WgpuSettingsrenderer_settings: RendererSettings

Implementations

Initializes the whole rendering pipeline for the given configuration. +Returns the initialized map, ready to be run.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

+

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

+

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

+

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

+

Returns the argument unchanged.

+

Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

+

Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

+

Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

+
\ No newline at end of file diff --git a/docs/api/maplibre/render/camera/index.html b/docs/api/maplibre/render/camera/index.html index 7ff0cb7f..9fb15fe6 100644 --- a/docs/api/maplibre/render/camera/index.html +++ b/docs/api/maplibre/render/camera/index.html @@ -1,2 +1,2 @@ -maplibre::render::camera - Rust
Expand description

Main camera

+maplibre::render::camera - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/camera/struct.Camera.html b/docs/api/maplibre/render/camera/struct.Camera.html index 0c93f8f4..0251a7fc 100644 --- a/docs/api/maplibre/render/camera/struct.Camera.html +++ b/docs/api/maplibre/render/camera/struct.Camera.html @@ -1,24 +1,24 @@ -Camera in maplibre::render::camera - Rust
pub struct Camera {
-    pub position: Point3<f64>,
-    pub yaw: Rad<f64>,
-    pub pitch: Rad<f64>,
-    pub width: f64,
-    pub height: f64,
-}

Fields

position: Point3<f64>yaw: Rad<f64>pitch: Rad<f64>width: f64height: f64

Implementations

A transform which can be used to transfrom between clip and window space. +Camera in maplibre::render::camera - Rust

pub struct Camera {
+    position: Point3<f64>,
+    yaw: Rad<f64>,
+    pitch: Rad<f64>,
+    width: f64,
+    height: f64,
+}

Fields

position: Point3<f64>yaw: Rad<f64>pitch: Rad<f64>width: f64height: f64

Implementations

A transform which can be used to transfrom between clip and window space. Adopted from here (Direct3D).

-

Transforms coordinates in clip space to window coordinates.

+

Transforms coordinates in clip space to window coordinates.

Adopted from here (Direct3D).

-

Alternative implementation to clip_to_window. Transforms coordinates in clip space to +

Alternative implementation to clip_to_window. Transforms coordinates in clip space to window coordinates.

Adopted from here and here (Vulkan).

-

Order of transformations reversed: https://computergraphics.stackexchange.com/questions/6087/screen-space-coordinates-to-eye-space-conversion/6093 +

Order of transformations reversed: https://computergraphics.stackexchange.com/questions/6087/screen-space-coordinates-to-eye-space-conversion/6093 w is lost.

OpenGL explanation: https://www.khronos.org/opengl/wiki/Compute_eye_space_from_window_space#From_window_to_ndc

-

Alternative implementation to window_to_world

+

Alternative implementation to window_to_world

Adopted from here.

-

Gets the world coordinates for the specified window coordinates on the z=0 plane.

-

Calculates an Aabb2 bounding box which contains at least the visible area on the z=0 +

Gets the world coordinates for the specified window coordinates on the z=0 plane.

+

Calculates an Aabb2 bounding box which contains at least the visible area on the z=0 plane. One can think of it as being the bounding box of the geometry which forms the intersection between the viewing frustum and the z=0 plane.

This implementation works in the world 3D space. It casts rays from the corners of the @@ -26,11 +26,11 @@ window to calculate intersections points with the z=0 plane. Then a calculated.

Note: It is possible that no such bounding box exists. This is the case if the z=0 plane is not in view.

-

An alternative implementation for view_bounding_box.

+

An alternative implementation for view_bounding_box.

This implementation works in the NDC space. We are creating a plane in the world 3D space. Then we are transforming it to the NDC space. In NDC space it is easy to calculate the intersection points between an Aabb3 and a plane. The resulting Aabb2 is returned.

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be significantly different

diff --git a/docs/api/maplibre/render/camera/struct.Perspective.html b/docs/api/maplibre/render/camera/struct.Perspective.html index 0ae35914..d894b58b 100644 --- a/docs/api/maplibre/render/camera/struct.Perspective.html +++ b/docs/api/maplibre/render/camera/struct.Perspective.html @@ -1,9 +1,9 @@ -Perspective in maplibre::render::camera - Rust
pub struct Perspective {
+Perspective in maplibre::render::camera - Rust
pub struct Perspective {
     fovy: Rad<f64>,
     znear: f64,
     zfar: f64,
     current_projection: Matrix4<f64>,
-}

Fields

fovy: Rad<f64>znear: f64zfar: f64current_projection: Matrix4<f64>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+}

Fields

fovy: Rad<f64>znear: f64zfar: f64current_projection: Matrix4<f64>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/render/constant.INDEX_FORMAT.html b/docs/api/maplibre/render/constant.INDEX_FORMAT.html index 8f5ddaae..2f1ad258 100644 --- a/docs/api/maplibre/render/constant.INDEX_FORMAT.html +++ b/docs/api/maplibre/render/constant.INDEX_FORMAT.html @@ -1 +1 @@ -INDEX_FORMAT in maplibre::render - Rust

pub const INDEX_FORMAT: IndexFormat;
\ No newline at end of file +INDEX_FORMAT in maplibre::render - Rust
const INDEX_FORMAT: IndexFormat;
\ No newline at end of file diff --git a/docs/api/maplibre/render/draw_graph/constant.NAME.html b/docs/api/maplibre/render/draw_graph/constant.NAME.html index 9ab5d6ec..28041307 100644 --- a/docs/api/maplibre/render/draw_graph/constant.NAME.html +++ b/docs/api/maplibre/render/draw_graph/constant.NAME.html @@ -1 +1 @@ -NAME in maplibre::render::draw_graph - Rust
pub const NAME: &'static str = "draw";
\ No newline at end of file +NAME in maplibre::render::draw_graph - Rust
pub const NAME: &'static str = "draw";
\ No newline at end of file diff --git a/docs/api/maplibre/render/draw_graph/index.html b/docs/api/maplibre/render/draw_graph/index.html index a8dcc03c..c21d369d 100644 --- a/docs/api/maplibre/render/draw_graph/index.html +++ b/docs/api/maplibre/render/draw_graph/index.html @@ -1,2 +1,2 @@ -maplibre::render::draw_graph - Rust
Expand description

Labels for the “draw” graph

+maplibre::render::draw_graph - Rust
Expand description

Labels for the “draw” graph

Modules

Constants

\ No newline at end of file diff --git a/docs/api/maplibre/render/draw_graph/input/index.html b/docs/api/maplibre/render/draw_graph/input/index.html index 0ead303d..4ff4804b 100644 --- a/docs/api/maplibre/render/draw_graph/input/index.html +++ b/docs/api/maplibre/render/draw_graph/input/index.html @@ -1 +1 @@ -maplibre::render::draw_graph::input - Rust
\ No newline at end of file +maplibre::render::draw_graph::input - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/draw_graph/node/constant.MAIN_PASS.html b/docs/api/maplibre/render/draw_graph/node/constant.MAIN_PASS.html index 06acc3c2..03df92f3 100644 --- a/docs/api/maplibre/render/draw_graph/node/constant.MAIN_PASS.html +++ b/docs/api/maplibre/render/draw_graph/node/constant.MAIN_PASS.html @@ -1 +1 @@ -MAIN_PASS in maplibre::render::draw_graph::node - Rust
pub const MAIN_PASS: &'static str = "main_pass";
\ No newline at end of file +MAIN_PASS in maplibre::render::draw_graph::node - Rust
pub const MAIN_PASS: &'static str = "main_pass";
\ No newline at end of file diff --git a/docs/api/maplibre/render/draw_graph/node/index.html b/docs/api/maplibre/render/draw_graph/node/index.html index b3d3ef7c..2a4799e8 100644 --- a/docs/api/maplibre/render/draw_graph/node/index.html +++ b/docs/api/maplibre/render/draw_graph/node/index.html @@ -1 +1 @@ -maplibre::render::draw_graph::node - Rust
\ No newline at end of file +maplibre::render::draw_graph::node - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/error/enum.RenderError.html b/docs/api/maplibre/render/error/enum.RenderError.html similarity index 64% rename from docs/api/maplibre/error/enum.RenderError.html rename to docs/api/maplibre/render/error/enum.RenderError.html index 7f8f5caa..964386e9 100644 --- a/docs/api/maplibre/error/enum.RenderError.html +++ b/docs/api/maplibre/render/error/enum.RenderError.html @@ -1,8 +1,11 @@ -RenderError in maplibre::error - Rust
pub enum RenderError {
+RenderError in maplibre::render::error - Rust
pub enum RenderError {
     Surface(SurfaceError),
-}

Variants

Surface(SurfaceError)

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+ Graph(RenderGraphError), + Device(RequestDeviceError), +}

Variants

Surface(SurfaceError)

Graph(RenderGraphError)

Device(RequestDeviceError)

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can @@ -15,7 +18,7 @@ generate &Any’s vtable from &Trait’s. R generate &mut Any’s vtable from &mut Trait’s. Read more

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

-

Returns the argument unchanged.

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an @@ -33,4 +36,4 @@ further downcast into Arc<ConcreteType> where WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/api/maplibre/render/error/index.html b/docs/api/maplibre/render/error/index.html new file mode 100644 index 00000000..cc31ffec --- /dev/null +++ b/docs/api/maplibre/render/error/index.html @@ -0,0 +1 @@ +maplibre::render::error - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/error/sidebar-items.js b/docs/api/maplibre/render/error/sidebar-items.js new file mode 100644 index 00000000..63f469d2 --- /dev/null +++ b/docs/api/maplibre/render/error/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"enum":[["RenderError",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/render/eventually/trait.HasChanged.html b/docs/api/maplibre/render/eventually/trait.HasChanged.html index ce8de32f..75de834f 100644 --- a/docs/api/maplibre/render/eventually/trait.HasChanged.html +++ b/docs/api/maplibre/render/eventually/trait.HasChanged.html @@ -2,4 +2,4 @@ type Criteria: Eq; fn has_changed(&self, criteria: &Self::Criteria) -> bool; -}

Required Associated Types

Required Methods

Implementations on Foreign Types

Implementors

\ No newline at end of file +}

Required Associated Types

Required Methods

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/docs/api/maplibre/render/fn.create_default_render_graph.html b/docs/api/maplibre/render/fn.create_default_render_graph.html index f3989c48..c7a86257 100644 --- a/docs/api/maplibre/render/fn.create_default_render_graph.html +++ b/docs/api/maplibre/render/fn.create_default_render_graph.html @@ -1 +1 @@ -create_default_render_graph in maplibre::render - Rust
pub fn create_default_render_graph() -> Result<RenderGraph, RenderGraphError>
\ No newline at end of file +create_default_render_graph in maplibre::render - Rust
pub fn create_default_render_graph() -> Result<RenderGraph, RenderGraphError>
\ No newline at end of file diff --git a/docs/api/maplibre/render/graph/enum.RenderGraphError.html b/docs/api/maplibre/render/graph/enum.RenderGraphError.html index ac0fab34..09ca6659 100644 --- a/docs/api/maplibre/render/graph/enum.RenderGraphError.html +++ b/docs/api/maplibre/render/graph/enum.RenderGraphError.html @@ -1,4 +1,4 @@ -RenderGraphError in maplibre::render::graph - Rust
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

🔬 This is a nightly-only experimental API. (error_generic_member_access)

Provides type based access to context intended for error reports. Read more

+

Converts to this type from the input type.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

@@ -47,7 +48,7 @@ generate &mut Any’s vtable from &mut Trait

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

Compare self to key and return true if they are equal.

-

Returns the argument unchanged.

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an diff --git a/docs/api/maplibre/render/index.html b/docs/api/maplibre/render/index.html index cfb0fab5..ff7f9b15 100644 --- a/docs/api/maplibre/render/index.html +++ b/docs/api/maplibre/render/index.html @@ -1,4 +1,4 @@ -maplibre::render - Rust

Expand description

This module implements the rendering algorithm of maplibre-rs. It manages the whole +maplibre::render - Rust

Expand description

This module implements the rendering algorithm of maplibre-rs. It manages the whole communication with the GPU.

The render in this module is largely based on the bevy_render @@ -11,9 +11,9 @@ It is dual-licensed under MIT and Apache:

at your option.

We appreciate the design and implementation work which as gone into it.

-

Re-exports

Modules

Main camera

+

Re-exports

Modules

Main camera

Labels for the “draw” graph

-

Executes a RenderGraph

+

Executes a RenderGraph

main_pass 🔒

The main render pass for this application.

Specifies the instructions which are going to be sent to the GPU. Render commands can be concatenated into a new render command which executes multiple instruction sets.

@@ -24,4 +24,4 @@ buffers or textures simpler.

shaders 🔒

Rendering specific Stages

Utility for declaring pipelines.

Utility for generating a tile pattern which can be used for masking.

-

Structs

Constants

Functions

\ No newline at end of file +

Structs

Constants

Functions

\ No newline at end of file diff --git a/docs/api/maplibre/render/main_graph/index.html b/docs/api/maplibre/render/main_graph/index.html index 5456e7cb..2765fc62 100644 --- a/docs/api/maplibre/render/main_graph/index.html +++ b/docs/api/maplibre/render/main_graph/index.html @@ -1 +1 @@ -maplibre::render::main_graph - Rust
\ No newline at end of file +maplibre::render::main_graph - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/main_graph/input/index.html b/docs/api/maplibre/render/main_graph/input/index.html index a526b2de..561139b4 100644 --- a/docs/api/maplibre/render/main_graph/input/index.html +++ b/docs/api/maplibre/render/main_graph/input/index.html @@ -1 +1 @@ -maplibre::render::main_graph::input - Rust
\ No newline at end of file +maplibre::render::main_graph::input - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DEPENDENCIES.html b/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DEPENDENCIES.html index 2c129ec7..f8f020b6 100644 --- a/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DEPENDENCIES.html +++ b/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DEPENDENCIES.html @@ -1 +1 @@ -MAIN_PASS_DEPENDENCIES in maplibre::render::main_graph::node - Rust
pub const MAIN_PASS_DEPENDENCIES: &'static str = "main_pass_dependencies";
\ No newline at end of file +MAIN_PASS_DEPENDENCIES in maplibre::render::main_graph::node - Rust
pub const MAIN_PASS_DEPENDENCIES: &'static str = "main_pass_dependencies";
\ No newline at end of file diff --git a/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DRIVER.html b/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DRIVER.html index 16ea07c5..32df9ccf 100644 --- a/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DRIVER.html +++ b/docs/api/maplibre/render/main_graph/node/constant.MAIN_PASS_DRIVER.html @@ -1 +1 @@ -MAIN_PASS_DRIVER in maplibre::render::main_graph::node - Rust
pub const MAIN_PASS_DRIVER: &'static str = "main_pass_driver";
\ No newline at end of file +MAIN_PASS_DRIVER in maplibre::render::main_graph::node - Rust
pub const MAIN_PASS_DRIVER: &'static str = "main_pass_driver";
\ No newline at end of file diff --git a/docs/api/maplibre/render/main_graph/node/index.html b/docs/api/maplibre/render/main_graph/node/index.html index a4c8af9c..609530b2 100644 --- a/docs/api/maplibre/render/main_graph/node/index.html +++ b/docs/api/maplibre/render/main_graph/node/index.html @@ -1 +1 @@ -maplibre::render::main_graph::node - Rust
\ No newline at end of file +maplibre::render::main_graph::node - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/render_commands/index.html b/docs/api/maplibre/render/render_commands/index.html index dd4ca256..cd143c92 100644 --- a/docs/api/maplibre/render/render_commands/index.html +++ b/docs/api/maplibre/render/render_commands/index.html @@ -1,3 +1,3 @@ -maplibre::render::render_commands - Rust
Expand description

Specifies the instructions which are going to be sent to the GPU. Render commands can be concatenated +maplibre::render::render_commands - Rust

Expand description

Specifies the instructions which are going to be sent to the GPU. Render commands can be concatenated into a new render command which executes multiple instruction sets.

Structs

Type Definitions

\ No newline at end of file diff --git a/docs/api/maplibre/render/render_commands/struct.DrawMask.html b/docs/api/maplibre/render/render_commands/struct.DrawMask.html index b1ea3158..6aac6b82 100644 --- a/docs/api/maplibre/render/render_commands/struct.DrawMask.html +++ b/docs/api/maplibre/render/render_commands/struct.DrawMask.html @@ -1,4 +1,4 @@ -DrawMask in maplibre::render::render_commands - Rust
pub struct DrawMask;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

+DrawMask in maplibre::render::render_commands - Rust
pub struct DrawMask;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/render/render_commands/struct.DrawTile.html b/docs/api/maplibre/render/render_commands/struct.DrawTile.html index ae82df35..8bb1ba86 100644 --- a/docs/api/maplibre/render/render_commands/struct.DrawTile.html +++ b/docs/api/maplibre/render/render_commands/struct.DrawTile.html @@ -1,4 +1,4 @@ -DrawTile in maplibre::render::render_commands - Rust
pub struct DrawTile;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

+DrawTile in maplibre::render::render_commands - Rust
pub struct DrawTile;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/render/render_commands/struct.SetMaskPipeline.html b/docs/api/maplibre/render/render_commands/struct.SetMaskPipeline.html index ede4eac9..140c8893 100644 --- a/docs/api/maplibre/render/render_commands/struct.SetMaskPipeline.html +++ b/docs/api/maplibre/render/render_commands/struct.SetMaskPipeline.html @@ -1,4 +1,4 @@ -SetMaskPipeline in maplibre::render::render_commands - Rust
pub struct SetMaskPipeline;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

+SetMaskPipeline in maplibre::render::render_commands - Rust
pub struct SetMaskPipeline;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/render/render_commands/struct.SetTilePipeline.html b/docs/api/maplibre/render/render_commands/struct.SetTilePipeline.html index 060024e7..56e590ff 100644 --- a/docs/api/maplibre/render/render_commands/struct.SetTilePipeline.html +++ b/docs/api/maplibre/render/render_commands/struct.SetTilePipeline.html @@ -1,4 +1,4 @@ -SetTilePipeline in maplibre::render::render_commands - Rust
pub struct SetTilePipeline;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

+SetTilePipeline in maplibre::render::render_commands - Rust
pub struct SetTilePipeline;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/render/render_commands/struct.SetViewBindGroup.html b/docs/api/maplibre/render/render_commands/struct.SetViewBindGroup.html index 6572987c..c57c6f65 100644 --- a/docs/api/maplibre/render/render_commands/struct.SetViewBindGroup.html +++ b/docs/api/maplibre/render/render_commands/struct.SetViewBindGroup.html @@ -1,4 +1,4 @@ -SetViewBindGroup in maplibre::render::render_commands - Rust
pub struct SetViewBindGroup<const I: usize>;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

+SetViewBindGroup in maplibre::render::render_commands - Rust
pub struct SetViewBindGroup<const I: usize>;

Trait Implementations

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/docs/api/maplibre/render/render_commands/type.DrawMasks.html b/docs/api/maplibre/render/render_commands/type.DrawMasks.html index 48cff344..ddebe344 100644 --- a/docs/api/maplibre/render/render_commands/type.DrawMasks.html +++ b/docs/api/maplibre/render/render_commands/type.DrawMasks.html @@ -1 +1 @@ -DrawMasks in maplibre::render::render_commands - Rust
pub type DrawMasks = (SetMaskPipeline, DrawMask);
\ No newline at end of file +DrawMasks in maplibre::render::render_commands - Rust
pub type DrawMasks = (SetMaskPipeline, DrawMask);
\ No newline at end of file diff --git a/docs/api/maplibre/render/render_commands/type.DrawTiles.html b/docs/api/maplibre/render/render_commands/type.DrawTiles.html index bad39d9c..59e43d8a 100644 --- a/docs/api/maplibre/render/render_commands/type.DrawTiles.html +++ b/docs/api/maplibre/render/render_commands/type.DrawTiles.html @@ -1 +1 @@ -DrawTiles in maplibre::render::render_commands - Rust
\ No newline at end of file +DrawTiles in maplibre::render::render_commands - Rust
\ No newline at end of file diff --git a/docs/api/maplibre/render/render_phase/draw/trait.PhaseItem.html b/docs/api/maplibre/render/render_phase/draw/trait.PhaseItem.html index bd2e484f..7a11a76b 100644 --- a/docs/api/maplibre/render/render_phase/draw/trait.PhaseItem.html +++ b/docs/api/maplibre/render/render_phase/draw/trait.PhaseItem.html @@ -9,4 +9,4 @@ Afterwards it will be sorted and rendered automatically in the RenderStageLabel::Render stage, respectively.

Required Associated Types

The type used for ordering the items. The smallest values are drawn first.

Required Methods

Determines the order in which the items are drawn during the corresponding RenderPhase.

-

Implementations on Foreign Types

Implementors

\ No newline at end of file +

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/docs/api/maplibre/render/render_phase/draw/trait.RenderCommand.html b/docs/api/maplibre/render/render_phase/draw/trait.RenderCommand.html index 37ceb57e..f89cd169 100644 --- a/docs/api/maplibre/render/render_phase/draw/trait.RenderCommand.html +++ b/docs/api/maplibre/render/render_phase/draw/trait.RenderCommand.html @@ -16,4 +16,4 @@ tuple. Const generics are used to set specific bind group locations:

DrawMesh, );

Required Methods

Renders the PhaseItem by issuing draw calls via the TrackedRenderPass.

-

Implementations on Foreign Types

Implementors

\ No newline at end of file +

Implementations on Foreign Types

Implementors

\ No newline at end of file diff --git a/docs/api/maplibre/render/resource/buffer_pool/struct.BufferPool.html b/docs/api/maplibre/render/resource/buffer_pool/struct.BufferPool.html index dc99705e..7c7627f2 100644 --- a/docs/api/maplibre/render/resource/buffer_pool/struct.BufferPool.html +++ b/docs/api/maplibre/render/resource/buffer_pool/struct.BufferPool.html @@ -12,8 +12,8 @@ }
Expand description

This is inspired by the memory pool in Vulkan documented here.

Fields

vertices: BackingBuffer<B>indices: BackingBuffer<B>layer_metadata: BackingBuffer<B>feature_metadata: BackingBuffer<B>index: RingIndexphantom_v: PhantomData<V>phantom_i: PhantomData<I>phantom_q: PhantomData<Q>phantom_m: PhantomData<TM>phantom_fm: PhantomData<FM>

Implementations

The VertexBuffers can contain padding elements. Not everything from a VertexBuffers is useable. -The function returns the bytes and aligned_bytes. See OverAlignedVertexBuffer.

-

Allocates

+The function returns the bytes and aligned_bytes. See OverAlignedVertexBuffer.

+

Allocates

  • geometry
  • layer_metadata and
  • diff --git a/docs/api/maplibre/render/resource/enum.Head.html b/docs/api/maplibre/render/resource/enum.Head.html index 19040d7e..68f2fa3f 100644 --- a/docs/api/maplibre/render/resource/enum.Head.html +++ b/docs/api/maplibre/render/resource/enum.Head.html @@ -1,4 +1,4 @@ -Head in maplibre::render::resource - Rust
    pub enum Head {
    +Head in maplibre::render::resource - Rust
    pub enum Head {
         Headed(WindowHead),
         Headless(Arc<BufferedTextureHead>),
     }

    Variants

    Headed(WindowHead)

    Headless(Arc<BufferedTextureHead>)

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    diff --git a/docs/api/maplibre/render/resource/pipeline/trait.RenderPipeline.html b/docs/api/maplibre/render/resource/pipeline/trait.RenderPipeline.html index 5983d804..bf5d43a7 100644 --- a/docs/api/maplibre/render/resource/pipeline/trait.RenderPipeline.html +++ b/docs/api/maplibre/render/resource/pipeline/trait.RenderPipeline.html @@ -1,3 +1,3 @@ RenderPipeline in maplibre::render::resource::pipeline - Rust
    \ No newline at end of file +}

    Required Methods

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/render/resource/struct.BufferDimensions.html b/docs/api/maplibre/render/resource/struct.BufferDimensions.html index e5e9f34f..68635b0a 100644 --- a/docs/api/maplibre/render/resource/struct.BufferDimensions.html +++ b/docs/api/maplibre/render/resource/struct.BufferDimensions.html @@ -1,9 +1,9 @@ -BufferDimensions in maplibre::render::resource - Rust
    pub struct BufferDimensions {
    +BufferDimensions in maplibre::render::resource - Rust
    pub struct BufferDimensions {
         pub width: usize,
         pub height: usize,
         pub unpadded_bytes_per_row: usize,
         pub padded_bytes_per_row: usize,
    -}

    Fields

    width: usizeheight: usizeunpadded_bytes_per_row: usizepadded_bytes_per_row: usize

    Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +}

    Fields

    width: usizeheight: usizeunpadded_bytes_per_row: usizepadded_bytes_per_row: usize

    Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/render/resource/struct.BufferPool.html b/docs/api/maplibre/render/resource/struct.BufferPool.html index 24545d53..6c0aafdf 100644 --- a/docs/api/maplibre/render/resource/struct.BufferPool.html +++ b/docs/api/maplibre/render/resource/struct.BufferPool.html @@ -12,8 +12,8 @@ }

    Expand description

    This is inspired by the memory pool in Vulkan documented here.

    Fields

    vertices: BackingBuffer<B>indices: BackingBuffer<B>layer_metadata: BackingBuffer<B>feature_metadata: BackingBuffer<B>index: RingIndexphantom_v: PhantomData<V>phantom_i: PhantomData<I>phantom_q: PhantomData<Q>phantom_m: PhantomData<TM>phantom_fm: PhantomData<FM>

    Implementations

    The VertexBuffers can contain padding elements. Not everything from a VertexBuffers is useable. -The function returns the bytes and aligned_bytes. See OverAlignedVertexBuffer.

    -

    Allocates

    +The function returns the bytes and aligned_bytes. See OverAlignedVertexBuffer.

    +

    Allocates

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/sidebar-items.js b/docs/api/maplibre/sidebar-items.js index 096c6983..19a62cb7 100644 --- a/docs/api/maplibre/sidebar-items.js +++ b/docs/api/maplibre/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"macro":[["define_label","Macro to define a new label trait"],["multi_stage",""]],"mod":[["benchmarking","Collection of utilities used to perform certain calculations more conveniently."],["context",""],["coords","Provides utilities related to coordinates."],["environment",""],["error","Errors which can happen in various parts of the library."],["io","Handles IO related processing as well as multithreading."],["map_schedule",""],["platform","Handles platform specific code. Depending on the compilation target, different parts of this module are used."],["render","This module implements the rendering algorithm of maplibre-rs. It manages the whole communication with the GPU."],["schedule",""],["stages","Stages for requesting and preparing data"],["style","Vector tile format styling."],["tessellation","Tessellation for lines and polygons is implemented here."],["tile","Nested message and enum types in `Tile`."],["util","Utils which are used internally"],["window","Utilities for the window system."]],"struct":[["Map","The [`Map`] defines the public interface of the map renderer."],["MapBuilder",""],["UninitializedMap","Stores the map configuration before the map’s state has been fully initialized."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"macro":[["define_label","Macro to define a new label trait"],["multi_stage",""]],"mod":[["benchmarking","Collection of utilities used to perform certain calculations more conveniently."],["context",""],["coords","Provides utilities related to coordinates."],["environment",""],["error","Errors which can happen in various parts of the library."],["event_loop",""],["io","Handles IO related processing as well as multithreading."],["kernel",""],["map",""],["platform","Handles platform specific code. Depending on the compilation target, different parts of this module are used."],["render","This module implements the rendering algorithm of maplibre-rs. It manages the whole communication with the GPU."],["schedule",""],["stages","Stages for requesting and preparing data"],["style","Vector tile format styling."],["tessellation","Tessellation for lines and polygons is implemented here."],["tile","Nested message and enum types in `Tile`."],["util","Utils which are used internally"],["window","Utilities for the window system."],["world",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/stages/fn.register_stages.html b/docs/api/maplibre/stages/fn.register_stages.html index 6170ff9b..0254d30c 100644 --- a/docs/api/maplibre/stages/fn.register_stages.html +++ b/docs/api/maplibre/stages/fn.register_stages.html @@ -1,2 +1,2 @@ -register_stages in maplibre::stages - Rust
    pub fn register_stages<E: Environment>(
        schedule: &mut Schedule,
        http_source_client: HttpSourceClient<E::HttpClient>,
        apc: Rc<RefCell<E::AsyncProcedureCall>>
    )
    Expand description

    Register stages required for requesting and preparing new tiles.

    +register_stages in maplibre::stages - Rust
    pub fn register_stages<E: Environment>(
        schedule: &mut Schedule,
        kernel: Rc<Kernel<E>>
    )
    Expand description

    Register stages required for requesting and preparing new tiles.

    \ No newline at end of file diff --git a/docs/api/maplibre/stages/index.html b/docs/api/maplibre/stages/index.html index 3a54be4e..6e677224 100644 --- a/docs/api/maplibre/stages/index.html +++ b/docs/api/maplibre/stages/index.html @@ -1,4 +1,4 @@ -maplibre::stages - Rust
    Expand description

    Stages for requesting and preparing data

    +maplibre::stages - Rust
    Expand description

    Stages for requesting and preparing data

    Modules

    Receives data from async threads and populates the crate::io::tile_repository::TileRepository.

    Requests tiles which are currently in view

    Structs

    Functions

    Register stages required for requesting and preparing new tiles.

    diff --git a/docs/api/maplibre/stages/populate_tile_store_stage/index.html b/docs/api/maplibre/stages/populate_tile_store_stage/index.html index bdb44e89..6879f764 100644 --- a/docs/api/maplibre/stages/populate_tile_store_stage/index.html +++ b/docs/api/maplibre/stages/populate_tile_store_stage/index.html @@ -1,2 +1,2 @@ -maplibre::stages::populate_tile_store_stage - Rust
    Expand description

    Receives data from async threads and populates the crate::io::tile_repository::TileRepository.

    +maplibre::stages::populate_tile_store_stage - Rust
    Expand description

    Receives data from async threads and populates the crate::io::tile_repository::TileRepository.

    Structs

    \ No newline at end of file diff --git a/docs/api/maplibre/stages/populate_tile_store_stage/struct.PopulateTileStore.html b/docs/api/maplibre/stages/populate_tile_store_stage/struct.PopulateTileStore.html index d45a4cac..52385ccb 100644 --- a/docs/api/maplibre/stages/populate_tile_store_stage/struct.PopulateTileStore.html +++ b/docs/api/maplibre/stages/populate_tile_store_stage/struct.PopulateTileStore.html @@ -1,8 +1,8 @@ -PopulateTileStore in maplibre::stages::populate_tile_store_stage - Rust
    pub struct PopulateTileStore<E: Environment> {
    -    apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -}

    Fields

    apc: Rc<RefCell<E::AsyncProcedureCall>>

    Implementations

    Trait Implementations

    Runs the stage; this happens once per update. +PopulateTileStore in maplibre::stages::populate_tile_store_stage - Rust

    pub struct PopulateTileStore<E: Environment> {
    +    kernel: Rc<Kernel<E>>,
    +}

    Fields

    kernel: Rc<Kernel<E>>

    Implementations

    Trait Implementations

    Runs the stage; this happens once per update. Implementors must initialize all of their state before running the first time. Read more

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/stages/request_stage/fn.schedule.html b/docs/api/maplibre/stages/request_stage/fn.schedule.html index 8d7d2436..cb5508a9 100644 --- a/docs/api/maplibre/stages/request_stage/fn.schedule.html +++ b/docs/api/maplibre/stages/request_stage/fn.schedule.html @@ -1 +1 @@ -schedule in maplibre::stages::request_stage - Rust

    pub fn schedule<E: Environment, C: Context<E::Transferables, E::HttpClient>>(
        input: Input,
        context: C
    ) -> AsyncProcedureFuture
    \ No newline at end of file +schedule in maplibre::stages::request_stage - Rust
    pub fn schedule<E: Environment, C: Context<<E::AsyncProcedureCall as AsyncProcedureCall<E::HttpClient>>::Transferables, E::HttpClient>>(
        input: Input,
        context: C
    ) -> AsyncProcedureFuture
    \ No newline at end of file diff --git a/docs/api/maplibre/stages/request_stage/index.html b/docs/api/maplibre/stages/request_stage/index.html index e8ca9113..fe3c1e99 100644 --- a/docs/api/maplibre/stages/request_stage/index.html +++ b/docs/api/maplibre/stages/request_stage/index.html @@ -1,2 +1,2 @@ -maplibre::stages::request_stage - Rust
    Expand description

    Requests tiles which are currently in view

    +maplibre::stages::request_stage - Rust
    Expand description

    Requests tiles which are currently in view

    Structs

    Functions

    \ No newline at end of file diff --git a/docs/api/maplibre/stages/request_stage/struct.RequestStage.html b/docs/api/maplibre/stages/request_stage/struct.RequestStage.html index ed36564b..4a0bfd9c 100644 --- a/docs/api/maplibre/stages/request_stage/struct.RequestStage.html +++ b/docs/api/maplibre/stages/request_stage/struct.RequestStage.html @@ -1,10 +1,9 @@ -RequestStage in maplibre::stages::request_stage - Rust
    pub struct RequestStage<E: Environment> {
    -    apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -    http_source_client: HttpSourceClient<E::HttpClient>,
    -}

    Fields

    apc: Rc<RefCell<E::AsyncProcedureCall>>http_source_client: HttpSourceClient<E::HttpClient>

    Implementations

    Request tiles which are currently in view.

    -

    Trait Implementations

    Runs the stage; this happens once per update. +RequestStage in maplibre::stages::request_stage - Rust

    pub struct RequestStage<E: Environment> {
    +    kernel: Rc<Kernel<E>>,
    +}

    Fields

    kernel: Rc<Kernel<E>>

    Implementations

    Request tiles which are currently in view.

    +

    Trait Implementations

    Runs the stage; this happens once per update. Implementors must initialize all of their state before running the first time. Read more

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/stages/struct.HeadedPipelineProcessor.html b/docs/api/maplibre/stages/struct.HeadedPipelineProcessor.html index 6c14991e..175b523e 100644 --- a/docs/api/maplibre/stages/struct.HeadedPipelineProcessor.html +++ b/docs/api/maplibre/stages/struct.HeadedPipelineProcessor.html @@ -1,8 +1,8 @@ -HeadedPipelineProcessor in maplibre::stages - Rust

    pub struct HeadedPipelineProcessor<T: Transferables, HC: HttpClient, C: Context<T, HC>> {
    +HeadedPipelineProcessor in maplibre::stages - Rust
    pub struct HeadedPipelineProcessor<T: Transferables, HC: HttpClient, C: Context<T, HC>> {
         context: C,
         phantom_t: PhantomData<T>,
         phantom_hc: PhantomData<HC>,
    -}

    Fields

    context: Cphantom_t: PhantomData<T>phantom_hc: PhantomData<HC>

    Trait Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +}

    Fields

    context: Cphantom_t: PhantomData<T>phantom_hc: PhantomData<HC>

    Trait Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/struct.MapBuilder.html b/docs/api/maplibre/struct.MapBuilder.html deleted file mode 100644 index 87c60d48..00000000 --- a/docs/api/maplibre/struct.MapBuilder.html +++ /dev/null @@ -1,40 +0,0 @@ -MapBuilder in maplibre - Rust

    pub struct MapBuilder<E: Environment> {
    -    pub(crate) scheduler: Option<E::Scheduler>,
    -    pub(crate) apc: Option<E::AsyncProcedureCall>,
    -    pub(crate) http_client: Option<E::HttpClient>,
    -    pub(crate) style: Option<Style>,
    -    pub(crate) map_window_config: Option<E::MapWindowConfig>,
    -    pub(crate) wgpu_settings: Option<WgpuSettings>,
    -    pub(crate) renderer_settings: Option<RendererSettings>,
    -}

    Fields

    scheduler: Option<E::Scheduler>apc: Option<E::AsyncProcedureCall>http_client: Option<E::HttpClient>style: Option<Style>map_window_config: Option<E::MapWindowConfig>wgpu_settings: Option<WgpuSettings>renderer_settings: Option<RendererSettings>

    Implementations

    Builds the UninitializedMap with the given configuration.

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    -

    Immutably borrows from an owned value. Read more

    -

    Mutably borrows from an owned value. Read more

    -

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

    -

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

    -

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s. Read more

    -

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s. Read more

    -

    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

    -

    Returns the argument unchanged.

    -

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

    -

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

    -

    Calls U::from(self).

    -

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -

    Should always be Self

    -

    The type returned in the event of a conversion error.

    -

    Performs the conversion.

    -

    The type returned in the event of a conversion error.

    -

    Performs the conversion.

    -

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

    -

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

    -
    \ No newline at end of file diff --git a/docs/api/maplibre/struct.UninitializedMap.html b/docs/api/maplibre/struct.UninitializedMap.html deleted file mode 100644 index 72945fcc..00000000 --- a/docs/api/maplibre/struct.UninitializedMap.html +++ /dev/null @@ -1,42 +0,0 @@ -UninitializedMap in maplibre - Rust
    pub struct UninitializedMap<E: Environment> {
    -    pub(crate) scheduler: E::Scheduler,
    -    pub(crate) apc: E::AsyncProcedureCall,
    -    pub(crate) http_client: E::HttpClient,
    -    pub(crate) style: Style,
    -    pub(crate) wgpu_settings: WgpuSettings,
    -    pub(crate) renderer_settings: RendererSettings,
    -    pub(crate) map_window_config: E::MapWindowConfig,
    -}
    Expand description

    Stores the map configuration before the map’s state has been fully initialized.

    -

    Fields

    scheduler: E::Schedulerapc: E::AsyncProcedureCallhttp_client: E::HttpClientstyle: Stylewgpu_settings: WgpuSettingsrenderer_settings: RendererSettingsmap_window_config: E::MapWindowConfig

    Implementations

    Initializes the whole rendering pipeline for the given configuration. -Returns the initialized map, ready to be run.

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    -

    Immutably borrows from an owned value. Read more

    -

    Mutably borrows from an owned value. Read more

    -

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

    -

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

    -

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s. Read more

    -

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &mut Any’s vtable from &mut Trait’s. Read more

    -

    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

    -

    Returns the argument unchanged.

    -

    Instruments this type with the provided Span, returning an -Instrumented wrapper. Read more

    -

    Instruments this type with the current Span, returning an -Instrumented wrapper. Read more

    -

    Calls U::from(self).

    -

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -

    Should always be Self

    -

    The type returned in the event of a conversion error.

    -

    Performs the conversion.

    -

    The type returned in the event of a conversion error.

    -

    Performs the conversion.

    -

    Attaches the provided Subscriber to this type, returning a -WithDispatch wrapper. Read more

    -

    Attaches the current default Subscriber to this type, returning a -WithDispatch wrapper. Read more

    -
    \ No newline at end of file diff --git a/docs/api/maplibre/tessellation/index.html b/docs/api/maplibre/tessellation/index.html index 9e7cf2f3..47ca105d 100644 --- a/docs/api/maplibre/tessellation/index.html +++ b/docs/api/maplibre/tessellation/index.html @@ -1,4 +1,4 @@ -maplibre::tessellation - Rust
    Expand description

    Tessellation for lines and polygons is implemented here.

    +maplibre::tessellation - Rust
    Expand description

    Tessellation for lines and polygons is implemented here.

    Modules

    Tessellator implementation.

    Structs

    Vertex buffer which includes additional padding to fulfill the wgpu::COPY_BUFFER_ALIGNMENT.

    Constructor for Fill and Stroke vertices.

    diff --git a/docs/api/maplibre/tessellation/struct.OverAlignedVertexBuffer.html b/docs/api/maplibre/tessellation/struct.OverAlignedVertexBuffer.html index 262baf81..17222b1d 100644 --- a/docs/api/maplibre/tessellation/struct.OverAlignedVertexBuffer.html +++ b/docs/api/maplibre/tessellation/struct.OverAlignedVertexBuffer.html @@ -2,10 +2,10 @@ pub buffer: VertexBuffers<V, I>, pub usable_indices: u32, }
    Expand description

    Vertex buffer which includes additional padding to fulfill the wgpu::COPY_BUFFER_ALIGNMENT.

    -

    Fields

    buffer: VertexBuffers<V, I>usable_indices: u32

    Implementations

    Trait Implementations

    Returns a copy of the value. Read more

    +

    Fields

    buffer: VertexBuffers<V, I>usable_indices: u32

    Implementations

    Trait Implementations

    Returns a copy of the value. Read more

    Performs copy-assignment from source. Read more

    -

    Converts to this type from the input type.

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Converts to this type from the input type.

    +

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/tessellation/struct.VertexConstructor.html b/docs/api/maplibre/tessellation/struct.VertexConstructor.html index d2c3c6a1..0b6e36a4 100644 --- a/docs/api/maplibre/tessellation/struct.VertexConstructor.html +++ b/docs/api/maplibre/tessellation/struct.VertexConstructor.html @@ -1,5 +1,5 @@ VertexConstructor in maplibre::tessellation - Rust

    pub struct VertexConstructor {}
    Expand description

    Constructor for Fill and Stroke vertices.

    -

    Trait Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Trait Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/tessellation/trait.Align.html b/docs/api/maplibre/tessellation/trait.Align.html index 6fa3ad16..e831ab4f 100644 --- a/docs/api/maplibre/tessellation/trait.Align.html +++ b/docs/api/maplibre/tessellation/trait.Align.html @@ -1,4 +1,4 @@ -Align in maplibre::tessellation - Rust

    trait Align<V: Pod, I: Pod> {
    +Align in maplibre::tessellation - Rust
    trait Align<V: Pod, I: Pod> {
         fn align_vertices(&mut self);
         fn align_indices(&mut self);
    -}

    Required Methods

    Implementations on Foreign Types

    Implementors

    \ No newline at end of file +}

    Required Methods

    Implementations on Foreign Types

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/tessellation/zero_tessellator/struct.ZeroTessellator.html b/docs/api/maplibre/tessellation/zero_tessellator/struct.ZeroTessellator.html index 3712bad5..8c593c88 100644 --- a/docs/api/maplibre/tessellation/zero_tessellator/struct.ZeroTessellator.html +++ b/docs/api/maplibre/tessellation/zero_tessellator/struct.ZeroTessellator.html @@ -6,8 +6,8 @@ pub feature_indices: Vec<u32>, current_index: usize, }
    Expand description

    Build tessellations with vectors.

    -

    Fields

    path_builder: RefCell<Builder>path_open: boolis_point: boolbuffer: VertexBuffers<ShaderVertex, I>feature_indices: Vec<u32>current_index: usize

    Implementations

    Trait Implementations

    Returns the “default value” for a type. Read more

    -

    End of feature processing

    +

    Fields

    path_builder: RefCell<Builder>path_open: boolis_point: boolbuffer: VertexBuffers<ShaderVertex, I>feature_indices: Vec<u32>current_index: usize

    Implementations

    Trait Implementations

    Returns the “default value” for a type. Read more

    +

    End of feature processing

    Begin of dataset processing

    End of dataset processing

    Begin of feature processing

    @@ -15,7 +15,7 @@

    End of feature property processing

    Begin of feature geometry processing

    End of feature geometry processing

    -

    Process coordinate with x,y dimensions

    +

    Process coordinate with x,y dimensions

    Begin of Point processing Read more

    End of Point processing

    Begin of MultiPoint processing Read more

    @@ -51,8 +51,8 @@

    End of PolyhedralSurface processing

    Begin of Tin processing Read more

    End of Tin processing

    -

    Process property value. Abort processing, if return value is true.

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Process property value. Abort processing, if return value is true.

    +

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/window/index.html b/docs/api/maplibre/window/index.html index 966360a3..aed2919e 100644 --- a/docs/api/maplibre/window/index.html +++ b/docs/api/maplibre/window/index.html @@ -1,8 +1,6 @@ -maplibre::window - Rust

    Expand description

    Utilities for the window system.

    +maplibre::window - Rust
    Expand description

    Utilities for the window system.

    Structs

    Window size with a width and an height in pixels.

    -

    Traits

    The event loop is responsible for processing events and propagating them to the map renderer. -Only non-headless windows use an EventLoop.

    -

    Window which references a physical RawWindow. This is only implemented by headed windows and +

    Traits

    Window which references a physical RawWindow. This is only implemented by headed windows and not by headless windows.

    Window of a certain WindowSize. This can either be a proper window or a headless one.

    A configuration for a window which determines the corresponding implementation of a diff --git a/docs/api/maplibre/window/sidebar-items.js b/docs/api/maplibre/window/sidebar-items.js index ed61558b..e98462cf 100644 --- a/docs/api/maplibre/window/sidebar-items.js +++ b/docs/api/maplibre/window/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":[["WindowSize","Window size with a width and an height in pixels."]],"trait":[["EventLoop","The event loop is responsible for processing events and propagating them to the map renderer. Only non-headless windows use an [`EventLoop`]."],["HeadedMapWindow","Window which references a physical `RawWindow`. This is only implemented by headed windows and not by headless windows."],["MapWindow","Window of a certain [`WindowSize`]. This can either be a proper window or a headless one."],["MapWindowConfig","A configuration for a window which determines the corresponding implementation of a [`MapWindow`] and is able to create it."]]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["WindowSize","Window size with a width and an height in pixels."]],"trait":[["HeadedMapWindow","Window which references a physical `RawWindow`. This is only implemented by headed windows and not by headless windows."],["MapWindow","Window of a certain [`WindowSize`]. This can either be a proper window or a headless one."],["MapWindowConfig","A configuration for a window which determines the corresponding implementation of a [`MapWindow`] and is able to create it."]]}; \ No newline at end of file diff --git a/docs/api/maplibre/window/struct.WindowSize.html b/docs/api/maplibre/window/struct.WindowSize.html index 24000fa6..57de23c3 100644 --- a/docs/api/maplibre/window/struct.WindowSize.html +++ b/docs/api/maplibre/window/struct.WindowSize.html @@ -1,13 +1,13 @@ -WindowSize in maplibre::window - Rust

    pub struct WindowSize {
    +WindowSize in maplibre::window - Rust
    pub struct WindowSize {
         width: u32,
         height: u32,
     }
    Expand description

    Window size with a width and an height in pixels.

    -

    Fields

    width: u32height: u32

    Implementations

    Trait Implementations

    Returns a copy of the value. Read more

    +

    Fields

    width: u32height: u32

    Implementations

    Trait Implementations

    Returns a copy of the value. Read more

    Performs copy-assignment from source. Read more

    -

    This method tests for self and other values to be equal, and is used +

    This method tests for self and other values to be equal, and is used by ==. Read more

    -

    This method tests for !=.

    -

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    This method tests for !=.

    +

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/window/trait.EventLoop.html b/docs/api/maplibre/window/trait.EventLoop.html deleted file mode 100644 index 23b6b0d5..00000000 --- a/docs/api/maplibre/window/trait.EventLoop.html +++ /dev/null @@ -1,5 +0,0 @@ -EventLoop in maplibre::window - Rust

    pub trait EventLoop<E: Environment> {
    -    fn run(
            self,
            map_schedule: Rc<RefCell<InteractiveMapSchedule<E>>>,
            max_frames: Option<u64>
        ); -}
    Expand description

    The event loop is responsible for processing events and propagating them to the map renderer. -Only non-headless windows use an EventLoop.

    -

    Required Methods

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/window/trait.HeadedMapWindow.html b/docs/api/maplibre/window/trait.HeadedMapWindow.html index fb159fc1..a1362aea 100644 --- a/docs/api/maplibre/window/trait.HeadedMapWindow.html +++ b/docs/api/maplibre/window/trait.HeadedMapWindow.html @@ -1,7 +1,9 @@ -HeadedMapWindow in maplibre::window - Rust
    pub trait HeadedMapWindow: MapWindow {
    +HeadedMapWindow in maplibre::window - Rust
    pub trait HeadedMapWindow: MapWindow {
         type RawWindow: HasRawWindowHandle + HasRawDisplayHandle;
     
    -    fn inner(&self) -> &Self::RawWindow;
    +    fn raw(&self) -> &Self::RawWindow;
    +    fn request_redraw(&self);
    +    fn id(&self) -> u64;
     }
    Expand description

    Window which references a physical RawWindow. This is only implemented by headed windows and not by headless windows.

    -

    Required Associated Types

    Required Methods

    Implementors

    \ No newline at end of file +

    Required Associated Types

    Required Methods

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/window/trait.MapWindowConfig.html b/docs/api/maplibre/window/trait.MapWindowConfig.html index 6512095e..ccf95368 100644 --- a/docs/api/maplibre/window/trait.MapWindowConfig.html +++ b/docs/api/maplibre/window/trait.MapWindowConfig.html @@ -1,7 +1,7 @@ -MapWindowConfig in maplibre::window - Rust
    pub trait MapWindowConfig: 'static {
    +MapWindowConfig in maplibre::window - Rust
    pub trait MapWindowConfig: 'static {
         type MapWindow: MapWindow;
     
         fn create(&self) -> Self::MapWindow;
     }
    Expand description

    A configuration for a window which determines the corresponding implementation of a MapWindow and is able to create it.

    -

    Required Associated Types

    Required Methods

    Implementors

    \ No newline at end of file +

    Required Associated Types

    Required Methods

    Implementors

    \ No newline at end of file diff --git a/docs/api/maplibre/world/index.html b/docs/api/maplibre/world/index.html new file mode 100644 index 00000000..04962e77 --- /dev/null +++ b/docs/api/maplibre/world/index.html @@ -0,0 +1,2 @@ +maplibre::world - Rust

    Structs

    Stores the camera configuration.

    +
    \ No newline at end of file diff --git a/docs/api/maplibre/world/sidebar-items.js b/docs/api/maplibre/world/sidebar-items.js new file mode 100644 index 00000000..044f1d74 --- /dev/null +++ b/docs/api/maplibre/world/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["ViewState","Stores the camera configuration."],["World",""]]}; \ No newline at end of file diff --git a/docs/api/maplibre/context/struct.ViewState.html b/docs/api/maplibre/world/struct.ViewState.html similarity index 63% rename from docs/api/maplibre/context/struct.ViewState.html rename to docs/api/maplibre/world/struct.ViewState.html index 8355dae8..0feb0ecc 100644 --- a/docs/api/maplibre/context/struct.ViewState.html +++ b/docs/api/maplibre/world/struct.ViewState.html @@ -1,9 +1,9 @@ -ViewState in maplibre::context - Rust
    pub struct ViewState {
    -    pub zoom: ChangeObserver<Zoom>,
    -    pub camera: ChangeObserver<Camera>,
    -    pub perspective: Perspective,
    +ViewState in maplibre::world - Rust
    pub struct ViewState {
    +    zoom: ChangeObserver<Zoom>,
    +    camera: ChangeObserver<Camera>,
    +    perspective: Perspective,
     }
    Expand description

    Stores the camera configuration.

    -

    Fields

    zoom: ChangeObserver<Zoom>camera: ChangeObserver<Camera>perspective: Perspective

    Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Fields

    zoom: ChangeObserver<Zoom>camera: ChangeObserver<Camera>perspective: Perspective

    Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    Immutably borrows from an owned value. Read more

    Mutably borrows from an owned value. Read more

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/docs/api/maplibre/world/struct.World.html b/docs/api/maplibre/world/struct.World.html new file mode 100644 index 00000000..7b0aedbd --- /dev/null +++ b/docs/api/maplibre/world/struct.World.html @@ -0,0 +1,34 @@ +World in maplibre::world - Rust

    pub struct World {
    +    pub view_state: ViewState,
    +    pub tile_repository: TileRepository,
    +}

    Fields

    view_state: ViewStatetile_repository: TileRepository

    Implementations

    Auto Trait Implementations

    Blanket Implementations

    Gets the TypeId of self. Read more

    +

    Immutably borrows from an owned value. Read more

    +

    Mutably borrows from an owned value. Read more

    +

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read more

    +

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read more

    +

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s. Read more

    +

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &mut Any’s vtable from &mut Trait’s. Read more

    +

    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

    +

    Returns the argument unchanged.

    +

    Instruments this type with the provided Span, returning an +Instrumented wrapper. Read more

    +

    Instruments this type with the current Span, returning an +Instrumented wrapper. Read more

    +

    Calls U::from(self).

    +

    That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

    +

    Should always be Self

    +

    The type returned in the event of a conversion error.

    +

    Performs the conversion.

    +

    The type returned in the event of a conversion error.

    +

    Performs the conversion.

    +

    Attaches the provided Subscriber to this type, returning a +WithDispatch wrapper. Read more

    +

    Attaches the current default Subscriber to this type, returning a +WithDispatch wrapper. Read more

    +
    \ No newline at end of file diff --git a/docs/api/search-index.js b/docs/api/search-index.js index 2ba215a9..b50aa1e0 100644 --- a/docs/api/search-index.js +++ b/docs/api/search-index.js @@ -1,5 +1,5 @@ var searchIndex = JSON.parse('{\ -"maplibre":{"doc":"Maplibre-rs","t":[3,3,3,12,12,11,11,11,11,11,11,0,11,11,11,11,11,11,11,0,0,14,11,11,11,0,0,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,0,0,11,12,12,12,14,11,0,0,12,12,11,11,11,0,12,12,0,0,12,12,0,0,11,11,11,11,11,11,11,11,11,11,11,11,0,12,12,0,12,11,11,11,11,11,11,11,0,0,6,3,8,3,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,12,0,3,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,12,12,12,3,17,17,17,3,3,17,3,17,3,3,3,3,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,12,16,8,16,16,16,16,4,13,13,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,3,3,0,11,11,11,11,11,11,12,11,11,12,12,11,11,0,11,11,11,11,12,12,12,0,0,11,0,0,0,11,0,11,11,11,11,12,12,6,8,6,8,16,4,4,3,3,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,12,10,11,12,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,4,3,3,3,13,13,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,3,3,16,16,3,3,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,6,13,8,3,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,4,3,13,13,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,3,3,3,3,8,16,8,16,8,8,16,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,13,3,13,3,13,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,11,11,12,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,12,12,17,0,0,5,0,0,3,12,0,5,0,0,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,17,3,3,3,12,11,11,11,11,11,11,11,11,12,11,0,5,12,11,12,11,11,0,0,11,11,12,0,0,11,11,11,12,11,11,11,11,11,11,11,11,0,0,12,12,12,11,12,12,11,12,11,2,0,0,12,11,11,0,0,12,0,0,11,12,11,11,12,12,0,12,0,12,11,11,11,11,11,11,11,11,12,12,12,12,3,17,3,3,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,17,0,0,17,16,4,8,13,13,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,13,4,13,13,4,3,3,13,3,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,3,13,4,4,3,4,13,3,3,3,4,3,4,13,13,13,13,3,3,4,4,4,13,13,13,13,13,13,11,11,11,11,11,12,0,12,12,11,11,0,12,11,11,11,11,11,0,12,12,12,12,12,12,12,12,12,11,11,11,11,12,12,12,11,0,12,12,12,0,12,12,12,12,10,12,12,12,12,11,11,11,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,13,13,13,13,13,13,13,4,3,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,3,18,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,3,3,13,13,13,8,3,4,4,3,13,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,13,3,3,4,4,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,0,0,17,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,17,17,3,6,3,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,0,11,11,11,11,11,12,11,11,11,11,11,8,13,8,8,4,16,13,11,11,11,11,11,10,11,11,11,11,11,10,14,10,11,11,11,11,3,4,3,3,3,17,13,3,3,4,13,13,17,3,13,17,13,8,8,3,3,3,13,3,4,13,3,17,3,3,13,3,12,12,12,12,12,12,12,12,0,12,12,12,12,10,12,12,12,12,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,12,0,12,12,12,12,12,12,0,12,12,12,0,12,12,0,12,12,12,12,12,12,12,12,10,12,12,12,12,12,3,3,4,3,17,13,17,3,13,17,13,3,17,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,12,12,12,12,12,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,8,3,11,11,11,11,12,10,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,12,3,3,3,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,12,13,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,12,12,12,12,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,18,18,13,18,18,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,18,18,18,18,18,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,18,13,13,13,18,3,13,18,18,18,18,18,3,18,18,18,18,18,18,4,13,13,13,13,13,13,13,13,13,13,13,13,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,18,18,18,18,18,18,18,4,18,18,18,18,18,18,18,18,4,18,18,18,18,18,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,6,8,3,3,3,3,3,3,3,3,6,6,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,13,3,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,0,11,11,11,11,0,11,11,11,11,11,11,11,11,11,0,0,5,12,0,11,11,11,11,11,11,11,11,11,11,12,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,12,11,11,12,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,12,3,17,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,6,3,3,3,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,12,0,5,0,11,11,11,11,11,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,5,11,11,11,11,3,13,3,13,3,13,3,13,3,3,13,3,13,3,13,3,13,3,13,16,8,8,16,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,18,3,13,3,13,3,3,13,18,4,3,3,13,3,13,3,13,3,13,3,13,3,13,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,0,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,12,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,3,13,3,4,13,3,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,12,13,4,13,4,6,6,13,3,13,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,12,11,11,11,11,11,12,12,8,17,6,3,8,3,10,10,12,10,12,0,6,3,12,12,12,12,12,12,3,4,3,13,13,13,13,3,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,12,12,3,16,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,12,11,11,0,12,12,11,11,11,11,11,11,11,11,11,0,0,12,12,12,12,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,5,5,8,8,10,10,10,10,12,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,12,5,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,8,8,16,8,16,3,11,11,11,11,11,11,11,10,11,11,11,11,11,11,12,10,11,11,11,11,11,11,10,10,11,11,11,11,11,11,12],"n":["Map","MapBuilder","UninitializedMap","apc","apc","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","benchmarking","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build","context","coords","define_label","downcast","downcast","downcast","environment","error","from","from","from","http_client","http_client","initialize","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","io","map_schedule","map_schedule","map_schedule","map_window_config","map_window_config","multi_stage","new","platform","render","renderer_settings","renderer_settings","run","run_with_max_frames","run_with_optionally_max_frames","schedule","scheduler","scheduler","stages","style","style","style","tessellation","tile","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","util","wgpu_settings","wgpu_settings","window","window","with_apc","with_http_client","with_map_window_config","with_renderer_settings","with_scheduler","with_style","with_wgpu_settings","io","tessellation","IndexDataType","OverAlignedVertexBuffer","Tessellated","VertexConstructor","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","buffer","clone","clone_into","downcast","downcast","empty","from","from","from","from_slices","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new_vertex","new_vertex","tessellate","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","usable_indices","zero_tessellator","ZeroTessellator","as_any","as_any_mut","borrow","borrow_mut","buffer","current_index","default","downcast","end","feature_end","feature_indices","from","into","into_any","into_any_rc","is_point","linestring_begin","linestring_end","multilinestring_begin","multilinestring_end","multipoint_begin","multipoint_end","multipolygon_begin","multipolygon_end","path_builder","path_open","point_begin","point_end","polygon_begin","polygon_end","tessellate_fill","tessellate_strokes","try_from","try_into","type_id","upcast","update_feature_indices","xy","MapContext","ViewState","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","camera","create_view_region","downcast","downcast","from","from","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","perspective","renderer","style","tile_repository","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update_zoom","view_projection","view_state","visible_level","zoom","zoom","0","0","0","0","AlignedWorldTileCoords","EXTENT","EXTENT_SINT","EXTENT_UINT","InnerCoords","LatLon","MAX_ZOOM","Quadkey","TILE_SIZE","TileCoords","ViewRegion","WorldCoords","WorldTileCoords","ZOOM_BOUNDS","Zoom","ZoomLevel","add","add","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","at_ground","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_quad_key","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","create_zoom_bounds","default","default","default","default","default","default","default","deserialize","deserialize","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_lat_lon","get_children","get_hash","get_hash","get_hash","get_parent","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into_aligned","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_tile","into_world_tile","into_world_tile","is_in_view","is_root","is_valid_bit_pattern","iter","latitude","level","longitude","lower_left","lower_right","max_n_tiles","max_tile","min_tile","ne","ne","ne","ne","ne","ne","ne","new","new","new","new","new","padding","partial_cmp","partial_cmp","partial_cmp","scale_delta","scale_to_tile","scale_to_zoom_level","serialize","serialize","sub","sub","tiles_with_z","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","transform_for_zoom","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upper_left","upper_right","x","x","x","x","y","y","y","y","z","z","zoom_level","zoom_level","AsyncProcedureCall","Environment","HttpClient","MapWindowConfig","Scheduler","Transferables","Error","Network","Render","RenderError","Schedule","Surface","Tesselation","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","downcast","downcast","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","should_exit","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","0","0","0","0","RawLayer","TileRequest","apc","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","coords","deserialize","downcast","extent","features","fmt","from","geometry_index","into","into_any","into_any_arc","into_any_rc","keys","layers","name","pipeline","scheduler","serialize","source_client","tile_pipelines","tile_repository","to_owned","transferables","try_from","try_into","type_id","upcast","values","version","AsyncProcedure","AsyncProcedureCall","AsyncProcedureFuture","Context","Context","Input","Message","SchedulerAsyncProcedureCall","SchedulerContext","TessellatedLayer","TileRequest","TileTessellated","UnavailableLayer","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","channel","clone","clone","clone","clone_into","clone_into","clone_into","deserialize","downcast","downcast","downcast","downcast","from","from","from","from","http_client","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","receive","receive","schedule","schedule","scheduler","send","send","sender","serialize","source_client","source_client","source_client","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","0","0","0","0","ExactGeometry","GeometryIndex","IndexProcessor","IndexedGeometry","LineString","Linear","Polygon","Spatial","TileIndex","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds","build_tree","clone","clone","clone_into","clone_into","contains_point","dataset_begin","dataset_end","distance_2","downcast","downcast","downcast","downcast","downcast","envelope","exact","feature_begin","feature_end","fmt","fmt","from","from","from","from","from","from_linestring","from_polygon","geo_writer","geometries","geometry_begin","geometry_end","get_geometries","index","index_tile","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","linestring_begin","linestring_end","multilinestring_begin","multilinestring_end","multipoint_begin","multipolygon_begin","new","new","point_begin","point_query","polygon_begin","polygon_end","properties","properties","properties_begin","properties_end","property","query_point","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","xy","0","0","list","tree","ClosureProcessable","DataPipeline","Input","Output","PipelineContext","PipelineEnd","PipelineProcessor","Processable","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","downcast","downcast","downcast","downcast","from","from","from","from","from","from","func","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","layer_indexing_finished","layer_tesselation_finished","layer_unavailable","new","new","next_step","phantom","phantom_i","process","process","process","process","processor","processor_mut","step","take_processor","tile_finished","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","NopScheduler","Scheduler","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_arc","into_any_rc","schedule","schedule","try_from","try_into","type_id","upcast","HTTPClientFactory","Http","HttpClient","HttpSourceClient","Mbtiles","SourceClient","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","downcast","downcast","fetch","fetch","fetch","from","from","inner_client","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","0","IndexLayer","ParseTile","TessellateLayer","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build_vector_tile_pipeline","default","default","default","downcast","downcast","downcast","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","process","process","process","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","Failed","Pending","StoredLayer","StoredTile","Success","TessellatedLayer","TileRepository","TileStatus","UnavailableLayer","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","create_tile","default","downcast","downcast","downcast","downcast","dyn_eq","eq","equivalent","fail","from","from","from","from","get_coords","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_layers_missing","iter_tessellated_layers_at","layer_name","layers","needs_fetching","new","new","put_tessellated_layer","retain_missing_layer_names","status","success","tree","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","buffer","coords","coords","feature_indices","layer_name","layer_name","DefaultTessellatedLayer","DefaultTileTessellated","DefaultTransferables","DefaultUnavailableLayer","TessellatedLayer","TessellatedLayer","TileTessellated","TileTessellated","Transferables","UnavailableLayer","UnavailableLayer","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","clone","clone_into","coords","coords","coords","coords","coords","downcast","downcast","downcast","downcast","feature_indices","from","from","from","from","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","layer_data","layer_name","new","new","new","new","new","new","to_owned","to_stored_layer","to_stored_layer","to_stored_layer","to_stored_layer","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","EventuallyMapContext","Full","InteractiveMapSchedule","Premature","PrematureMapContext","_Uninitialized","apc","apc","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","downcast","downcast","downcast","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","is_initialized","late_init","make_full","map_context","map_window_config","new","renderer_settings","resize","resume","schedule","style","suspend","suspended","tile_repository","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","update_and_redraw","view_state","view_state_mut","wgpu_settings","0","0","MIN_WEBGL_BUFFER_SIZE","http_client","noweb","run_multithreaded","scheduler","trace","ReqwestHttpClient","client","http_client","run_multithreaded","scheduler","trace","ReqwestHttpClient","as_any","as_any_mut","borrow","borrow_mut","client","clone","clone_into","downcast","fetch","from","into","into_any","into_any_arc","into_any_rc","new","to_owned","try_from","try_into","type_id","upcast","TokioScheduler","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_arc","into_any_rc","new","schedule","try_from","try_into","type_id","upcast","TokioScheduler","INDEX_FORMAT","RenderState","Renderer","ShaderVertex","adapter_info","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","buffer_pool","buffer_pool_mut","camera","create_default_render_graph","depth_texture","device","device","downcast","downcast","draw_graph","eventually","from","from","globals_bind_group","graph","graph_runner","initialize","initialize_headless","instance","instance","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","main_graph","main_pass","mask_phase","mask_pipeline","multisampling_texture","new","normal","position","queue","queue","recreate_surface","register_default_render_stages","render_commands","render_phase","render_target","request_device","resize","resource","settings","settings","shaders","stages","state","state","surface","surface","surface","tile_phase","tile_pipeline","tile_pipeline","tile_view_pattern","tile_view_pattern","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","wgpu_settings","0","0","0","Camera","FLIP_Y","InvertedViewProjection","ModelViewProjection","OPENGL_TO_WGPU_MATRIX","Perspective","ViewProjection","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calc_matrix","calc_matrix","calc_view_proj","clip_to_window","clip_to_window_transform","clip_to_window_vulkan","clone","clone_into","current_projection","downcast","downcast","downcast","downcast","downcast","downcast","downcast","fmt","fmt","fovy","from","from","from","from","from","height","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","invert","ne","new","new","pitch","position","project","project","resize","resize","to_model_view_projection","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","view_region_bounding_box","view_region_bounding_box_ndc","width","window_to_world","window_to_world_at_ground","window_to_world_nalgebra","yaw","zfar","znear","NAME","input","node","MAIN_PASS","Criteria","Eventually","HasChanged","Initialized","Uninitialized","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","has_changed","initialize","into","into_any","into_any_arc","into_any_rc","reinitialize","take","try_from","try_into","type_id","upcast","0","0","Buffer","Buffer","DoesNotExist","Edge","EdgeAlreadyExists","EdgeDoesNotExist","EdgeExistence","Edges","EmptyNode","Exists","GraphInputNode","Id","Index","InputSlotError","InputSlotError","InvalidInputNodeSlot","InvalidNode","InvalidOutputNodeSlot","InvalidSlot","InvalidSlot","MismatchedInputSlotType","MismatchedNodeSlots","MismatchedSlotType","MismatchedSlotType","MissingInput","MissingSubGraph","Name","Name","Node","NodeEdge","NodeId","NodeInputSlotAlreadyOccupied","NodeLabel","NodeRunError","NodeState","OutputSlotError","OutputSlotError","RenderContext","RenderGraph","RenderGraphContext","RenderGraphError","RunSubGraph","RunSubGraphError","RunSubGraphError","Sampler","Sampler","SlotEdge","SlotInfo","SlotInfos","SlotLabel","SlotType","SlotValue","SubGraphHasNoInputs","TextureView","TextureView","UnconnectedNodeInputSlot","UnconnectedNodeOutputSlot","WrongNodeType","as_any","as_any","as_any_mut","borrow","borrow_mut","command_encoder","context","current_id","device","downcast","dyn_eq","edge","edges","eq","equivalent","fmt","fmt","from","graph","graph","id","id","input_edges","input_node","input_slots","inputs","inputs","inputs","into","into_any","into_any_arc","into_any_rc","name","name","name","ne","node","node","node","node_names","node_slot","nodes","output_edges","output_slots","outputs","run","run_sub_graphs","slot_type","slots","sub_graphs","to_string","try_from","try_into","type_id","type_name","upcast","input_index","input_node","input_node","output_index","output_node","output_node","0","actual","expected","label","0","0","0","0","0","0","actual","expected","label","0","0","0","0","0","input_node","input_slot","input_slot","input_slot","node","node","node","occupied_by_node","output_node","output_slot","output_slot","0","0","actual","expected","graph_name","graph_name","label","slot_index","slot_index","slot_name","0","0","0","0","0","InputSlotError","InvalidSlot","InvalidSlot","MismatchedInputSlotType","MismatchedSlotType","MismatchedSlotType","MissingInput","MissingSubGraph","OutputSlotError","RenderGraphContext","RunSubGraph","RunSubGraphError","SubGraphHasNoInputs","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","eq","eq","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_input","get_input_buffer","get_input_sampler","get_input_texture","graph","input_info","inputs","inputs","inputs","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","name","ne","ne","ne","new","node","output_info","outputs","run_sub_graph","run_sub_graphs","set_output","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","actual","expected","label","0","actual","expected","label","0","0","actual","expected","graph_name","graph_name","label","slot_index","slot_index","slot_name","DoesNotExist","Edge","EdgeExistence","Exists","NodeEdge","SlotEdge","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","downcast","downcast","dyn_eq","dyn_eq","eq","eq","equivalent","equivalent","fmt","from","from","get_input_node","get_output_node","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","input_index","input_node","input_node","output_index","output_node","output_node","GraphInputNode","INPUT_NODE_NAME","RenderGraph","add_node","add_node_edge","add_slot_edge","add_sub_graph","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","current_id","default","downcast","downcast","fmt","from","from","get_node","get_node_id","get_node_mut","get_node_state","get_node_state_mut","get_sub_graph","get_sub_graph_mut","has_edge","input","input_node","input_node","inputs","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","iter_node_inputs","iter_node_outputs","iter_nodes","iter_nodes_mut","iter_sub_graphs","iter_sub_graphs_mut","node_names","nodes","output","remove_node","remove_node_edge","remove_slot_edge","remove_sub_graph","run","set_input","sub_graphs","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","validate_edge","0","Edges","EmptyNode","Id","InputSlotError","Name","Node","NodeId","NodeLabel","NodeRunError","NodeState","OutputSlotError","RenderContext","RunSubGraphError","add_input_edge","add_output_edge","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","command_encoder","device","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast_mut","downcast_rc","downcast_ref","dyn_eq","dyn_eq","dyn_eq","dyn_hash","edges","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_hash","get_input_slot_edge","get_output_slot_edge","has_input_edge","has_output_edge","hash","id","id","id","input","input","input_edges","input_edges","input_slots","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","name","ne","ne","ne","new","new","node","node","node_mut","output","output","output_edges","output_edges","output_slots","partial_cmp","remove_input_edge","remove_output_edge","run","run","source","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_name","upcast","upcast","upcast","upcast","upcast","upcast","upcast","update","update","validate_input_slots","validate_output_slots","0","0","0","0","0","Buffer","Buffer","Index","Name","Sampler","Sampler","SlotInfo","SlotInfos","SlotLabel","SlotType","SlotValue","TextureView","TextureView","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_slot","get_slot_index","get_slot_mut","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_empty","iter","len","name","ne","new","slot_type","slot_type","slots","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","0","0","0","0","EmptyNodeOutputSlot","MismatchedInputSlotType","MissingInput","NodeRunError","RenderGraphRunner","RenderGraphRunnerError","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","downcast","downcast","fmt","fmt","from","from","from","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","run","run_graph","source","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","0","actual","expected","graph_name","label","slot_index","slot_index","slot_index","slot_name","slot_name","type_name","input","node","MAIN_PASS_DEPENDENCIES","MAIN_PASS_DRIVER","MainPassDriverNode","MainPassNode","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","downcast","downcast","from","from","graph","input","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","run","run","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","input","node","MAIN_PASS_DEPENDENCIES","MAIN_PASS_DRIVER","DrawMask","DrawMasks","DrawTile","DrawTiles","SetMaskPipeline","SetTilePipeline","SetViewBindGroup","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","downcast","downcast","downcast","downcast","downcast","from","from","from","from","from","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","render","render","render","render","render","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","RenderPhase","add","as_any","as_any_mut","borrow","borrow_mut","default","downcast","draw","from","into","into_any","into_any_arc","into_any_rc","items","sort","try_from","try_into","type_id","upcast","Draw","Failure","PhaseItem","RenderCommand","RenderCommandResult","SortKey","Success","as_any","as_any_mut","borrow","borrow_mut","downcast","draw","from","into","into_any","into_any_arc","into_any_rc","render","render_command_tuple_impl","sort_key","try_from","try_into","type_id","upcast","BackingBufferDescriptor","BackingBufferType","BufferDimensions","BufferPool","BufferedTextureHead","FEATURE_METADATA_SIZE","FeatureMetadata","FragmentState","Globals","Head","Headed","Headless","INDICES_SIZE","IndexEntry","Indices","LAYER_METADATA_SIZE","Metadata","Queue","RenderPipeline","RenderPipelineDescriptor","RingIndex","Surface","SurfaceTexture","Texture","TextureView","TextureView","TrackedRenderPass","VERTEX_SIZE","VertexBufferLayout","VertexState","Vertices","WindowHead","array_stride","attributes","bind_group","buffer","buffer_dimensions","buffer_feature_metadata","buffer_indices","buffer_layer_metadata","buffer_pool","buffer_vertices","buffers","coords","depth_stencil","describe_render_pipeline","entry_point","entry_point","feature_metadata","fragment","globals","head","height","index","indices","inner_size","label","layer_metadata","layout","linear_index","multisample","output_buffer","padded_bytes_per_row","pass","phantom_fm","phantom_i","phantom_m","phantom_q","phantom_v","pipeline","primitive","shader","size","size","source","source","step_mode","style_layer","surface","surface","surface_config","targets","texture","texture","texture","tracked_render_pass","tree_index","uniform_buffer","unpadded_bytes_per_row","usable_indices","vertex","vertices","view","width","write_buffer","0","0","0","texture","view","BackingBuffer","BackingBufferDescriptor","BackingBufferType","BufferPool","FEATURE_METADATA_SIZE","FeatureMetadata","INDICES_SIZE","IndexEntry","Indices","LAYER_METADATA_SIZE","Metadata","RingIndex","VERTEX_SIZE","Vertices","align","allocate_layer_geometry","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","back","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","buffer_feature_metadata","buffer_indices","buffer_layer_metadata","buffer_vertices","clear","clear","clone","clone_into","coords","downcast","downcast","downcast","downcast","downcast","downcast","feature_metadata","feature_metadata","feature_metadata_buffer_range","find_largest_gap","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_device","front","get_layers","get_layers_fallback","get_loaded_layers_at","get_tile_coords_fallback","has_tile","index","index","indices","indices","indices_buffer_range","indices_range","inner","inner_size","inner_size","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","iter","layer_metadata","layer_metadata_buffer_range","linear_index","make_room","metadata","new","new","new","new","phantom_fm","phantom_i","phantom_m","phantom_q","phantom_v","pop_front","push_back","style_layer","to_owned","tree_index","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","typ","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","update_feature_metadata","update_layer_metadata","usable_indices","vertices","vertices","vertices_buffer_range","Globals","as_any","as_any_mut","bind_group","borrow","borrow_mut","downcast","from","from_device","into","into_any","into_any_arc","into_any_rc","try_from","try_into","type_id","uniform_buffer","upcast","RenderPipeline","RenderPipelineDescriptor","as_any","as_any_mut","borrow","borrow_mut","depth_stencil","describe_render_pipeline","downcast","fragment","from","initialize","into","into_any","into_any_arc","into_any_rc","label","layout","multisample","primitive","try_from","try_into","type_id","upcast","vertex","FragmentState","VertexBufferLayout","VertexState","array_stride","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","attributes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffers","clone","clone","clone","clone_into","clone_into","clone_into","downcast","downcast","downcast","entry_point","entry_point","eq","fmt","fmt","fmt","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","ne","source","source","step_mode","targets","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","BufferDimensions","BufferedTextureHead","Head","Headed","Headless","Surface","WindowHead","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer_dimensions","configure","create_view","downcast","downcast","downcast","downcast","downcast","from","from","from","from","from","from_image","from_window","has_changed","head","head","head_mut","height","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","output_buffer","padded_bytes_per_row","reconfigure","recreate","recreate_surface","resize","resize_and_configure","size","size","surface","surface","surface_config","texture","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unpadded_bytes_per_row","upcast","upcast","upcast","upcast","upcast","width","0","0","SurfaceTexture","Texture","TextureView","TextureView","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","deref","downcast","downcast","fmt","from","from","from","from","has_changed","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","size","take_surface_texture","texture","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","view","0","texture","view","TrackedRenderPass","as_any","as_any_mut","borrow","borrow_mut","downcast","draw","draw_indexed","draw_indexed_indirect","draw_indirect","from","insert_debug_marker","into","into_any","into_any_arc","into_any_rc","new","pass","pop_debug_group","push_debug_group","set_bind_group","set_blend_constant","set_index_buffer","set_push_constants","set_render_pipeline","set_scissor_rect","set_stencil_reference","set_vertex_buffer","set_viewport","try_from","try_into","type_id","upcast","ADDRESS_MODE_CLAMP_TO_BORDER","ADDRESS_MODE_CLAMP_TO_ZERO","Astc","BROWSER_WEBGPU","BUFFER_BINDING_ARRAY","Backends","Bc1RgbaUnorm","Bc1RgbaUnormSrgb","Bc2RgbaUnorm","Bc2RgbaUnormSrgb","Bc3RgbaUnorm","Bc3RgbaUnormSrgb","Bc4RSnorm","Bc4RUnorm","Bc5RgSnorm","Bc5RgUnorm","Bc6hRgbSfloat","Bc6hRgbUfloat","Bc7RgbaUnorm","Bc7RgbaUnormSrgb","Bgra8Unorm","Bgra8UnormSrgb","CLEAR_TEXTURE","CONSERVATIVE_RASTERIZATION","DEPTH32FLOAT_STENCIL8","DEPTH_CLIP_CONTROL","DX11","DX12","Depth16Unorm","Depth24Plus","Depth24PlusStencil8","Depth32Float","Depth32FloatStencil8","EacR11Snorm","EacR11Unorm","EacRg11Snorm","EacRg11Unorm","Etc2Rgb8A1Unorm","Etc2Rgb8A1UnormSrgb","Etc2Rgb8Unorm","Etc2Rgb8UnormSrgb","Etc2Rgba8Unorm","Etc2Rgba8UnormSrgb","Features","GL","Headed","Headless","HighPerformance","INDIRECT_FIRST_INSTANCE","Limits","LowPower","MAPPABLE_PRIMARY_BUFFERS","METAL","MULTIVIEW","MULTI_DRAW_INDIRECT","MULTI_DRAW_INDIRECT_COUNT","Msaa","PARTIALLY_BOUND_BINDING_ARRAY","PIPELINE_STATISTICS_QUERY","POLYGON_MODE_LINE","POLYGON_MODE_POINT","PRIMARY","PUSH_CONSTANTS","PowerPreference","R16Float","R16Sint","R16Snorm","R16Uint","R16Unorm","R32Float","R32Sint","R32Uint","R8Sint","R8Snorm","R8Uint","R8Unorm","RendererSettings","Rg11b10Float","Rg16Float","Rg16Sint","Rg16Snorm","Rg16Uint","Rg16Unorm","Rg32Float","Rg32Sint","Rg32Uint","Rg8Sint","Rg8Snorm","Rg8Uint","Rg8Unorm","Rgb10a2Unorm","Rgb9e5Ufloat","Rgba16Float","Rgba16Sint","Rgba16Snorm","Rgba16Uint","Rgba16Unorm","Rgba32Float","Rgba32Sint","Rgba32Uint","Rgba8Sint","Rgba8Snorm","Rgba8Uint","Rgba8Unorm","Rgba8UnormSrgb","SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING","SECONDARY","SHADER_FLOAT16","SHADER_FLOAT64","SHADER_PRIMITIVE_INDEX","SPIRV_SHADER_PASSTHROUGH","STORAGE_RESOURCE_BINDING_ARRAY","SurfaceType","TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES","TEXTURE_BINDING_ARRAY","TEXTURE_COMPRESSION_ASTC_HDR","TEXTURE_COMPRESSION_ASTC_LDR","TEXTURE_COMPRESSION_BC","TEXTURE_COMPRESSION_ETC2","TEXTURE_FORMAT_16BIT_NORM","TIMESTAMP_QUERY","TextureFormat","UNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING","VERTEX_ATTRIBUTE_64BIT","VERTEX_WRITABLE_STORAGE","VULKAN","WRITE_TIMESTAMP_INSIDE_PASSES","WgpuSettings","all","all","all_native_mask","all_webgpu_mask","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","backends","bitand","bitand","bitand_assign","bitand_assign","bitor","bitor","bitor_assign","bitor_assign","bits","bits","bits","bits","bitxor","bitxor","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_limits","check_limits_with_fail_fn","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","complement","complement","constrained_limits","contains","contains","default","default","default","default","default","default","depth_texture_format","describe","device_label","difference","difference","disabled_features","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downlevel_defaults","downlevel_webgl2_defaults","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","empty","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","extend","extend","features","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","get_hash","get_hash","get_hash","get_hash","get_hash","hash","hash","hash","hash","hash","insert","insert","intersection","intersection","intersects","intersects","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_active","is_all","is_all","is_empty","is_empty","limits","max_bind_groups","max_bindings_per_bind_group","max_buffer_size","max_compute_invocations_per_workgroup","max_compute_workgroup_size_x","max_compute_workgroup_size_y","max_compute_workgroup_size_z","max_compute_workgroup_storage_size","max_compute_workgroups_per_dimension","max_dynamic_storage_buffers_per_pipeline_layout","max_dynamic_uniform_buffers_per_pipeline_layout","max_inter_stage_shader_components","max_push_constant_size","max_sampled_textures_per_shader_stage","max_samplers_per_shader_stage","max_storage_buffer_binding_size","max_storage_buffers_per_shader_stage","max_storage_textures_per_shader_stage","max_texture_array_layers","max_texture_dimension_1d","max_texture_dimension_2d","max_texture_dimension_3d","max_uniform_buffer_binding_size","max_uniform_buffers_per_shader_stage","max_vertex_attributes","max_vertex_buffer_array_stride","max_vertex_buffers","min_storage_buffer_offset_alignment","min_uniform_buffer_offset_alignment","msaa","ne","ne","ne","ne","not","not","partial_cmp","partial_cmp","power_preference","record_trace","remove","remove","samples","set","set","sub","sub","sub_assign","sub_assign","symmetric_difference","symmetric_difference","texture_format","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","using_alignment","using_resolution","block","channel","Mat4x4f32","Shader","ShaderCamera","ShaderFeatureStyle","ShaderGlobals","ShaderLayerMetadata","ShaderTileMetadata","ShaderVertex","TileMaskShader","TileShader","Vec2f32","Vec3f32","Vec4f32","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","camera","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","color","default","default","describe_fragment","describe_fragment","describe_fragment","describe_vertex","describe_vertex","describe_vertex","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","draw_colors","fmt","format","format","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","new","new","new","new","new","normal","position","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transform","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","view_position","view_proj","z_index","zoom_factor","Cleanup","PhaseSort","Prepare","PrepareStage","Queue","Render","RenderStageLabel","as_any","as_any","as_any","as_any_mut","as_any_mut","as_dyn_eq","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","downcast","downcast","dyn_eq","dyn_hash","eq","equivalent","extract","extract_stage","fmt","from","from","get_hash","graph_runner_stage","hash","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","phase_sort_stage","queue_stage","register_default_render_stages","resource","resource_stage","run","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","upload","upload_stage","ExtractStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","GraphRunnerStage","as_any","as_any_mut","borrow","borrow_mut","downcast","from","graph","into","into_any","into_any_arc","into_any_rc","new","run","try_from","try_into","type_id","upcast","PhaseSortStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","QueueStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","ResourceStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","UploadStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","update_metadata","upload_tile_geometry","upload_tile_view_pattern","TilePipeline","as_any","as_any_mut","bind_globals","borrow","borrow_mut","debug_stencil","describe_render_pipeline","downcast","fragment_state","from","into","into_any","into_any_arc","into_any_rc","new","settings","try_from","try_into","type_id","upcast","update_stencil","vertex_state","wireframe","BackingBuffer","DEFAULT_TILE_VIEW_SIZE","TileInView","TileShape","TileViewPattern","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","buffer","buffer_range","clone","clone","clone_into","clone_into","coords","downcast","downcast","downcast","downcast","fallback","fmt","from","from","from","from","in_view","inner","inner_size","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","iter","new","new","new","phantom_q","shape","sort_key","stencil_reference_value","to_owned","to_owned","transform","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","update_pattern","upload_pattern","zoom_factor","BoxedStageLabel","MultiStage","NopStage","Schedule","Stage","StageLabel","add_stage","add_stage_after","add_stage_before","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","default","downcast","downcast","downcast","downcast","downcast_mut","downcast_rc","downcast_ref","eq","from","from","from","get_stage","get_stage_mut","hash","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","is","iter_stages","new","run","run","run","run","run_once","stage","stage_order","stages","stages","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","HeadedPipelineProcessor","as_any","as_any_mut","borrow","borrow_mut","context","downcast","from","into","into_any","into_any_arc","into_any_rc","layer_indexing_finished","layer_tesselation_finished","layer_unavailable","phantom_hc","phantom_t","populate_tile_store_stage","register_stages","request_stage","tile_finished","try_from","try_into","type_id","upcast","PopulateTileStore","apc","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_rc","new","run","try_from","try_into","type_id","upcast","RequestStage","apc","as_any","as_any_mut","borrow","borrow_mut","downcast","from","http_source_client","into","into_any","into_any_rc","new","request_tile","request_tiles_in_view","run","schedule","try_from","try_into","type_id","upcast","Aces2065","Aces2065","AcesCc","AcesCc","AcesCct","AcesCct","AcesCg","AcesCg","Alpha","Bt2020","Bt2020","Bt2100","Bt2100","CieLCh","CieLCh","CieLab","CieLab","CieXYZ","CieXYZ","CintTy","ColorInterop","ColorType","ComponentTy","DciP3","DciP3","DciXYZPrime","DciXYZPrime","DisplayP3","DisplayP3","EncodedBt2020","EncodedBt2020","EncodedBt2100HLG","EncodedBt2100HLG","EncodedBt2100PQ","EncodedBt2100PQ","EncodedDisplayP3","EncodedDisplayP3","EncodedRec709","EncodedRec709","EncodedSrgb","EncodedSrgb","GenericColor1","GenericColor1","GenericColor3","GenericColor3","Hsl","Hsl","Hsv","Hsv","ICtCpHLG","ICtCpHLG","ICtCpPQ","ICtCpPQ","LinearSrgb","LinearSrgb","Luma","Luma","Luminance","Luminance","NUM_COMPONENTS","Oklab","Oklab","Oklch","Oklch","PremultipliedAlpha","Rec709","Rec709","SPACE","Spaces","Style","YCbCr","YCbCr","YCxCz","YCxCz","YPbPr","YPbPr","YPrimeCbCr","YPrimeCbCr","YPrimePbPr","YPrimePbPr","Yuv","Yuv","a","a","alpha","alpha","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","c","c","cb","cb","center","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","color","color","cp","cp","cr","cr","ct","ct","cx","cz","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_cint","g","g","g","g","g","g","g","g","g","g","g","g","g","g","g","g","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","h","h","h","h","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","i","i","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_cint","l","l","l","l","l","l","l","layer","layers","metadata","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","num_components","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pb","pb","pitch","pr","pr","r","r","r","r","r","r","r","r","r","r","r","r","r","r","r","r","s","s","source","sources","style","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","u","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","v","v","version","x","x","x","x","y","y","y","y","y","y","y","y","y","z","z","z","zoom","Background","BackgroundPaint","Fill","FillPaint","LayerPaint","Line","LinePaint","StyleLayer","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","background_color","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","deserialize","deserialize","downcast","downcast","downcast","downcast","downcast","fill_color","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_color","id","index","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","line_color","maxzoom","metadata","minzoom","paint","serialize","serialize","serialize","serialize","serialize","source","source_layer","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","typ","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","0","0","Raster","Source","TMS","TileAddressingScheme","TileJSONUrl","TileUrl","Vector","VectorSource","XYZ","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","attribution","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bounds","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","downcast","downcast","downcast","fmt","fmt","fmt","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","maxzoom","minzoom","scheme","serialize","serialize","serialize","tiles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","0","0","Style","as_any","as_any_mut","borrow","borrow_mut","center","clone","clone_into","default","deserialize","downcast","fmt","from","into","into_any","into_any_arc","into_any_rc","layers","metadata","name","pitch","serialize","sources","to_owned","try_from","try_into","type_id","upcast","version","zoom","Align","DEFAULT_TOLERANCE","IndexDataType","OverAlignedVertexBuffer","Tessellated","VertexConstructor","align_indices","align_vertices","buffer","tessellate","usable_indices","zero_tessellator","GeoResult","ZeroTessellator","buffer","current_index","feature_indices","is_point","path_builder","path_open","Feature","GeomType","Layer","Linestring","Point","Polygon","Unknown","Value","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","bool_value","bool_value","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clear","clear","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","default","default","default","default","double_value","double_value","downcast","downcast","downcast","downcast","dyn_eq","dyn_hash","encoded_len","encoded_len","encoded_len","eq","eq","eq","eq","equivalent","extent","extent","features","float_value","float_value","fmt","fmt","fmt","fmt","from","from","from","from","from_i32","geometry","get_hash","hash","id","id","int_value","int_value","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_valid","keys","name","ne","ne","ne","partial_cmp","process","process_geom","set_type","sint_value","sint_value","string_value","string_value","tags","to_geo","to_mvt","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type","type","type_id","type_id","type_id","type_id","uint_value","uint_value","upcast","upcast","upcast","upcast","values","version","ChangeObserver","Epsilon","FPSMeter","MinMaxBoundingBox","SignificantlyDifferent","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","default","deref","deref_mut","did_change","downcast","downcast","fps_meter","frame_count","from","from","grid","initialized","inner","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","is_initialized","label","math","max_x","max_y","min_x","min_y","ne","new","new","next_report","reference_value","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","update_reference","FPSMeter","as_any","as_any_mut","borrow","borrow_mut","downcast","frame_count","from","into","into_any","into_any_arc","into_any_rc","new","next_report","try_from","try_into","type_id","upcast","update_and_print","google_mercator","tile_coordinates_bavaria","DynEq","DynHash","as_any","as_dyn_eq","dyn_eq","dyn_hash","0","Aabb2","Aabb3","FloatOrd","Plane","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds_from_points","clone","clone_into","cmp","d","div_away","div_ceil","div_floor","downcast","downcast","downcast","downcast","dyn_eq","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from_point_normal","from_points","intersection_distance_ray","intersection_points_aabb3","intersection_polygon_aabb3","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","max","max","max","min","min","min","n","new","new","new","partial_cmp","to_corners","to_corners","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","EventLoop","HeadedMapWindow","MapWindow","MapWindow","MapWindowConfig","RawWindow","WindowSize","as_any","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","create","downcast","dyn_eq","eq","equivalent","from","height","height","inner","into","into_any","into_any_arc","into_any_rc","ne","new","run","size","to_owned","try_from","try_into","type_id","upcast","width","width"],"q":["maplibre","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::benchmarking","","maplibre::benchmarking::tessellation","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::benchmarking::tessellation::zero_tessellator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::context","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::coords","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::environment","","","","","","maplibre::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::error::Error","","","maplibre::error::RenderError","maplibre::io","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::apc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::apc::Input","maplibre::io::apc::Message","","","maplibre::io::geometry_index","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::geometry_index::ExactGeometry","","maplibre::io::geometry_index::TileIndex","","maplibre::io::pipeline","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::scheduler","","","","","","","","","","","","","","","","","","maplibre::io::source_client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::source_client::SourceClient","maplibre::io::tile_pipelines","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::tile_repository","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::tile_repository::StoredLayer","","","","","","maplibre::io::transferables","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::map_schedule","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::map_schedule::EventuallyMapContext","","maplibre::platform","","","","","","maplibre::platform::http_client","","maplibre::platform::noweb","","","","maplibre::platform::noweb::http_client","","","","","","","","","","","","","","","","","","","","","maplibre::platform::noweb::scheduler","","","","","","","","","","","","","","","","","maplibre::platform::scheduler","maplibre::render","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::camera","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::draw_graph","","","maplibre::render::draw_graph::node","maplibre::render::eventually","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::eventually::Eventually","maplibre::render::graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::Edge","","","","","","maplibre::render::graph::InputSlotError","","","","maplibre::render::graph::NodeLabel","","maplibre::render::graph::NodeRunError","","","maplibre::render::graph::OutputSlotError","","","","maplibre::render::graph::RenderGraphError","","","","","","","","","","","","","","","","maplibre::render::graph::RunSubGraphError","","","","","","","","","","maplibre::render::graph::SlotLabel","","maplibre::render::graph::SlotValue","","","maplibre::render::graph::context","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::context::InputSlotError","","","","maplibre::render::graph::context::OutputSlotError","","","","maplibre::render::graph::context::RunSubGraphError","","","","","","","","","","maplibre::render::graph::edge","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::edge::Edge","","","","","","maplibre::render::graph::graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node::NodeLabel","","maplibre::render::graph::node::NodeRunError","","","maplibre::render::graph::node_slot","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node_slot::SlotLabel","","maplibre::render::graph::node_slot::SlotValue","","","maplibre::render::graph_runner","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph_runner::RenderGraphRunnerError","","","","","","","","","","","maplibre::render::main_graph","","maplibre::render::main_graph::node","","maplibre::render::main_pass","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::main_pass::graph","","maplibre::render::main_pass::graph::node","","maplibre::render::render_commands","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::render_phase","","","","","","","","","","","","","","","","","","","","maplibre::render::render_phase::draw","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::Head","","maplibre::render::resource::TextureView","","","maplibre::render::resource::buffer_pool","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::globals","","","","","","","","","","","","","","","","","","maplibre::render::resource::pipeline","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::shader","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::surface","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::surface::Head","","maplibre::render::resource::texture","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::texture::TextureView","","","maplibre::render::resource::tracked_render_pass","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::settings::TextureFormat","","maplibre::render::shaders","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::stages","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::stages::extract_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::graph_runner_stage","","","","","","","","","","","","","","","","","","maplibre::render::stages::phase_sort_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::queue_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::resource_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::upload_stage","","","","","","","","","","","","","","","","","","","","maplibre::render::tile_pipeline","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::tile_view_pattern","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::schedule","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::stages","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::stages::populate_tile_store_stage","","","","","","","","","","","","","","","","","maplibre::stages::request_stage","","","","","","","","","","","","","","","","","","","","","maplibre::style","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::layer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::layer::LayerPaint","","","maplibre::style::source","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::source::Source","","maplibre::style::style","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::tessellation","","","","","","","","","","","","maplibre::tessellation::zero_tessellator","","","","","","","","maplibre::tile","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::util","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::util::fps_meter","","","","","","","","","","","","","","","","","","","maplibre::util::grid","","maplibre::util::label","","","","","","maplibre::util::math","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::window","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["The Map defines the public interface of the map renderer.","","Stores the map configuration before the map’s state has …","","","","","","","","","Collection of utilities used to perform certain …","","","","","","","Builds the UninitializedMap with the given configuration.","","Provides utilities related to coordinates.","Macro to define a new label trait","","","","","Errors which can happen in various parts of the library.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Initializes the whole rendering pipeline for the given …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Handles IO related processing as well as multithreading.","","","","","","","","Handles platform specific code. Depending on the …","This module implements the rendering algorithm of …","","","Starts the [crate::map_schedule::MapState] Runnable with …","Starts the [crate::map_schedule::MapState] Runnable with …","Starts the MapState Runnable with the configured event …","","","","Stages for requesting and preparing data","Vector tile format styling.","","","Tessellation for lines and polygons is implemented here.","Nested message and enum types in Tile.","","","","","","","","","","","","","Utils which are used internally","","","Utilities for the window system.","","","","","","","","","Re-export of the io module.","Re-export of the tessellation module.","Vertex buffers index data type.","Vertex buffer which includes additional padding to fulfill …","An element that can be tessellated into vertex buffers.","Constructor for Fill and Stroke vertices.","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns a vertex buffer which represents some object like …","","","","","","","","","","","Tessellator implementation.","Build tessellations with vectors.","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Stores the context of the map.","Stores the camera configuration.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An aligned world tile coordinate aligns a world coordinate …","","","","Within each tile there is a separate coordinate system. …","","","Represents the position of a node within a quad tree. The …","","Every tile has tile coordinates. These tile coordinates …","Defines a bounding box on a tiled map with a ZoomLevel and …","Actual coordinates within the 3D world. The z value of the …","Every tile has tile coordinates. Every tile coordinate can …","","Zoom is an exponential scale that defines the zoom of the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Adopted from tilebelt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Adopted from tilebelt","","","","Get the tile which is one zoom level lower and contains …","","","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the tile coords according to an addressing scheme. …","Transforms the tile coordinates as defined by the tile …","","","","","","","","","","","The maximum amount of tiles this view region contains","","","","","","","","","","","","","","","Padding around this view region","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","At which zoom level does this region exist","","","","","","","Enumeration of errors which can happen during the …","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Layers are described in section 4.1 of the specification","A request for a tile at the given coordinates and in the …","","","","","","","","","","","Although this is an “optional” field it is required by …","The actual features in this tile.","","Returns the argument unchanged.","Geometry index.","Calls U::from(self).","","","","Dictionary encoding for keys","","","","Scheduling.","","HTTP client.","","Tile cache.","","","","","","","Dictionary encoding for values","Any compliant implementation must first read the version …","","","","","","","The result of the tessellation of a tile. TessellatedLayer …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Contains either a polygon or line vector.","A quad tree storing the currently loaded tiles.","A processor able to create geometries using …","An indexed geometry contains an exact vector geometry, …","","","","","Index of tiles which can be of two types: spatial or …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Begin of dataset processing.","End of dataset processing.","","","","","","","","","Begin of feature processing.","End of feature processing.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Begin of feature geometry processing.","End of feature geometry processing.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Begin of feature property processing.","End of feature property processing.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A pipeline which consists of multiple steps. Steps are …","","","Context which is available to each step within a …","Marks the end of a DataPipeline","Processes events which happen during the pipeline execution","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Async/await scheduler. Can schedule a task from a future …","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","A closure that returns a HTTP client.","","On the web platform futures are not thread-safe (i.e. not …","Gives access to the HTTP client which can be of multiple …","","Defines the different types of HTTP clients such as basic …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","A layer which is stored for future use.","Stores multiple StoredLayers.","","","Stores and provides access to a quad tree of cached tiles …","","","","","","","","","","","","","","","","","","","","","Create a new tile.","","","","","","","","","Checks if a layer has been fetched.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Checks if a layer is missing from the given layers set at …","Returns the list of tessellated layers at the given world …","","","Checks if a layer has been fetched.","","","Inserts a tessellated layer into the quad tree at its …","Removes all the cached tessellate layers that are not …","","","","","","","","","","","","","","","","","","","","","","","Holds for each feature the count of indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Holds for each feature the count of indices.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Stores the state of the map, dispatches tile fetching and …","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Minimum WebGPU buffer size","Http client for non-web targets.","Module which is used target platform is not web related.","","Scheduler for non-web targets.","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","cache_path: Under which path should we cache requests.","","","","","","Multi-threading with Tokio.","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","Multi-threading with Tokio.","","","","","","","","","","","","","","","","Main camera","","","","","","","Labels for the “draw” graph","","Returns the argument unchanged.","Returns the argument unchanged.","","","Executes a RenderGraph","Initializes the renderer by retrieving and preparing the …","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","The main render pass for this application.","","","","","","","","","","","Specifies the instructions which are going to be sent to …","Describes the concept of a RenderPhase and PhaseItem","","Requests a device","","Utilities which holds references to GPU-owned. Usually a …","Settings for the renderer","","","Rendering specific Stages","","","","","","","Utility for declaring pipelines.","","Utility for generating a tile pattern which can be used …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Transforms coordinates in clip space to window coordinates.","A transform which can be used to transfrom between clip …","Alternative implementation to clip_to_window. Transforms …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calculates an Aabb2 bounding box which contains at least …","An alternative implementation for view_bounding_box.","","Order of transformations reversed: …","Gets the world coordinates for the specified window …","Alternative implementation to window_to_world","","","","","","","","","Wrapper around a resource which can be initialized or …","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","A GPU-accessible [Buffer].","A GPU-accessible [Buffer].","","An edge, which connects two Nodes in a RenderGraph.","","","","A collection of input and output Edges for a Node.","A Node without any inputs, outputs and subgraphs, which …","","A Node which acts as an entry point for a RenderGraph with …","","","","","","","","","","","","","","","","","","A render node that can be added to a RenderGraph.","An edge describing to ordering of both nodes (output_node …","A Node identifier. It automatically generates its own …","","A NodeLabel is used to reference a NodeState by either its …","","The internal representation of a Node, with all data …","","","The context with all information required to interact with …","The render graph configures the modular, parallel and …","The context with all graph information required to run a …","","A command that signals the graph runner to run the sub …","","","A texture [Sampler] defines how a pipeline will sample …","A texture [Sampler] defines how a pipeline will sample …","An edge describing to ordering of both nodes (output_node …","The internal representation of a slot, which specifies its …","A collection of input or output SlotInfos for a NodeState.","A SlotLabel is used to reference a slot by either its name …","Describes the render resources created (output) or used …","A value passed between render Nodes. Corresponds to the …","","A TextureView describes a texture used in a pipeline.","A TextureView describes a texture used in a pipeline.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Runs the graph node logic, issues draw calls, updates the …","","","","","","","","","The name of the type that implements Node.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The context with all graph information required to run a …","A command that signals the graph runner to run the sub …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Finishes the context for this Node by returning the sub …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Retrieves the input slot value referenced by the label.","Retrieves the input slot value referenced by the label as …","Retrieves the input slot value referenced by the label as …","Retrieves the input slot value referenced by the label as …","","Returns the SlotInfos of the inputs.","Returns the input slot values for the node.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Creates a new render graph context for the node.","","Returns the SlotInfos of the outputs.","","Queues up a sub graph for execution after the node has …","","Sets the output slot value referenced by the label.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An edge, which connects two Nodes in a RenderGraph.","","","An edge describing to ordering of both nodes (output_node …","An edge describing to ordering of both nodes (output_node …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the id of the input_node.","Returns the id of the output_node.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","A Node which acts as an entry point for a RenderGraph with …","The name of the GraphInputNode of this graph. Used to …","The render graph configures the modular, parallel and …","Adds the node with the name to the graph. If the name is …","Adds the Edge::NodeEdge to the graph. This guarantees that …","Adds the Edge::SlotEdge to the graph. This guarantees that …","Adds the sub_graph with the name to the graph. If the name …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Retrieves the Node referenced by the label.","Retrieves the NodeId referenced by the label.","Retrieves the Node referenced by the label mutably.","Retrieves the NodeState referenced by the label.","Retrieves the NodeState referenced by the label mutably.","Retrieves the sub graph corresponding to the name.","Retrieves the sub graph corresponding to the name mutably.","Checks whether the edge already exists in the graph.","","Returns the NodeState of the input node of this graph..","","","Calls U::from(self).","Calls U::from(self).","","","","","","","Returns an iterator over a tuple of the input edges and …","Returns an iterator over a tuple of the output edges and …","Returns an iterator over the NodeStates.","Returns an iterator over the NodeStates, that allows …","Returns an iterator over the sub graphs.","Returns an iterator over the sub graphs, that allows …","","","","Removes the node with the name from the graph. If the name …","Removes the Edge::NodeEdge from the graph. If either node …","Removes the Edge::SlotEdge from the graph. If any nodes or …","Removes the sub_graph with the name from the graph. If the …","","Creates an GraphInputNode with the specified slots if not …","","","","","","","","","","Updates all nodes and sub graphs of the render graph. …","Verifies that the edge existence is as expected and checks …","","A collection of input and output Edges for a Node.","A Node without any inputs, outputs and subgraphs, which …","","","","A render node that can be added to a RenderGraph.","A Node identifier. It automatically generates its own …","A NodeLabel is used to reference a NodeState by either its …","","The internal representation of a Node, with all data …","","The context with all information required to interact with …","","Adds an edge to the input_edges if it does not already …","Adds an edge to the output_edges if it does not already …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns a boxed object from a boxed trait object if the …","","","","","","","Returns a mutable reference to the object within the trait …","Returns an Rc-ed object from an Rc-ed trait object if the …","Returns a reference to the object within the trait object …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Searches the input_edges for a Edge::SlotEdge, which …","Searches the output_edges for a Edge::SlotEdge, which …","Checks whether the input edge already exists.","Checks whether the output edge already exists.","","Returns this node’s id.","","","Specifies the required input slots for this node. They …","Specifies the required input slots for this node. They …","Returns all “input edges” (edges going “in”) for …","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns true if the trait object wraps an object of type …","","","","","Creates an NodeState without edges, but the input_slots …","","Retrieves the Node.","","Retrieves the Node mutably.","Specifies the produced output slots for this node. They …","Specifies the produced output slots for this node. They …","Returns all “output edges” (edges going “out”) for …","","","","Removes an edge from the input_edges if it exists.","Removes an edge from the output_edges if it exists.","Runs the graph node logic, issues draw calls, updates the …","","","","","","","","","","","","","","","","","","","","","","","","","","","The name of the type that implements Node.","","","","","","","","Updates internal node state using the current RenderState …","Updates internal node state using the current RenderState …","Validates that each input slot corresponds to an input …","Validates that each output slot corresponds to an output …","","","","","","A GPU-accessible [Buffer].","A GPU-accessible [Buffer].","","","A texture [Sampler] defines how a pipeline will sample …","A texture [Sampler] defines how a pipeline will sample …","The internal representation of a slot, which specifies its …","A collection of input or output SlotInfos for a NodeState.","A SlotLabel is used to reference a slot by either its name …","Describes the render resources created (output) or used …","A value passed between render Nodes. Corresponds to the …","A TextureView describes a texture used in a pipeline.","A TextureView describes a texture used in a pipeline.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Retrieves the SlotInfo for the provided label.","Retrieves the index (inside input or output slots) of the …","Retrieves the SlotInfo for the provided label mutably.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","Returns true if there are no slots.","Returns an iterator over the slot infos.","Returns the count of slots.","","","","Returns the SlotType of this value.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A resource to collect and sort draw requests for specific …","Adds a PhaseItem to this render phase.","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","Sorts all of its PhaseItems.","","","","","A draw function which is used to draw a specific PhaseItem.","","An item which will be drawn to the screen. A phase item …","RenderCommand is a trait that runs an ECS query and …","","The type used for ordering the items. The smallest values …","","","","","","","Draws the PhaseItem by issuing draw calls via the …","Returns the argument unchanged.","Calls U::from(self).","","","","Renders the PhaseItem by issuing draw calls via the …","","Determines the order in which the items are drawn during …","","","","","","","","This is inspired by the memory pool in Vulkan documented …","","","","Describes the fragment process in a render pipeline.","","","","","","","","","","","","","","","The value is a wgpu SurfaceTexture, but dereferences to a …","","Describes a TextureView.","The value is an actual wgpu TextureView.","A [RenderPass], which tracks the current pipeline state to …","","Describes how the vertex buffer is interpreted.","","","","The stride, in bytes, between elements of this buffer.","The list of attributes which comprise a single vertex.","","The buffer which is used","","","","","A ring-buffer like pool of buffers.","","The format of any vertex buffers used with this pipeline.","","The effect of draw calls on the depth and stencil aspects …","","The name of the entry point in the compiled shader. There …","The name of the entry point in the compiled shader. There …","","The compiled fragment stage, its entry point, and the …","A bind group which binds a buffer with global data like …","","","","","The size of buffer","Debug label of the pipeline. This will show up in graphics …","","The layout of bind groups for this pipeline.","","The multi-sampling properties of the pipeline.","","","","","","","","","Utility for creating RenderPipelines","The properties of the pipeline at the primitive assembly …","Utilities for creating shader states.","","","The shader source","The shader source","How often this vertex buffer is “stepped” forward.","","Utilities for handling surfaces which can be either …","","","The color state of the render targets.","Utility for a texture view which can either be created by …","","","A render pass which allows tracking, for example using a …","","","","","The compiled vertex stage, its entry point, and the input …","","","","","","","","","","","","","This is inspired by the memory pool in Vulkan documented …","","","","","","","","","","","The VertexBuffers can contain padding elements. Not …","Allocates","","","","","","","","","","","","","","","","","","","","","","","","","","The buffer which is used","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","The internal structure which is used for storage","The size of buffer","The size of the inner buffer","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","The effect of draw calls on the depth and stencil aspects …","","","The compiled fragment stage, its entry point, and the …","Returns the argument unchanged.","","Calls U::from(self).","","","","Debug label of the pipeline. This will show up in graphics …","The layout of bind groups for this pipeline.","The multi-sampling properties of the pipeline.","The properties of the pipeline at the primitive assembly …","","","","","The compiled vertex stage, its entry point, and the input …","Describes the fragment process in a render pipeline.","Describes how the vertex buffer is interpreted.","","The stride, in bytes, between elements of this buffer.","","","","","","","The list of attributes which comprise a single vertex.","","","","","","","The format of any vertex buffers used with this pipeline.","","","","","","","","","","The name of the entry point in the compiled shader. There …","The name of the entry point in the compiled shader. There …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","The shader source","The shader source","How often this vertex buffer is “stepped” forward.","The color state of the render targets.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The value is a wgpu SurfaceTexture, but dereferences to a …","","Describes a TextureView.","The value is an actual wgpu TextureView.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns the SurfaceTexture of the texture view if it is of …","","","","","","","","","","","","","","A [RenderPass], which tracks the current pipeline state to …","","","","","","Draws primitives from the active vertex buffer(s).","Draws indexed primitives using the active index buffer and …","Draws indexed primitives using the active index buffer and …","Draws primitives from the active vertex buffer(s) based on …","Returns the argument unchanged.","Insert a single debug marker.","Calls U::from(self).","","","","Tracks the supplied render pass.","","End the current debug group.","Start a new debug group.","Sets the active [BindGroup] for a given bind group index. …","","Sets the active index buffer.","Set push constant data.","Sets the active [RenderPipeline].","Sets the scissor region.","Sets the stencil reference.","Assign a vertex buffer to a slot.","Set the rendering viewport.","","","","","Allows the use of AddressMode::ClampToBorder with a border …","Allows the use of AddressMode::ClampToBorder with a border …","block compressed texture. 16 bytes per block.","Supported when targeting the web through webassembly","Allows the user to create arrays of buffers in shaders:","Represents the backends that wgpu will use.","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","Blue, green, red, and alpha channels. 8 bit integer per …","Blue, green, red, and alpha channels. 8 bit integer per …","Enables clear to zero for textures.","Allows the user to set a …","Allows for explicit creation of textures of format …","By default, polygon depth is clipped to 0-1 range …","Supported on Windows 7+","Supported on Windows 10","Stencil format with 8 bit integer stencil. Special depth …","Special depth format with at least 24 bit integer depth.","Special depth/stencil format with at least 24 bit integer …","Special depth format with 32 bit floating point depth.","Special depth/stencil format with 32 bit floating point …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","Features that are not guaranteed to be supported.","Currently unsupported","","","Adapter that has the highest performance. This is often a …","Allows non-zero value for the “first instance” in …","Represents the sets of limits an adapter/device supports.","Adapter that uses the least possible power. This is often …","Webgpu only allows the MAP_READ and MAP_WRITE buffer usage …","Supported on macOS/iOS","Enables multiview render passes and builtin(view_index) in …","Allows the user to call [RenderPass::multi_draw_indirect] …","Allows the user to call […","Configuration resource for Multi-Sample Anti-Aliasing.","Allows the user to create bind groups continaing arrays …","Enables use of Pipeline Statistics Queries. These queries …","Allows the user to set PolygonMode::Line in …","Allows the user to set PolygonMode::Point in …","All the apis that wgpu offers first tier of support for.","Allows the use of push constants: small, fast bits of …","Power Preference when choosing a physical adapter.","Red channel only. 16 bit float per channel. Float in …","Red channel only. 16 bit integer per channel. Signed in …","Red channel only. 16 bit integer per channel. [0, 65535] …","Red channel only. 16 bit integer per channel. Unsigned in …","Red channel only. 16 bit integer per channel. [0, 65535] …","Red channel only. 32 bit float per channel. Float in …","Red channel only. 32 bit integer per channel. Signed in …","Red channel only. 32 bit integer per channel. Unsigned in …","Red channel only. 8 bit integer per channel. Signed in …","Red channel only. 8 bit integer per channel. [-127, 127] …","Red channel only. 8 bit integer per channel. Unsigned in …","Red channel only. 8 bit integer per channel. [0, 255] …","","Red, green, and blue channels. 11 bit float with no sign …","Red and green channels. 16 bit float per channel. Float in …","Red and green channels. 16 bit integer per channel. Signed …","Red and green channels. 16 bit integer per channel. [0, …","Red and green channels. 16 bit integer per channel. …","Red and green channels. 16 bit integer per channel. [0, …","Red and green channels. 32 bit float per channel. Float in …","Red and green channels. 32 bit integer per channel. Signed …","Red and green channels. 32 bit integer per channel. …","Red and green channels. 8 bit integer per channel. Signed …","Red and green channels. 8 bit integer per channel. [-127, …","Red and green channels. 8 bit integer per channel. …","Red and green channels. 8 bit integer per channel. [0, 255]…","Red, green, blue, and alpha channels. 10 bit integer for …","Packed unsigned float with 9 bits mantisa for each RGB …","Red, green, blue, and alpha channels. 16 bit float per …","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha. 16 bit integer per channel. […","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha channels. 32 bit float per …","Red, green, blue, and alpha channels. 32 bit integer per …","Red, green, blue, and alpha channels. 32 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Allows shaders to index sampled texture and storage buffer …","All the apis that wgpu offers second tier of support for. …","Allows shaders to acquire the FP16 ability","Enables 64-bit floating point types in SPIR-V shaders.","Enables builtin(primitive_index) in fragment shaders.","Enables creating shader modules from SPIR-V binary data …","Allows the user to create uniform arrays of storage …","","Enables device specific texture format features.","Allows the user to create uniform arrays of textures in …","Enables ASTC HDR family of compressed textures.","Enables ASTC family of compressed textures. ASTC textures …","Enables BCn family of compressed textures. All BCn …","Enables ETC family of compressed textures. All ETC …","Enables normalized 16-bit texture formats.","Enables use of Timestamp Queries. These queries tell the …","Underlying texture data format.","Allows shaders to index uniform buffer and storage texture …","Enables using 64-bit types for vertex attributes.","Enables bindings of writable storage buffers and textures …","Supported on Windows, Linux/Android, and macOS/iOS via …","Allows for timestamp queries inside renderpasses. Metal …","Provides configuration for renderer initialization. Use …","Returns the set containing all flags.","Returns the set containing all flags.","Mask of all features that are only available when …","Mask of all features which are part of the upstream WebGPU …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","Compares every limits within self is within the limits …","Compares every limits within self is within the limits …","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","The constraints on limits allowed regardless of what the …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","","","","","","","","Get useful information about the texture format.","","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","The features to ensure are disabled regardless of what the …","","","","","","","","","","These default limits are guarenteed to be compatible with …","These default limits are guarenteed to be compatible with …","","","","","","","","","","","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","The features to ensure are enabled regardless of what the …","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","","","","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","The imposed limits.","Amount of bind groups that can be attached to a pipeline …","Maximum binding index allowed in create_bind_group_layout. …","A limit above which buffer allocations are guaranteed to …","Maximum value of the product of the workgroup_size …","The maximum value of the workgroup_size X dimension for a …","The maximum value of the workgroup_size Y dimension for a …","The maximum value of the workgroup_size Z dimension for a …","Maximum number of bytes used for workgroup memory in a …","The maximum value for each dimension of a …","Amount of storage buffer bindings that can be dynamic in a …","Amount of uniform buffer bindings that can be dynamic in a …","Maximum allowed number of components (scalars) of input or …","Amount of storage available for push constants in bytes. …","Amount of sampled textures visible in a single shader …","Amount of samplers visible in a single shader stage. …","Maximum size in bytes of a binding to a storage buffer. …","Amount of storage buffers visible in a single shader …","Amount of storage textures visible in a single shader …","Maximum allowed value for the size.depth_or_array_layers …","Maximum allowed value for the size.width of a texture …","Maximum allowed value for the size.width and size.height …","Maximum allowed value for the size.width, size.height, and …","Maximum size in bytes of a binding to a uniform buffer. …","Amount of uniform buffers visible in a single shader …","Maximum length of VertexBufferLayout::attributes, summed …","Maximum value for VertexBufferLayout::array_stride when …","Maximum length of VertexState::buffers when creating a …","Required BufferBindingType::Storage alignment for …","Required BufferBindingType::Uniform alignment for …","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","Whether a trace is recorded an stored in the current …","Removes the specified flags in-place.","Removes the specified flags in-place.","The number of samples to run for Multi-Sample …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","","","","","","","","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","Modify the current limits to use the buffer alignment …","Modify the current limits to use the resolution limits of …","compressed block dimensions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cleanup render resources here.","Sort the RenderPhases here.","Prepare render resources from the extracted data for the …","","Queues PhaseItems that depend on Prepare data and queue up …","Actual rendering happens here. In most cases, only the …","The labels of the default App rendering stages.","","","","","","","","","","","","","","","","","","","","","Extracts data from the current state.","","Returns the argument unchanged.","Returns the argument unchanged.","","Executes the RenderGraph current render graph.","","Calls U::from(self).","Calls U::from(self).","","","","","","","Sorts items of the RenderPhases.","Queues PhaseItems for rendering.","","","Prepares GPU-owned resources by initializing them if they …","","","","","","","","","","","","Uploads data to the GPU which is needed for rendering.","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Updates the RenderGraph with all of its nodes and then …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","The tile mask pattern assigns each tile a value which can …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","The internal structure which is used for storage","The size of the inner buffer","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A container of Stages set to be run in a linear order.","","Defines a set of strongly-typed labels for a class of …","Adds the given stage at the last position of the schedule.","Adds the given stage immediately after the target stage.","Adds the given stage immediately before the target stage.","","","","","","","","","","","","","","","","Returns a boxed object from a boxed trait object if the …","","Returns a mutable reference to the object within the trait …","Returns an Rc-ed object from an Rc-ed trait object if the …","Returns a reference to the object within the trait object …","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns a shared reference to the stage identified by label…","Returns a unique, mutable reference to the stage …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns true if the trait object wraps an object of type …","Iterates over all of schedule’s stages and their labels, …","","Runs the stage; this happens once per update. Implementors …","","","","Executes each Stage contained in the schedule, one at a …","Fetches the Stage of type T marked with label, then …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Receives data from async threads and populates the …","Register stages required for requesting and preparing new …","Requests tiles which are currently in view","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","Request tiles which are currently in view.","","","","","","","A color in the ACES 2065-1 color space.","A color in the ACES 2065-1 color space.","A color in the ACEScc color space.","A color in the ACEScc color space.","A color in the ACEScct color space.","A color in the ACEScct color space.","A color in the ACEScg color space.","A color in the ACEScg color space.","A color with an alpha component.","A color in the BT.2020 color space.","A color in the BT.2020 color space.","A color in the BT.2100 color space.","A color in the BT.2100 color space.","A color in the CIE L*C*h° color space.","A color in the CIE L*C*h° color space.","A color in the CIE L*a*b* color space.","A color in the CIE L*a*b* color space.","A color in the CIE XYZ color space.","A color in the CIE XYZ color space.","","A trait that should be implemented by provider crates on …","A trait used to simpify the interface of the Alpha and …","","A color in the DCI-P3 (aka P3 DCI and P3 D60) color space.","A color in the DCI-P3 (aka P3 DCI and P3 D60) color space.","A color in the X’Y’Z’ color space, a DCI …","A color in the X’Y’Z’ color space, a DCI …","A color in the Display P3 (aka P3 D65) color space.","A color in the Display P3 (aka P3 D65) color space.","A color in the encoded BT.2020 color space.","A color in the encoded BT.2020 color space.","A color in the encoded BT.2100 color space with HLG …","A color in the encoded BT.2100 color space with HLG …","A color in the encoded BT.2100 color space with PQ …","A color in the encoded BT.2100 color space with PQ …","A color in the Display P3 (aka P3 D65) color space.","A color in the Display P3 (aka P3 D65) color space.","A color in the encoded Rec.709/BT.709 color space.","A color in the encoded Rec.709/BT.709 color space.","A color in the encoded sRGB color space.","A color in the encoded sRGB color space.","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in the HSL color space.","A color in the HSL color space.","A color in the HSV color space.","A color in the HSV color space.","A color in the ICtCp color space with HLG (Hybrid …","A color in the ICtCp color space with HLG (Hybrid …","A color in the ICtCp color space with PQ (Perceptual …","A color in the ICtCp color space with PQ (Perceptual …","A color in the linear (decoded) sRGB color space.","A color in the linear (decoded) sRGB color space.","A single-channel CIE luma (non-linear transform from …","A single-channel CIE luma (non-linear transform from …","A single-channel CIE luminance.","A single-channel CIE luminance.","","A color in the Oklab color space.","A color in the Oklab color space.","A color in the Oklch color space (a transformation from …","A color in the Oklch color space (a transformation from …","A premultiplied color with an alpha component.","A color in the Rec.709/BT.709 color space.","A color in the Rec.709/BT.709 color space.","","An enum with a variant for each of the color spaces …","Stores the style for a multi-layered map.","A color in the YCbCr color space. See discussion of the …","A color in the YCbCr color space. See discussion of the …","A color in the YCxCz (also called YyCxCz) color space, …","A color in the YCxCz (also called YyCxCz) color space, …","A color in the YPbPr color space. See discussion of the …","A color in the YPbPr color space. See discussion of the …","A color in the Y’CbCr color space. See discussion of the …","A color in the Y’CbCr color space. See discussion of the …","A color in the Y’PbPr color space. See discussion of the …","A color in the Y’PbPr color space. See discussion of the …","A color in the YUV color space. See discussion of the …","A color in the YUV color space. See discussion of the …","The a component, representing green-red chroma difference.","The a component, representing green-red chroma difference.","The alpha component.","The alpha component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The b component, representing blue-yellow chroma …","The b component, representing blue-yellow chroma …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The C (chroma) component. Varies from 0 to a hue dependent …","The C (chroma) component. Varies from 0 to a hue dependent …","The Cb (chroma-blue/yellow) component.","The Cb (chroma-blue/yellow) component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The contained color, which is completely separate from the …","The contained color, which has been premultiplied with …","The Cp (chroma-protan) component.","The Cp (chroma-protan) component.","The Cr (chroma-red/green) component.","The Cr (chroma-red/green) component.","The Ct (chroma-tritan) component.","The Ct (chroma-tritan) component.","The Cx (chroma difference blue/yellow) component","The Cz (chroma difference red/green) component","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Convert self into its canonical cint type.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The h (hue) component. Varies from -PI to PI.","The h (hue) component. Varies from -PI to PI.","The H (hue) component. Varies from 0 to 1.","The H (hue) component. Varies from 0 to 1.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The I (intensity) component.","The I (intensity) component.","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a Self from its canonical cint type.","CIE luminance.","CIE luminance.","The L (lightness) component. Varies from 0 to 100.","The L (lightness) component. Varies from 0 to 100.","The L (lightness) component. Varies from 0 to 1","The L (lightness) component. Varies from 0 to 1.","The L (lightness) component. Varies from 0 to 1.","Vector tile layer drawing utilities.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Pb (chroma-blue/yellow) component.","The Pb (chroma-blue/yellow) component.","","The Pr (chroma-red/green) component.","The Pr (chroma-red/green) component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The S (saturation) component. Varies from 0 to 1.","The S (saturation) component. Varies from 0 to 1.","Vector tile data utilities.","","Default vector tile styles configuration.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The U (chroma-blue/yellow) component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The V (value) component. Varies from 0 to 1.","The V (chroma-red/green) component.","","The first component.","The first component.","The X’ component.","The X component.","The second component.","The Y’ component.","The Y component.","The Y (luminance) component.","The Y’ (luma) component.","The Y (luminance) component.","The Y’ (luma) component.","The Y (luminance) component.","The Yy (luminance) component.","The third component.","The Z’ component.","The Z component.","","","","","","The different types of paints.","","","Stores all the styles for a specific layer.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Tiles can be positioned using either the xyz coordinates …","String url to a JSON tile.","String url to a tile.","","Source properties for tiles or rasters.","","","","","","","","String which contains attribution information for the used …","","","","","","","The bounds in which tiles are available.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Max zoom level at which tiles are available.","Min zoom level at which tiles are available.","","","","","Array of URLs which can contain place holders like {x}, …","","","","","","","","","","","","","","","","","","Stores the style for a multi-layered map.","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Vertex buffers index data type.","Vertex buffer which includes additional padding to fulfill …","An element that can be tessellated into vertex buffers.","Constructor for Fill and Stroke vertices.","","","","Returns a vertex buffer which represents some object like …","","Tessellator implementation.","","Build tessellations with vectors.","","","","","","","Features are described in section 4.2 of the specification","GeomType is described in section 4.3.4 of the specification","Layers are described in section 4.1 of the specification","","","","","Variant type encoding The use of values is described in …","","","","","","","","","","","Returns the value of bool_value, or the default value if …","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the value of double_value, or the default value if …","","","","","","","","","","","","","","","","Returns the value of extent, or the default value if extent…","Although this is an “optional” field it is required by …","The actual features in this tile.","Returns the value of float_value, or the default value if …","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Converts an i32 to a GeomType, or None if value is not a …","Contains a stream of commands and parameters (vertices). A …","","","Returns the value of id, or the default value if id is …","","Returns the value of int_value, or the default value if …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Returns true if value is a variant of GeomType.","Dictionary encoding for keys","","","","","","","","Sets type to the provided enum value.","Returns the value of sint_value, or the default value if …","","Returns the value of string_value, or the default value if …","Exactly one of these values must be present in a valid …","Tags of this feature are encoded as repeated pairs of …","","","","","","","","","","","","","","","Returns the enum value of type, or the default if the …","The type of geometry stored in this feature.","","","","","Returns the value of uint_value, or the default value if …","","","","","","Dictionary encoding for values","Any compliant implementation must first read the version …","","","Measures the frames per second.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Traits used by label implementations","","","","","","This method tests for self and other values to be …","","","","","","","","","","","","","","","Measures the frames per second.","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","Returns coordinates for tiles within bavaria according to …","","","","","","","","A two-dimensional AABB, aka a rectangle.","A three-dimensional AABB, aka a rectangular prism.","A wrapper type that enables ordering floats. This is a …","A 3-dimensional plane formed from the equation: …","","","","","","","","","","","","","","","","","","","","","","Plane distance value","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a plane from a point and a normal vector. The …","Constructs a plane that passes through the the three …","","Returns unsorted intersection points with an Aabb3 Adopted …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","Maximum point of the AABB","Maximum point of the AABB","","Minimum point of the AABB","Minimum point of the AABB","Plane normal","Construct a plane from a normal vector and a scalar …","Construct a new axis-aligned bounding box from two points.","Construct a new axis-aligned bounding box from two points.","","Compute corners.","Compute corners.","","","","","","","","","","","","","","","","","","The event loop is responsible for processing events and …","Window which references a physical RawWindow. This is only …","Window of a certain WindowSize. This can either be a …","","A configuration for a window which determines the …","","Window size with a width and an height in pixels.","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","",""],"i":[0,0,0,4,3,10,4,3,10,4,3,0,10,4,3,10,4,3,3,0,0,0,10,4,3,0,0,10,4,3,4,3,4,10,4,3,10,4,3,4,3,10,4,3,0,0,10,10,4,3,0,3,0,0,4,3,10,10,10,0,4,3,0,0,4,3,0,0,10,4,3,10,4,3,10,4,3,10,4,3,0,4,3,0,10,3,3,3,3,3,3,3,0,0,0,0,0,0,25,21,25,21,25,21,25,21,21,21,21,25,21,21,25,21,21,21,25,21,25,21,25,21,25,21,25,25,316,21,25,21,25,21,25,21,25,21,21,0,0,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,0,0,39,233,39,233,39,233,39,233,39,39,39,233,39,233,39,233,39,233,39,233,39,233,39,39,233,233,233,39,233,39,233,39,233,39,233,39,39,233,39,39,39,60,51,47,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,43,60,51,51,47,47,52,43,53,54,54,50,50,42,40,60,51,47,52,43,53,54,50,42,40,47,54,50,42,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,50,51,47,52,43,53,54,50,42,51,47,52,43,53,54,50,42,51,47,50,0,47,52,43,53,54,50,42,47,50,60,51,47,52,43,53,54,50,42,40,51,47,54,50,47,54,50,51,47,53,54,50,42,51,47,54,50,51,47,47,52,52,43,43,53,54,54,50,50,42,42,40,60,51,47,47,52,43,43,53,54,54,50,50,42,42,42,42,40,42,50,47,54,50,50,47,54,50,60,51,47,47,52,43,53,54,50,42,40,50,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,50,54,42,40,47,47,40,52,43,52,60,60,40,40,40,51,47,43,53,54,50,42,51,47,52,43,40,40,51,47,50,43,43,43,47,50,47,43,0,51,47,52,43,53,54,50,42,47,52,43,54,50,42,50,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,60,51,47,52,43,53,54,50,42,40,60,60,53,54,50,42,53,54,50,42,54,50,40,40,2,0,2,2,2,2,0,29,29,0,29,67,29,67,29,67,29,67,29,67,29,67,29,67,67,29,67,29,29,29,29,29,29,67,29,67,29,67,29,67,29,67,67,67,29,67,29,67,29,67,29,317,318,319,320,0,0,0,73,73,73,73,73,73,73,73,73,102,102,73,73,0,73,73,73,73,102,73,102,0,0,73,0,0,0,73,0,73,73,73,73,102,102,0,0,0,0,321,0,0,0,0,75,76,75,75,80,75,76,78,80,75,76,78,80,75,76,78,80,75,76,78,80,75,76,78,75,76,78,76,80,75,76,78,80,75,76,78,80,80,75,76,78,80,75,76,78,80,75,76,78,80,75,76,78,80,321,80,321,80,80,248,78,78,76,248,78,78,75,76,78,80,75,76,78,80,75,76,78,80,75,76,78,80,75,76,78,322,323,324,325,0,0,0,0,87,96,87,96,0,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,85,84,85,87,85,87,85,84,84,85,95,96,84,85,87,85,85,84,84,85,87,95,96,84,85,87,85,85,84,84,84,84,84,95,95,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,84,84,84,84,84,84,95,84,84,96,84,84,84,85,84,84,84,95,85,87,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,95,96,84,85,87,84,326,327,328,329,0,0,111,111,0,0,0,0,103,104,98,99,103,104,98,99,103,104,98,99,103,104,98,99,98,103,104,98,99,103,104,98,99,99,99,99,103,104,98,99,103,104,98,99,104,98,99,103,104,98,99,105,105,105,103,104,104,98,99,111,104,98,99,103,103,104,103,105,103,104,98,99,103,104,98,99,103,104,98,99,103,104,98,99,0,0,108,108,108,108,108,108,108,108,108,108,79,108,108,108,108,108,0,83,0,0,83,0,109,83,109,83,109,83,109,83,109,83,109,83,109,83,77,109,83,109,83,109,109,83,109,83,109,83,109,83,109,109,83,109,83,109,83,109,83,109,83,330,0,0,0,112,113,114,112,113,114,112,113,114,112,113,114,0,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,112,113,114,116,116,0,0,116,117,0,0,117,117,119,116,116,115,117,119,116,115,117,119,116,115,117,119,116,115,115,115,115,117,119,116,115,116,116,116,115,117,119,116,115,117,117,119,116,115,117,119,116,115,117,119,116,115,117,119,116,115,115,115,117,119,115,119,115,115,115,119,115,115,117,119,116,115,117,119,116,115,117,119,116,115,117,119,116,115,331,332,331,331,332,331,0,0,0,0,0,74,0,74,0,0,74,120,121,122,81,120,121,122,81,120,121,122,81,120,121,122,81,122,81,81,333,120,120,121,122,120,121,122,81,122,120,121,122,81,120,121,122,81,120,121,122,81,120,121,122,81,120,121,122,81,122,121,333,334,335,120,121,122,81,334,335,121,122,120,121,122,81,120,121,122,81,120,121,122,81,120,121,122,81,0,123,0,123,0,123,11,11,11,336,123,11,336,123,11,336,123,11,336,123,11,336,123,11,336,123,11,336,123,11,336,123,336,123,11,336,123,11,11,123,11,11,11,336,11,11,11,336,11,11,336,11,336,123,11,336,123,11,336,123,11,336,123,11,336,11,336,337,338,0,0,0,0,0,0,0,125,0,0,0,0,0,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,0,0,0,124,127,124,127,124,127,124,127,124,127,127,0,0,127,124,124,127,124,0,0,127,124,127,0,0,124,124,124,124,127,124,127,124,127,124,127,124,0,0,127,127,127,127,27,27,124,124,127,0,0,0,127,124,124,0,0,124,0,0,124,124,127,124,127,127,0,127,0,127,127,124,127,124,127,124,127,124,124,142,140,46,0,0,0,0,0,0,0,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,137,136,136,136,136,136,136,136,137,142,140,140,137,46,46,136,46,136,137,142,140,137,46,136,136,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,46,136,137,136,136,136,142,46,137,136,46,136,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,142,140,137,46,136,136,136,136,136,136,136,136,137,137,0,0,0,0,339,0,0,128,128,128,128,128,128,128,128,128,339,128,128,128,128,128,128,128,128,128,128,128,340,161,152,170,160,0,130,130,0,0,0,160,0,162,151,0,146,130,130,130,148,149,147,130,148,149,147,147,162,151,0,159,0,130,0,0,0,0,146,0,0,0,0,0,0,146,152,170,159,0,0,0,0,0,147,152,170,130,130,130,130,130,130,130,130,145,0,129,145,130,130,0,157,130,130,130,130,130,0,144,157,166,166,129,157,150,144,164,130,130,130,130,150,157,165,130,0,144,157,129,0,129,166,157,144,167,144,165,156,129,130,130,130,130,157,130,341,341,342,341,341,342,343,344,344,344,345,346,347,348,349,350,351,351,351,352,353,354,355,356,357,357,358,359,358,360,359,359,357,357,360,361,362,363,363,364,363,363,364,363,364,365,366,367,368,369,0,148,149,147,148,149,147,147,0,0,0,0,147,150,144,147,147,148,148,149,149,150,144,147,148,149,150,144,147,148,149,150,144,147,148,149,150,144,147,148,149,147,148,149,147,148,149,147,148,149,144,147,147,148,148,149,149,150,144,147,148,149,144,144,144,144,144,144,144,150,144,150,144,147,148,149,150,144,147,148,149,147,148,149,150,144,147,148,149,150,147,148,149,144,144,144,144,144,144,144,147,148,149,150,144,147,148,149,150,144,147,148,149,150,144,147,148,149,150,144,147,148,149,343,344,344,344,350,351,351,351,361,362,363,363,364,363,363,364,363,364,160,0,0,160,159,159,159,159,160,160,159,160,159,160,159,160,159,159,159,160,159,160,159,160,159,160,159,159,160,159,159,159,160,159,160,159,160,159,160,159,159,159,160,159,160,159,160,159,160,341,341,342,341,341,342,0,129,0,129,129,129,129,164,129,164,129,164,129,164,129,129,129,164,129,129,164,129,129,129,129,129,129,129,129,129,164,129,129,164,164,129,164,129,164,129,164,129,129,129,129,129,129,129,129,129,164,129,129,129,129,164,129,129,164,129,164,129,164,129,164,129,129,129,161,0,0,162,146,162,0,0,0,0,0,146,0,146,166,166,145,157,168,161,161,146,146,166,162,162,145,157,168,161,146,166,162,161,145,157,168,161,146,166,162,145,157,168,161,146,166,162,161,162,161,162,161,145,145,145,167,157,168,161,146,166,162,167,167,167,161,146,162,161,157,161,146,162,161,146,162,157,161,146,146,166,162,145,157,168,161,146,146,146,146,166,162,162,162,162,162,161,166,166,166,166,161,166,157,166,167,167,166,166,157,145,157,168,161,146,166,162,145,157,168,161,146,166,162,145,157,168,161,146,166,162,145,157,168,161,146,166,162,167,157,161,146,162,157,161,157,157,157,167,167,166,166,157,161,166,166,167,168,146,161,162,146,145,157,168,161,146,166,162,145,157,168,161,146,166,162,145,157,168,161,146,166,162,157,145,157,168,161,146,166,162,167,167,157,157,345,346,347,348,349,152,170,151,151,152,170,0,0,0,0,0,152,170,152,170,170,151,151,165,156,152,170,151,165,156,152,170,151,165,156,152,170,151,165,156,152,170,151,165,152,170,151,165,156,152,170,151,165,156,170,151,170,151,170,151,152,170,170,151,165,156,152,152,152,152,170,151,151,151,151,151,151,165,156,156,156,156,156,152,170,151,165,156,152,170,151,165,156,170,151,165,156,152,170,151,165,156,156,156,156,165,151,165,152,165,156,152,170,151,165,170,152,170,151,165,156,152,170,151,165,156,152,170,151,165,156,152,170,151,165,156,365,366,367,368,369,172,172,172,172,0,0,370,172,370,172,370,172,370,172,370,172,172,172,370,172,172,370,172,370,172,370,172,370,172,370,370,172,172,370,172,370,172,370,172,370,172,371,372,372,373,372,374,373,372,374,373,374,0,0,0,0,0,0,173,174,173,174,173,174,173,174,173,174,173,174,0,173,173,174,173,174,173,174,173,174,173,173,174,173,174,173,174,173,174,173,174,173,0,0,0,0,0,0,0,0,0,0,0,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,375,376,377,378,379,0,179,179,179,179,179,179,179,0,179,179,179,179,179,179,179,179,179,179,179,0,176,0,0,0,178,176,176,176,176,176,176,380,176,176,176,176,176,381,0,178,176,176,176,176,0,0,0,0,0,0,189,0,0,0,199,199,0,0,189,0,189,0,0,0,0,0,155,0,0,155,0,0,0,0,189,0,195,195,193,191,382,186,186,186,0,186,197,186,180,383,196,197,183,180,0,133,200,183,183,191,180,183,180,185,180,382,200,175,183,183,183,183,183,0,180,0,133,204,196,197,195,186,0,198,198,196,0,382,204,0,185,193,200,186,180,183,204,200,182,384,385,386,387,387,0,0,0,0,0,189,0,0,189,0,189,0,0,189,183,183,191,183,189,188,186,185,191,183,189,188,186,185,185,191,183,189,188,186,185,191,183,189,188,186,185,191,186,186,186,186,183,185,186,186,186,191,183,189,188,186,185,183,183,186,188,183,189,188,186,185,191,183,189,188,186,185,183,185,185,185,183,185,185,183,183,183,183,186,186,188,191,188,191,183,189,188,186,185,191,183,189,188,186,185,191,183,189,188,186,185,191,183,189,188,186,185,185,183,186,185,188,183,191,183,188,185,183,183,183,183,183,185,185,186,186,185,191,183,189,188,186,185,191,183,189,188,186,185,188,191,183,189,188,186,185,191,183,189,188,186,185,183,183,186,183,183,186,0,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,193,0,0,180,180,180,180,180,383,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,0,0,0,195,195,196,197,195,196,197,195,195,196,197,195,196,197,197,195,196,197,195,196,197,195,196,197,196,197,196,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,196,196,197,195,196,195,196,197,195,196,197,195,196,197,195,196,197,195,196,197,0,0,0,199,199,0,0,200,198,382,199,133,200,198,382,199,133,200,198,382,199,133,200,198,382,199,133,382,198,133,200,198,382,199,133,200,198,382,199,133,133,133,198,133,133,133,200,200,198,382,199,133,200,198,382,199,133,200,198,382,199,133,200,198,382,199,133,200,382,200,133,133,198,133,198,133,133,198,198,198,382,200,198,382,199,133,200,198,382,199,133,200,198,382,199,133,200,200,198,382,199,133,200,384,385,155,0,0,155,204,155,204,155,204,155,204,155,155,204,155,155,204,155,155,155,204,204,155,204,155,204,155,204,155,204,204,155,204,204,155,204,155,204,155,204,155,204,386,387,387,0,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,175,215,215,206,214,215,0,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,215,215,215,215,214,214,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,0,214,219,219,218,215,0,218,215,214,215,215,215,0,215,215,215,215,214,215,0,206,206,206,206,206,206,206,206,206,206,206,206,0,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,215,214,215,215,215,215,215,0,215,215,215,215,215,215,215,215,0,215,215,215,214,215,0,214,215,215,215,218,218,214,214,215,215,216,216,206,206,19,219,207,17,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,214,215,214,215,214,215,214,215,214,215,214,215,214,215,214,215,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,216,216,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,214,215,214,215,19,214,215,218,215,216,19,207,17,17,206,19,214,215,19,218,214,215,216,206,19,219,207,17,216,216,218,214,215,216,206,218,214,215,216,206,214,215,218,214,215,216,206,218,214,215,216,206,214,215,19,218,214,214,214,214,214,215,215,215,215,215,216,206,218,214,214,215,216,206,19,219,207,17,214,215,214,215,214,215,214,215,218,214,215,216,206,218,214,215,216,206,214,215,214,215,214,215,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,207,214,215,214,215,19,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,17,214,215,216,206,214,215,214,215,19,19,214,215,207,214,215,214,215,214,215,214,215,17,218,214,215,216,206,19,219,207,17,214,215,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,218,214,215,216,206,19,219,207,17,214,215,218,214,215,216,206,19,219,207,17,216,216,388,388,0,0,0,0,0,0,0,0,0,0,0,0,0,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,224,223,224,27,225,226,227,223,224,27,225,226,227,225,223,27,389,228,229,389,228,229,228,229,223,224,27,225,226,227,228,225,228,229,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,223,224,27,225,226,227,223,224,27,226,227,27,27,223,224,27,225,226,227,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,228,229,223,224,27,225,226,227,223,223,226,227,230,230,230,0,230,230,0,230,230,231,230,231,230,230,231,230,231,230,230,231,230,231,230,230,230,230,231,0,230,230,231,230,0,230,230,231,230,231,230,231,230,231,0,0,0,231,0,231,230,230,231,230,231,230,231,230,231,231,0,0,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,234,0,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,0,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,236,0,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,0,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,0,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,241,242,177,243,241,242,177,243,241,242,177,243,241,242,177,243,241,241,242,242,177,242,177,242,241,242,177,243,177,243,241,242,177,243,241,243,243,241,242,177,243,241,242,177,243,241,242,177,243,241,242,177,243,241,241,242,243,241,177,177,241,242,177,242,241,242,177,243,241,242,177,243,241,242,177,243,241,242,177,243,241,241,242,0,0,0,0,0,0,232,232,232,247,246,232,247,246,232,247,246,232,247,246,232,232,247,246,245,232,245,245,245,244,247,246,232,232,232,244,247,246,232,247,246,232,247,246,247,246,232,245,232,246,245,247,246,232,232,232,232,246,232,247,246,232,247,246,232,247,246,232,247,246,232,0,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,0,0,0,249,249,249,249,249,0,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,0,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,0,251,251,251,251,0,291,0,291,0,291,0,291,0,0,291,0,291,0,291,0,291,0,291,390,0,0,391,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,0,291,391,0,291,0,291,0,0,291,391,0,0,0,291,0,291,0,291,0,291,0,291,0,291,271,270,254,290,254,254,290,290,291,291,260,260,268,268,258,258,282,282,285,285,265,265,278,278,269,269,279,279,259,259,272,272,289,289,281,281,288,288,277,277,286,286,262,262,264,264,283,283,287,287,256,256,255,255,284,284,275,275,271,271,261,261,270,270,276,276,257,257,266,266,274,274,273,273,263,263,253,253,267,267,280,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,260,268,258,282,279,259,272,289,281,288,277,262,264,283,287,256,271,270,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,261,276,274,273,18,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,255,284,274,273,255,284,280,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,260,260,260,260,260,260,260,268,268,268,268,258,258,258,258,282,282,282,282,285,285,285,285,265,265,265,265,278,278,278,278,269,269,269,269,279,279,279,279,259,259,259,259,272,272,272,272,289,289,289,289,281,281,281,281,288,288,288,288,277,277,277,277,286,286,286,286,262,262,262,262,264,264,264,264,283,283,283,283,287,287,287,287,256,256,256,256,255,255,255,255,284,284,284,284,275,275,275,275,271,271,271,271,261,261,261,261,270,270,270,270,276,276,276,276,257,257,257,257,266,266,266,266,274,274,274,274,273,273,273,273,263,263,263,263,253,253,253,253,267,267,267,267,280,280,280,280,390,260,268,258,282,279,259,272,289,281,288,277,262,264,283,287,256,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,261,276,257,266,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,255,284,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,290,291,260,260,268,268,258,258,282,282,285,285,265,265,278,278,269,269,279,279,259,259,272,272,289,289,281,281,288,288,277,277,286,286,262,262,264,264,283,283,287,287,256,256,255,255,284,284,275,275,271,271,261,261,270,270,276,276,257,257,266,266,274,274,273,273,263,263,253,253,267,267,280,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,390,278,269,271,261,270,276,257,0,18,18,18,254,290,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,263,253,18,263,253,260,268,258,282,279,259,272,289,281,288,277,262,264,283,287,256,257,266,0,18,0,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,267,254,290,291,260,268,258,282,285,265,278,269,279,259,272,289,281,288,277,286,262,264,283,287,256,255,284,275,271,261,270,276,257,266,274,273,263,253,267,280,266,267,18,285,265,286,275,285,286,275,274,273,263,253,267,280,285,286,275,18,296,0,296,0,0,296,0,0,293,294,295,296,184,293,294,295,296,184,293,293,294,295,296,184,293,294,295,296,184,293,294,295,296,184,293,294,295,296,184,184,293,294,295,296,184,293,294,295,296,184,294,293,294,295,296,184,293,294,295,296,184,296,184,184,293,294,295,296,184,293,294,295,296,184,293,294,295,296,184,293,294,295,296,184,295,184,184,184,184,293,294,295,296,184,184,184,293,294,295,296,184,293,294,295,296,184,293,294,295,296,184,184,293,294,295,296,184,293,294,295,296,184,392,393,394,298,0,61,0,0,0,298,0,61,61,297,298,61,297,298,297,61,297,298,61,297,298,297,61,297,298,61,297,298,61,61,297,298,61,297,298,61,297,298,61,297,298,61,297,298,61,297,298,61,297,298,61,297,298,297,297,297,61,297,298,297,61,297,298,61,297,298,61,297,298,61,297,298,61,297,298,395,396,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,0,397,397,21,316,21,0,0,0,34,34,34,34,34,34,0,0,0,301,301,301,301,0,299,300,102,301,301,299,300,102,301,301,299,299,299,300,102,301,299,300,102,301,299,300,102,299,300,102,301,299,300,102,301,301,299,300,102,301,299,299,299,300,102,301,301,301,299,300,102,299,300,102,301,301,102,102,102,299,299,299,300,102,301,299,300,102,301,301,300,301,301,300,300,299,299,299,300,102,301,299,300,102,301,299,300,102,301,299,300,102,301,301,102,102,299,300,102,301,102,300,300,299,299,299,299,300,300,300,299,300,102,301,299,300,102,301,299,300,102,301,300,300,299,300,102,301,299,299,299,300,102,301,102,102,0,398,0,0,0,305,304,305,304,305,304,305,304,304,304,304,304,305,304,0,306,305,304,0,305,304,305,304,305,304,305,304,305,304,305,0,0,305,305,305,305,398,305,304,306,304,305,304,305,304,305,304,305,304,305,304,0,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,0,0,0,0,49,399,49,399,308,0,0,0,0,310,63,312,308,308,310,63,312,308,310,63,312,308,310,63,312,308,0,308,308,308,310,0,0,0,310,63,312,308,308,308,308,310,63,312,308,310,63,312,308,310,310,310,310,310,310,63,312,308,310,63,312,308,310,63,312,308,310,63,312,308,0,63,312,0,63,312,310,310,63,312,308,63,312,308,310,63,312,308,310,63,312,308,310,63,312,308,310,63,312,308,0,0,0,400,0,401,0,41,41,41,41,41,41,41,400,41,41,41,41,41,41,41,401,41,41,41,41,41,41,402,403,41,41,41,41,41,41,41],"f":[0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[[3,[2]]],[[4,[2]]]],0,0,0,[[]],[[]],[[]],0,0,[[]],[[]],[[]],0,0,[[[4,[2]]],5],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,[[[10,[2]]],[[9,[[12,[[11,[2]]]]]]]],0,0,0,0,[[],[[3,[2]]]],0,0,0,0,[[[10,[2]]]],[[[10,[2]],13]],[[[10,[2]],[14,[13]]]],0,0,0,0,0,0,0,0,0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],0,0,0,0,0,[[[3,[2]]],[[3,[2]]]],[[[3,[2]]],[[3,[2]]]],[[[3,[2]]],[[3,[2]]]],[[[3,[2]],17],[[3,[2]]]],[[[3,[2]]],[[3,[2]]]],[[[3,[2]],18],[[3,[2]]]],[[[3,[2]],19],[[3,[2]]]],0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],0,[[[21,[20,20]]],[[21,[20,20]]]],[[]],[[]],[[]],[[],21],[[]],[[[23,[22,22]]],[[21,[22,22]]]],[[]],[24,21],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[25,26],27],[[25,28],27],[[],[[15,[29]]]],[[]],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,[[],1],[[],1],[[]],[[]],0,0,[[],[[34,[[0,[30,[32,[31]],33]]]]]],[[]],[[[34,[[0,[30,[32,[31]],33]]]],35]],[[[34,[[0,[30,[32,[31]],33]]]],13],36],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[9,[[9,[1]]]],0,[[[34,[[0,[30,[32,[31]],33]]]],35,37,37],36],[[[34,[[0,[30,[32,[31]],33]]]],35,37],36],[[[34,[[0,[30,[32,[31]],33]]]],37,37],36],[[[34,[[0,[30,[32,[31]],33]]]],37],36],[[[34,[[0,[30,[32,[31]],33]]]],37,37],36],[[[34,[[0,[30,[32,[31]],33]]]],37],36],[[[34,[[0,[30,[32,[31]],33]]]],37,37],36],[[[34,[[0,[30,[32,[31]],33]]]],37],36],0,0,[[[34,[[0,[30,[32,[31]],33]]]],37],36],[[[34,[[0,[30,[32,[31]],33]]]],37],36],[[[34,[[0,[30,[32,[31]],33]]]],35,37,37],36],[[[34,[[0,[30,[32,[31]],33]]]],35,37],36],[[[34,[[0,[30,[32,[31]],33]]]]]],[[[34,[[0,[30,[32,[31]],33]]]]]],[[],15],[[],15],[[],16],[[],14],[[[34,[[0,[30,[32,[31]],33]]]]]],[[[34,[[0,[30,[32,[31]],33]]]],38,38,37],36],0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],0,[39,[[14,[40]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[41,42,43,38,[45,[[44,[38]]]]],39],0,0,0,0,[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],[[39,43]],[39,46],0,[39,47],[39,43],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[47,48]],[[43,43]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[[],49],[[],49],[[38,38],42],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[50,[[14,[51]]]],[51,51],[47,47],[52,52],[43,43],[53,53],[54,54],[50,50],[42,42],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[51,51],55],[[47,47],55],[[50,50],55],[[]],[[],47],[[],52],[[],43],[[],53],[[],54],[[],50],[[],42],[[],[[15,[47]]]],[[],[[15,[50]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,35],[49,35],[49,35],[49,35],[56],[56],[56],[[51,51],35],[[47,47],35],[[53,53],35],[[54,54],35],[[50,50],35],[[42,42],35],[[],35],[[],35],[[],35],[[],35],[[51,57],58],[[47,57],58],[[47,57],58],[[52,57],58],[[52,57],58],[[43,57],58],[[43,57],58],[[53,57],58],[[54,57],58],[[54,57],58],[[50,57],58],[[50,57],58],[[42,57],58],[[42,57],58],[[40,57],58],[[]],[[]],[[]],[48,47],[[]],[[]],[47,43],[[]],[[]],[[],54],[[],50],[[]],[[[59,[38]]],42],[[]],[[],42],[[],42],[[]],[[52,43],42],[50],[[],13],[[],13],[[],13],[50,[[14,[50]]]],[47],[54],[50],[[]],[[]],[47,48],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[50,60],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[50,61],[[14,[54]]]],[[54,61],[[14,[50]]]],[[42,47,43],50],[[40,50],35],[47,35],[[],35],[40,62],0,[43,47],0,[60,50],[60,50],0,0,0,[[51,51],35],[[47,47],35],[[43,43],35],[[53,53],35],[[54,54],35],[[50,50],35],[[42,42],35],[[],51],[48,47],[[38,38],52],[38,43],[[[63,[38]],64,37,43,47],40],0,[[51,51],[[14,[55]]]],[[47,47],[[14,[55]]]],[[50,50],[[14,[55]]]],[[43,43],38],[[43,50],38],[[43,47],38],[47,15],[50,15],[[47,48]],[[43,43]],[48,38],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],65],[[],65],[[],65],[[],65],[[],65],[[],65],[[50,43],[[66,[38]]]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[60,50],[60,50],0,0,0,0,0,0,0,0,0,0,[40,47],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[67,57],58],[[67,57],58],[[29,57],58],[[]],[68,29],[69,29],[[]],[70,29],[71,29],[72,29],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[67,35],[[],65],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[]],[[]],[73,73],[[]],0,[[],[[15,[73]]]],[[]],0,0,[[73,57],58],[[]],0,[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],0,0,0,0,0,[73,15],0,0,0,[[]],0,[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[75,[[0,[20,74]]]]],[[75,[[0,[20,74]]]]]],[76,76],[[[78,[[0,[20,74]],[0,[20,77]]]]],[[78,[[0,[20,74]],[0,[20,77]]]]]],[[]],[[]],[[]],[[],[[15,[76]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[77,79],[[80,[77,79]]]],[[],[[14,[75]]]],[[[80,[77,79]]],[[14,[[75,[81]]]]]],[[76,82]],[[[80,[77,79]],76,82]],0,[75],[[[78,[74,77]],[75,[74]]]],0,[76,15],[[],83],[[[78,[74,77]]],83],0,[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[84,[[86,[[85,[38]]]]]],[[[85,[20]]],[[85,[20]]]],[[[87,[20]]],[[87,[20]]]],[[]],[[]],[85,35],[[84,[14,[88]]],[[15,[89]]]],[84,[[15,[89]]]],[85],[[]],[[]],[[]],[[]],[[]],[85],0,[[84,13],[[15,[89]]]],[[84,13],[[15,[89]]]],[[[85,[90]],57],58],[[[87,[90]],57],58],[[]],[[]],[[]],[[]],[[]],[[91,[92,[65,65]]],[[14,[85]]]],[[93,[92,[65,65]]],[[14,[85]]]],0,0,[84,[[15,[89]]]],[84,[[15,[89]]]],[84,[[94,[[85,[38]]]]]],0,[[95,50,96]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[84,35,37,37],[[15,[89]]]],[[84,35,37],[[15,[89]]]],[[84,37,37],[[15,[89]]]],[[84,37],[[15,[89]]]],[[84,37,37],[[15,[89]]]],[[84,37,37],[[15,[89]]]],[[],95],[[],84],[[84,37],[[15,[89]]]],[[96,53],[[94,[85]]]],[[84,35,37,37],[[15,[89]]]],[[84,35,37],[[15,[89]]]],0,0,[84,[[15,[89]]]],[84,[[15,[89]]]],[[84,37,88,97],[[15,[35,89]]]],[[95,42,47,43],[[14,[[94,[85]]]]]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],[[84,38,38,37],[[15,[89]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],98],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],99],[[]],[100],0,[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[50,[94,[[85,[38]]]]]],[[50,[21,[27,101]],[94,[24]],102]],[[50,88]],[[],103],[[],104],0,0,0,[103],[[104,103]],[[98,103]],[[99,103]],0,[103,105],0,[103,[[14,[7]]]],[50],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],0,0,[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[[0,[106,107]]],[[15,[29]]]],[[108,[0,[106,107]]],[[15,[29]]]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[[109,[20]]],[[109,[20]]]],[[[83,[20]]],[[83,[20]]]],[[]],[[]],[[]],[[]],[88,[[110,[[7,[5]]]]]],[[109,50],5],[[83,50],5],[[]],[[]],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[],109],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[],111],[[],112],[[],113],[[],114],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[112,103]],[[113,103]],[[114,103]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[115],[[115,50],35],[[],115],[[]],[[]],[[]],[[]],[49,35],[[116,116],35],[[],35],[[115,50]],[[]],[[]],[[]],[[]],[117,50],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[115,50,118],35],[[115,50],[[14,[62]]]],[117,88],0,[[115,50],35],[[],119],[[],115],[[115,117]],[[115,50,118]],0,[[115,50]],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[81,81],[[]],[[],50],[120,50],0,0,0,[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,[50],[[50,65]],[[50,[21,[27,101]],[94,[24]],102]],[50,120],[[50,65],121],[[50,[21,[27,101]],[94,[24]],102],122],[[]],[[],117],[[],117],[121,117],[122,117],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,[[[11,[2]]],9],0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[[11,[2]]],35],[[[11,[2]]],5],[[123,124]],0,0,[[41,[14,[124]],18,19,17],[[11,[2]]]],0,[[[11,[2]],24,24]],[[[11,[2]]]],0,0,[[[11,[2]]]],0,0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[[11,[2]]],[[15,[29]]]],0,[[[11,[2]]],39],0,0,0,0,0,0,[5],0,0,0,0,0,[5],0,0,0,[[],1],[[],1],[[]],[[]],0,[125,125],[[]],[[]],[[125,88],[[110,[[7,[5]]]]]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[[14,[65]]],125],[[]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[],126],[[126,[0,[106,107]]],[[15,[29]]]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],0,[127,128],0,[[],[[15,[129,130]]]],0,[124,131],0,[[]],[[]],0,0,[[]],[[]],0,0,0,[[19,17],5],[[19,17],5],[124,132],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,0,0,0,[133,127],0,0,[124,134],0,[[127,132]],0,0,0,0,[[132,19,135],5],[[124,24,24]],0,0,0,0,0,[124,127],0,[127,133],[124,133],0,0,0,0,0,0,[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[38,[44,[38]],38,38],[[66,[38]]]],[136,[[66,[38]]]],[[136,137],46],[[136,138],[[138,[38]]]],[136,[[66,[38]]]],[[136,138],[[139,[38]]]],[136,136],[[]],0,[[]],[140,[[66,[141]]]],[[]],[[]],[46,[[66,[141]]]],[[]],[[]],[[46,57],58],[[136,57],58],0,[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[46,142],[[136,136],35],[[24,24,[45,[[44,[38]]]],38,38],137],[[[45,[[59,[38]]]],[45,[[44,[38]]]],[45,[[44,[38]]]],24,24],136],0,0,[[142,[138,[38]]],[[138,[38]]]],[[46,[138,[38]]],[[138,[38]]]],[[137,24,24]],[[136,24,24]],[[46,[66,[38]]],140],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],[[136,142],[[14,[[63,[38]]]]]],[[136,137],[[14,[[63,[38]]]]]],0,[[136,139,142],[[139,[38]]]],[[136,143,142,35],[[14,[[139,[38]]]]]],[[139,142,38,38],[[139,[38]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[]],[[]],[[],128],[[]],[[]],[[],35],[[128,106]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[128,106]],[128,128],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[]],[[]],0,0,0,0,[[]],[49,35],0,0,[[130,130],35],[[],35],[[130,57],58],[[130,57],58],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],0,0,0,[[130,130],35],0,0,0,0,0,0,0,0,0,[[144,145,127],[[15,[146]]]],0,0,0,0,[[],65],[[],15],[[],15],[[],16],0,[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,35],[49,35],[49,35],[[147,147],35],[[148,148],35],[[149,149],35],[[],35],[[],35],[[],35],[144,[[94,[150]]]],[[147,57],58],[[147,57],58],[[148,57],58],[[148,57],58],[[149,57],58],[[149,57],58],[[]],[[]],[[]],[[]],[[]],[[144,[45,[151]]],[[15,[152,149]]]],[[144,[45,[151]]],[[15,[153,149]]]],[[144,[45,[151]]],[[15,[154,149]]]],[[144,[45,[151]]],[[15,[155,149]]]],0,[144,156],[144],0,0,[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,[[147,147],35],[[148,148],35],[[149,149],35],[[129,157],144],0,[144,156],0,[[144,[45,[[158,[88]]]],[94,[152]]],[[15,[147]]]],0,[[144,[45,[151]],[45,[152]]],[[15,[148]]]],[[],65],[[],65],[[],65],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[159,159],[[]],[[]],[[]],[49,35],[49,35],[[159,159],35],[[160,160],35],[[],35],[[],35],[[159,57],58],[[]],[[]],[159,161],[159,161],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[159,159],35],[[]],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,0,0,0,0,0,[[129,[45,[[158,[88]]]]],161],[[129,[45,[162]],[45,[162]]],[[15,[130]]]],[[129,[45,[162]],[45,[151]],[45,[162]],[45,[151]]],[[15,[130]]]],[[129,[45,[[158,[88]]]],129]],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],0,[[],129],[[]],[[]],[[129,57],58],[[]],[[]],[[129,[45,[162]]],[[15,[130]]]],[[129,[45,[162]]],[[15,[161,130]]]],[[129,[45,[162]]],[[15,[130]]]],[[129,[45,[162]]],[[15,[157,130]]]],[[129,[45,[162]]],[[15,[157,130]]]],[[129,[163,[88]]],[[14,[129]]]],[[129,[163,[88]]],[[14,[129]]]],[[129,159],35],[164,[[94,[165]]]],[129,[[14,[157]]]],0,0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[129,[45,[162]]],[[15,[62,130]]]],[[129,[45,[162]]],[[15,[62,130]]]],[129,62],[129,62],[129,62],[129,62],0,0,[164,[[94,[165]]]],[[129,[45,[[158,[88]]]]],[[15,[130]]]],[[129,[45,[162]],[45,[162]]],[[15,[130]]]],[[129,[45,[162]],[45,[151]],[45,[162]],[45,[151]]],[[15,[130]]]],[[129,[45,[[158,[88]]]]]],[[164,144,145,127],[[15,[146]]]],[[129,[94,[165]]],161],0,[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],[[129,127]],[[129,159,160],[[15,[130]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[166,159],[[15,[130]]]],[[166,159],[[15,[130]]]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[161,161],[162,162],[[]],[[]],[[161,161],55],0,0,[[]],[[[7,[167]]],[[15,[[7,[167]],[7,[167]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[167,14],[[[9,[167]]],[[15,[[9,[167]],[9,[167]]]]]],[167,14],[49,35],[49,35],[49,35],[56],0,[[161,161],35],[[146,146],35],[[162,162],35],[[],35],[[],35],[[],35],[[157,57],58],[[161,57],58],[[146,57],58],[[146,57],58],[[166,57],58],[[162,57],58],[[]],[[]],[[]],[[]],[[]],[147,146],[148,146],[149,146],[[]],[[]],[161,162],[88,162],[65,162],[162,162],[[],13],[[166,37],[[15,[159,130]]]],[[166,37],[[15,[159,130]]]],[[166,159],35],[[166,159],35],[161],[166,161],0,0,[[],[[94,[165]]]],[[],[[94,[165]]]],[166],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[167,35],0,[[161,161],35],[[146,146],35],[[162,162],35],[161,157],[37,161],[157,[[15,[130]]]],0,[157,[[15,[130]]]],[[],[[94,[165]]]],[[],[[94,[165]]]],[166],0,0,[[161,161],[[14,[55]]]],[[166,159],[[15,[130]]]],[[166,159],[[15,[130]]]],[[144,145,127],[[15,[146]]]],[[168,144,145,127],[[15,[146]]]],[146,[[14,[169]]]],[[]],[[]],[[],65],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[127],[127],[157,[[15,[130]]]],[157,[[15,[130]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[152,152],[170,170],[151,151],[165,165],[[]],[[]],[[]],[[]],[[],156],[[]],[[]],[[]],[[]],[[]],[49,35],[49,35],[[170,170],35],[[151,151],35],[[],35],[[],35],[[152,57],58],[[170,57],58],[[170,57],58],[[151,57],58],[[165,57],58],[[156,57],58],[154,152],[155,152],[153,152],[[]],[[]],[88,151],[[]],[65,151],[151,151],[[[158,[88]]],151],[37,151],[[]],[[]],[171,156],[[156,[45,[151]]],[[14,[165]]]],[[156,[45,[151]]],[[14,[37]]]],[[156,[45,[151]]],[[14,[165]]]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[156,35],[156,62],[156,37],0,[[151,151],35],[[[45,[[158,[88]]]],170],165],[152,170],0,0,[[]],[[]],[[]],[[]],[[],65],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[172,57],58],[[172,57],58],[[]],[146,172],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[129,131,134,127],[[15,[172]]]],[[129,[14,[[158,[88]]]],145,127],[[15,[172]]]],[172,[[14,[169]]]],[[],65],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[173,[[94,[165]]]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[],173],[[173,144,145,127],[[15,[146]]]],[[174,144,145,127],[[15,[146]]]],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],[[173,127]],0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[127,175],176],[[127,175],176],[[127,175],176],[[127,177,175],176],[[127,175],176],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],0,[[[179,[178]],178]],[[],1],[[],1],[[]],[[]],[[],[[179,[178]]]],[[]],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],0,[[[179,[178]]]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[]],[[]],[[]],[[175,127]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[127,175],176],0,[[]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],180],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[181],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[181,181,181]],[[[183,[182,22,22,22,22]],50,184,21,22]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[185,[[14,[186]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[[183,[182,22,22,22,22]]]],[185],[186,186],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[[183,[182,22,22,22,22]]]],0,[186,[[187,[181]]]],[[188,185],[[187,[181]]]],[[[183,[90,90,90,90,90,90]],57],58],[[189,57],58],[[[188,[90]],57],58],[[186,57],58],[[185,57],58],[[]],[[]],[[]],[[]],[[]],[[]],[131,[[183,[134,153,22,22,22,22]]]],[185,[[14,[186]]]],[[185,50],[[14,[190]]]],[[185,50],[[14,[190]]]],[[[183,[182,22,22,22,22]],50],[[14,[[118,[88]]]]]],[[185,50],[[14,[50]]]],[[185,50],35],[[[183,[182,22,22,22,22]]],185],0,[[[183,[182,22,22,22,22]]]],0,[186,[[187,[181]]]],[186,[[187,[24]]]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[185,62],0,[186,[[187,[181]]]],0,[[188,181,185],[[187,[181]]]],[[[183,[182,22,22,22,22]]]],[181,191],[[191,191,191,191],[[183,[182,22,22,22,22]]]],[[181,189],188],[[],185],0,0,0,0,0,[185,[[14,[186]]]],[[185,186]],0,[[]],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[[183,[182,22,22,22,22]],186]],[[[183,[182,22,22,22,22]],186,22]],0,[[[183,[182,22,22,22,22]]]],0,[186,[[187,[181]]]],0,[[],1],[[],1],0,[[]],[[]],[[]],[[]],[[131,192],193],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[],15],[[],15],[[],16],0,[[],14],0,0,[[],1],[[],1],[[]],[[]],0,[[],180],[[]],0,[[]],[[180,131],194],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],0,0,0,0,[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[[]],[[]],[[]],[[]],[[]],[[]],0,[195,195],[196,196],[197,197],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[196,196],35],[[195,57],58],[[196,57],58],[[197,57],58],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[196,196],35],0,0,0,0,[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[198,131]],[[133,131],155],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[131,17],133],[[132,17],133],[198,35],[133,199],0,[133,199],0,[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[37,37],200],0,0,[[133,131]],[[133,132]],[[198,132]],[[133,24,24]],[[198,24,24,131]],[133,41],0,[198,201],0,0,0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[155],[[]],[[]],[[155,57],58],[[]],[[]],[202,155],[203,155],[204,35],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[205,131,206,24,24,207],204],0,[155,[[14,[202]]]],0,[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,0,0,[[],1],[[],1],[[]],[[]],[[]],[[175,[187,[24]],[187,[24]]]],[[175,[187,[24]],64,[187,[24]]]],[[175,153,13]],[[175,153,13]],[[]],[[175,88]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[208,175],0,[175],[[175,88]],[[175,37,209]],[[175,210]],[[175,211,212]],[[175,213,24]],[[175,194]],[[175,24,24,24,24]],[[175,24]],[[175,37,211]],[[175,141,141,141,141,141,141]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],214],[[],215],[[],215],[[],215],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[[],49],[[],49],[[],49],[[],49],0,[[214,214],214],[[215,215],215],[[214,214]],[[215,215]],[[214,214],214],[[215,215],215],[[214,214]],[[215,215]],[214,24],[215,13],0,0,[[214,214],214],[[215,215],215],[[214,214]],[[215,215]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[216,216],35],[[216,216,35,217]],[218,218],[214,214],[215,215],[216,216],[206,206],[19,19],[219,219],[207,207],[17,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[214,214],55],[[215,215],55],[214,214],[215,215],0,[[214,214],35],[[215,215],35],[[],218],[[],215],[[],216],[[],19],[[],207],[[],17],0,[206,220],0,[[214,214],214],[[215,215],215],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],216],[[],216],[49,35],[49,35],[49,35],[49,35],[49,35],[56],[56],[56],[56],[56],[[],214],[[],215],[[218,218],35],[[214,214],35],[[215,215],35],[[216,216],35],[[206,206],35],[[],35],[[],35],[[],35],[[],35],[[],35],[214],[215],0,[[218,57],[[15,[221]]]],[[214,57],[[15,[221]]]],[[214,57],[[15,[221]]]],[[214,57],[[15,[221]]]],[[214,57],[[15,[221]]]],[[214,57],[[15,[221]]]],[[215,57],[[15,[221]]]],[[215,57],[[15,[221]]]],[[215,57],[[15,[221]]]],[[215,57],[[15,[221]]]],[[215,57],[[15,[221]]]],[[216,57],[[15,[221]]]],[[206,57],[[15,[221]]]],[[]],[222,214],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,[[14,[214]]]],[13,[[14,[215]]]],[24,214],[13,215],[24,214],[13,215],[[],214],[[],215],[[],13],[[],13],[[],13],[[],13],[[],13],[218],[214],[215],[216],[206],[[214,214]],[[215,215]],[[214,214],214],[[215,215],215],[[214,214],35],[[215,215],35],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[207,35],[214,35],[215,35],[214,35],[215,35],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[214,214],35],[[215,215],35],[[216,216],35],[[206,206],35],[214,214],[215,215],[[214,214],[[14,[55]]]],[[215,215],[[14,[55]]]],0,0,[[214,214]],[[215,215]],0,[[214,214,35]],[[215,215,35]],[[214,214],214],[[215,215],215],[[214,214]],[[215,215]],[[214,214],214],[[215,215],215],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[214,214]],[[215,215]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[214,214],214],[[215,215],215],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[216,216],216],[[216,216],216],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[223,223],[224,224],[27,27],[225,225],[226,226],[227,227],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],223],[[],27],[[],196],[228,196],[229,196],[[],197],[228,197],[229,197],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[225,57],58],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],223],[223,224],[[],27],[141,226],[141,227],0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[[]],[[]],[[]],[[]],[230,230],[[]],[[],231],[[]],[[]],[49,35],[56],[[230,230],35],[[],35],0,0,[[230,57],58],[[]],[[]],[[],13],0,[230],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,[[129,232]],0,0,[[231,233]],[[]],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],0,0,0,[[],1],[[],1],[[]],[[]],[[],234],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[234,233]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[]],[[]],0,[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[129,235],[[235,233]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[],236],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[236,233]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[],237],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[237,233]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[],238],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[238,233]],[[],15],[[],15],[[],16],[[],14],0,[[],1],[[],1],[[]],[[]],[[],239],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[239,233]],[[],15],[[],15],[[],16],[[],14],[239],[[239,127,134,115,18,40]],[[239,127,134,46]],0,[[],1],[[],1],0,[[]],[[]],0,[240,180],[[]],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[17,197,196,35,35,35,35],240],0,[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[241,[182]]]],0,0,[242,242],[177,177],[[]],[[]],0,[[]],[[]],[[]],[[]],0,[[[243,[90]],57],58],[[]],[[]],[[]],[[]],0,0,0,[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[[241,[182]]],62],[191,[[241,[182]]]],[[50,43,13],242],[181,243],0,0,[177],[[[241,[182]],50],48],[[]],[[]],0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[[241,[182]],40,183,43]],[[[241,[182]],46]],0,0,0,0,0,0,0,[[232,244,245],232],[[232,244,244,245],232],[[232,244,244,245],232],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[],232],[[]],[[]],[[[7,[245]]],[[15,[[7,[245]],[7,[245]]]]]],[[]],[245,14],[[[9,[245]]],[[15,[[9,[245]],[9,[245]]]]]],[245,14],[[244,244],35],[[]],[[]],[[]],[[232,244],14],[[232,244],14],[244],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[245,35],[232,62],[[],246],[233],[[247,233]],[[246,233]],[[232,233]],[[232,233]],[[232,244,106],232],0,0,0,[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],0,[[],1],[[],1],[[]],[[]],0,[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[[249,[74,77,[248,[74,77]]]],50,[94,[[85,[38]]]]]],[[[249,[74,77,[248,[74,77]]]],50,[21,[27,101]],[94,[24]],102]],[[[249,[74,77,[248,[74,77]]]],50,88]],0,0,0,[[232,109,[9,[12]]]],0,[[[249,[74,77,[248,[74,77]]]],50]],[[],15],[[],15],[[],16],[[],14],0,0,[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[9,[[9,[1]]]],[[[9,[12]]],[[250,[2]]]],[[[250,[2]],233]],[[],15],[[],15],[[],16],[[],14],0,0,[[],1],[[],1],[[]],[[]],[[]],[[]],0,[[]],[[[7,[6]]],[[7,[1,6]]]],[9,[[9,[1]]]],[[109,[9,[12]]],[[251,[2]]]],[[[251,[2]],115,50,118],[[15,[29]]]],[[[251,[2]],115,18,40]],[[[251,[2]],233]],[[76,248],252],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[],49],[[[254,[253]]]],[[[254,[255]]]],[[[254,[256]]]],[[[254,[257]]]],[[[254,[258]]]],[[[254,[259]]]],[[[254,[260]]]],[[[254,[261]]]],[[[254,[262]]]],[[[254,[263]]]],[[[254,[264]]]],[[[254,[265]]]],[[[254,[266]]]],[[[254,[267]]]],[[[254,[268]]]],[[[254,[269]]]],[[[254,[270]]]],[[[254,[271]]]],[[[254,[272]]]],[[[254,[273]]]],[[[254,[274]]]],[[[254,[275]]]],[[[254,[276]]]],[[[254,[277]]]],[[[254,[278]]]],[[[254,[279]]]],[[[254,[280]]]],[[[254,[281]]]],[[[254,[282]]]],[[[254,[283]]]],[[[254,[284]]]],[[[254,[285]]]],[[[254,[286]]]],[[[254,[287]]]],[[[254,[288]]]],[[[254,[289]]]],[[[290,[266]]]],[[[290,[264]]]],[[[290,[276]]]],[[[290,[269]]]],[[[290,[253]]]],[[[290,[273]]]],[[[290,[278]]]],[[[290,[277]]]],[[[290,[267]]]],[[[290,[285]]]],[[[290,[288]]]],[[[290,[287]]]],[[[290,[270]]]],[[[290,[275]]]],[[[290,[257]]]],[[[290,[260]]]],[[[290,[283]]]],[[[290,[289]]]],[[[290,[255]]]],[[[290,[268]]]],[[[290,[286]]]],[[[290,[262]]]],[[[290,[284]]]],[[[290,[281]]]],[[[290,[265]]]],[[[290,[258]]]],[[[290,[263]]]],[[[290,[259]]]],[[[290,[274]]]],[[[290,[280]]]],[[[290,[261]]]],[[[290,[256]]]],[[[290,[279]]]],[[[290,[282]]]],[[[290,[271]]]],[[[290,[272]]]],[260],[268],[258],[282],[285],[265],[278],[269],[279],[259],[272],[289],[281],[288],[277],[286],[262],[264],[283],[287],[256],[255],[284],[275],[271],[261],[270],[276],[257],[266],[274],[273],[263],[253],[267],[280],[[[254,[286]]]],[[[254,[263]]]],[[[254,[289]]]],[[[254,[271]]]],[[[254,[264]]]],[[[254,[261]]]],[[[254,[260]]]],[[[254,[281]]]],[[[254,[265]]]],[[[254,[257]]]],[[[254,[280]]]],[[[254,[279]]]],[[[254,[256]]]],[[[254,[262]]]],[[[254,[270]]]],[[[254,[274]]]],[[[254,[272]]]],[[[254,[273]]]],[[[254,[277]]]],[[[254,[288]]]],[[[254,[267]]]],[[[254,[275]]]],[[[254,[268]]]],[[[254,[283]]]],[[[254,[282]]]],[[[254,[276]]]],[[[254,[284]]]],[[[254,[255]]]],[[[254,[287]]]],[[[254,[269]]]],[[[254,[278]]]],[[[254,[259]]]],[[[254,[266]]]],[[[254,[285]]]],[[[254,[253]]]],[[[254,[258]]]],[[[290,[270]]]],[[[290,[263]]]],[[[290,[256]]]],[[[290,[264]]]],[[[290,[280]]]],[[[290,[288]]]],[[[290,[272]]]],[[[290,[258]]]],[[[290,[269]]]],[[[290,[267]]]],[[[290,[271]]]],[[[290,[253]]]],[[[290,[268]]]],[[[290,[281]]]],[[[290,[255]]]],[[[290,[276]]]],[[[290,[266]]]],[[[290,[262]]]],[[[290,[284]]]],[[[290,[277]]]],[[[290,[278]]]],[[[290,[289]]]],[[[290,[259]]]],[[[290,[279]]]],[[[290,[257]]]],[[[290,[285]]]],[[[290,[261]]]],[[[290,[282]]]],[[[290,[283]]]],[[[290,[274]]]],[[[290,[286]]]],[[[290,[273]]]],[[[290,[260]]]],[[[290,[265]]]],[[[290,[275]]]],[[[290,[287]]]],[260],[268],[258],[282],[285],[265],[278],[269],[279],[259],[272],[289],[281],[288],[277],[286],[262],[264],[283],[287],[256],[255],[284],[275],[271],[261],[270],[276],[257],[266],[274],[273],[263],[253],[267],[280],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[254,254],[290,290],[291,291],[260,260],[268,268],[258,258],[282,282],[285,285],[265,265],[278,278],[269,269],[279,279],[259,259],[272,272],[289,289],[281,281],[288,288],[277,277],[286,286],[262,262],[264,264],[283,283],[287,287],[256,256],[255,255],[284,284],[275,275],[271,271],[261,261],[270,270],[276,276],[257,257],[266,266],[274,274],[273,273],[263,263],[253,253],[267,267],[280,280],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[260,260],55],[[268,268],55],[[258,258],55],[[282,282],55],[[285,285],55],[[265,265],55],[[278,278],55],[[269,269],55],[[279,279],55],[[259,259],55],[[272,272],55],[[289,289],55],[[281,281],55],[[288,288],55],[[277,277],55],[[286,286],55],[[262,262],55],[[264,264],55],[[283,283],55],[[287,287],55],[[256,256],55],[[255,255],55],[[284,284],55],[[275,275],55],[[271,271],55],[[261,261],55],[[270,270],55],[[276,276],55],[[257,257],55],[[266,266],55],[[274,274],55],[[273,273],55],[[263,263],55],[[253,253],55],[[267,267],55],[[280,280],55],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[49,35],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[56],[[254,254],35],[[290,290],35],[[291,291],35],[[260,260],35],[[268,268],35],[[258,258],35],[[282,282],35],[[285,285],35],[[265,265],35],[[278,278],35],[[269,269],35],[[279,279],35],[[259,259],35],[[272,272],35],[[289,289],35],[[281,281],35],[[288,288],35],[[277,277],35],[[286,286],35],[[262,262],35],[[264,264],35],[[283,283],35],[[287,287],35],[[256,256],35],[[255,255],35],[[284,284],35],[[275,275],35],[[271,271],35],[[261,261],35],[[270,270],35],[[276,276],35],[[257,257],35],[[266,266],35],[[274,274],35],[[273,273],35],[[263,263],35],[[253,253],35],[[267,267],35],[[280,280],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[],35],[[254,57],[[15,[221]]]],[[290,57],[[15,[221]]]],[[291,57],[[15,[221]]]],[[260,57],[[15,[221]]]],[[268,57],[[15,[221]]]],[[258,57],[[15,[221]]]],[[282,57],[[15,[221]]]],[[285,57],[[15,[221]]]],[[265,57],[[15,[221]]]],[[278,57],[[15,[221]]]],[[269,57],[[15,[221]]]],[[279,57],[[15,[221]]]],[[259,57],[[15,[221]]]],[[272,57],[[15,[221]]]],[[289,57],[[15,[221]]]],[[281,57],[[15,[221]]]],[[288,57],[[15,[221]]]],[[277,57],[[15,[221]]]],[[286,57],[[15,[221]]]],[[262,57],[[15,[221]]]],[[264,57],[[15,[221]]]],[[283,57],[[15,[221]]]],[[287,57],[[15,[221]]]],[[256,57],[[15,[221]]]],[[255,57],[[15,[221]]]],[[284,57],[[15,[221]]]],[[275,57],[[15,[221]]]],[[271,57],[[15,[221]]]],[[261,57],[[15,[221]]]],[[270,57],[[15,[221]]]],[[276,57],[[15,[221]]]],[[257,57],[[15,[221]]]],[[266,57],[[15,[221]]]],[[274,57],[[15,[221]]]],[[273,57],[[15,[221]]]],[[263,57],[[15,[221]]]],[[253,57],[[15,[221]]]],[[267,57],[[15,[221]]]],[[280,57],[[15,[221]]]],[[],[[254,[282]]]],[[],[[254,[286]]]],[[],[[254,[279]]]],[[],[[254,[269]]]],[[],[[254,[272]]]],[[],[[254,[270]]]],[[],[[254,[278]]]],[[],[[254,[263]]]],[[],[[254,[276]]]],[[],[[254,[255]]]],[[],[[254,[283]]]],[[],[[254,[267]]]],[[],[[254,[287]]]],[[],[[254,[271]]]],[292,[[254,[[260,[141]]]]]],[292,[[254,[[260,[48]]]]]],[[],[[254,[260]]]],[[],[[254,[281]]]],[[],[[254,[261]]]],[292,[[254,[[260,[38]]]]]],[[],[[254,[262]]]],[[],[[254,[275]]]],[[],[[254,[258]]]],[[],[[254,[268]]]],[[],[[254,[285]]]],[[],[[254,[280]]]],[[],[[254,[273]]]],[[],[[254,[259]]]],[[],[[254,[277]]]],[[],[[254,[256]]]],[[]],[[],[[254,[274]]]],[[],[[254,[288]]]],[[],[[254,[265]]]],[[],[[254,[284]]]],[[],[[254,[289]]]],[[],[[254,[257]]]],[[],[[254,[264]]]],[[],[[254,[266]]]],[[],[[254,[253]]]],[[],[[290,[288]]]],[[],[[290,[275]]]],[[],[[290,[273]]]],[[],[[290,[261]]]],[[],[[290,[274]]]],[[],[[290,[259]]]],[[],[[290,[272]]]],[[],[[290,[284]]]],[[],[[290,[286]]]],[[],[[290,[282]]]],[[],[[290,[264]]]],[[],[[290,[253]]]],[[],[[290,[279]]]],[[],[[290,[271]]]],[[],[[290,[267]]]],[[],[[290,[256]]]],[[],[[290,[260]]]],[[],[[290,[263]]]],[[],[[290,[262]]]],[[],[[290,[269]]]],[[],[[290,[266]]]],[[],[[290,[276]]]],[[],[[290,[285]]]],[[],[[290,[258]]]],[[],[[290,[287]]]],[[],[[290,[270]]]],[[]],[[],[[290,[255]]]],[[],[[290,[289]]]],[[],[[290,[278]]]],[[],[[290,[268]]]],[[],[[290,[280]]]],[[],[[290,[265]]]],[[],[[290,[281]]]],[[],[[290,[277]]]],[[],[[290,[257]]]],[[],[[290,[283]]]],[[]],[[[254,[260]]],260],[292,[[260,[141]]]],[292,[[260,[48]]]],[[]],[292,[[260,[38]]]],[[[290,[260]]],260],[[],260],[[[254,[268]]],268],[[[290,[268]]],268],[[],268],[[]],[[[254,[258]]],258],[[],258],[[]],[[[290,[258]]],258],[[[254,[282]]],282],[[],282],[[]],[[[290,[282]]],282],[[]],[[[254,[285]]],285],[[[290,[285]]],285],[[],285],[[[290,[265]]],265],[[[254,[265]]],265],[[]],[[],265],[[]],[[[290,[278]]],278],[[],278],[[[254,[278]]],278],[[[290,[269]]],269],[[]],[[],269],[[[254,[269]]],269],[[[254,[279]]],279],[[[290,[279]]],279],[[]],[[],279],[[[290,[259]]],259],[[],259],[[]],[[[254,[259]]],259],[[[290,[272]]],272],[[]],[[[254,[272]]],272],[[],272],[[[254,[289]]],289],[[]],[[],289],[[[290,[289]]],289],[[[254,[281]]],281],[[[290,[281]]],281],[[]],[[],281],[[[290,[288]]],288],[[[254,[288]]],288],[[]],[[],288],[[],277],[[[290,[277]]],277],[[]],[[[254,[277]]],277],[[[290,[286]]],286],[[[254,[286]]],286],[[]],[[],286],[[[290,[262]]],262],[[],262],[[[254,[262]]],262],[[]],[[[254,[264]]],264],[[]],[[],264],[[[290,[264]]],264],[[[290,[283]]],283],[[],283],[[]],[[[254,[283]]],283],[[]],[[],287],[[[254,[287]]],287],[[[290,[287]]],287],[[[254,[256]]],256],[[],256],[[[290,[256]]],256],[[]],[[]],[[],255],[[[290,[255]]],255],[[[254,[255]]],255],[[],284],[[]],[[[254,[284]]],284],[[[290,[284]]],284],[[[254,[275]]],275],[[]],[[],275],[[[290,[275]]],275],[[[290,[271]]],271],[[],271],[[]],[[[254,[271]]],271],[[]],[[[254,[261]]],261],[[],261],[[[290,[261]]],261],[[]],[[],270],[[[290,[270]]],270],[[[254,[270]]],270],[[[290,[276]]],276],[[],276],[[[254,[276]]],276],[[]],[[[254,[257]]],257],[[],257],[[]],[[[290,[257]]],257],[[]],[[[290,[266]]],266],[[],266],[[[254,[266]]],266],[[],274],[[[254,[274]]],274],[[]],[[[290,[274]]],274],[[]],[[],273],[[[290,[273]]],273],[[[254,[273]]],273],[[[254,[263]]],263],[[[290,[263]]],263],[[]],[[],263],[[],253],[[[290,[253]]],253],[[]],[[[254,[253]]],253],[[],267],[[[290,[267]]],267],[[]],[[[254,[267]]],267],[[]],[[[254,[280]]],280],[[[290,[280]]],280],[[],280],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],[[],13],0,0,0,0,[254],[290],[291],[260],[268],[258],[282],[285],[265],[278],[269],[279],[259],[272],[289],[281],[288],[277],[286],[262],[264],[283],[287],[256],[255],[284],[275],[271],[261],[270],[276],[257],[266],[274],[273],[263],[253],[267],[280],0,0,[[[254,[281]]]],[[[254,[263]]]],[[[254,[257]]]],[[[254,[289]]]],[[[254,[267]]]],[[[254,[285]]]],[[[254,[265]]]],[[[254,[255]]]],[[]],[[[254,[275]]]],[[[254,[278]]]],[[[254,[288]]]],[[[254,[270]]]],[[[254,[256]]]],[[[254,[283]]]],[[[254,[276]]]],[[[254,[269]]]],[[[254,[284]]]],[[[254,[264]]]],[[[254,[280]]]],[[[254,[258]]]],[[[254,[286]]]],[[[254,[253]]]],[[[254,[279]]]],[[[254,[272]]]],[[[254,[261]]]],[[[254,[277]]]],[[[254,[273]]]],[[[254,[260]]]],[[[254,[287]]]],[[[254,[262]]]],[[[254,[268]]]],[[[254,[274]]]],[[[254,[282]]]],[[[254,[266]]]],[[[254,[259]]]],[[[254,[271]]]],[[[290,[281]]]],[[[290,[284]]]],[[[290,[260]]]],[[[290,[286]]]],[[[290,[262]]]],[[[290,[258]]]],[[[290,[263]]]],[[[290,[273]]]],[[[290,[259]]]],[[[290,[271]]]],[[[290,[283]]]],[[[290,[255]]]],[[[290,[288]]]],[[[290,[261]]]],[[[290,[289]]]],[[[290,[278]]]],[[]],[[[290,[272]]]],[[[290,[277]]]],[[[290,[265]]]],[[[290,[280]]]],[[[290,[256]]]],[[[290,[282]]]],[[[290,[275]]]],[[[290,[276]]]],[[[290,[264]]]],[[[290,[269]]]],[[[290,[287]]]],[[[290,[253]]]],[[[290,[279]]]],[[[290,[267]]]],[[[290,[257]]]],[[[290,[268]]]],[[[290,[285]]]],[[[290,[274]]]],[[[290,[266]]]],[[[290,[270]]]],[[]],[260],[[]],[[]],[268],[[]],[258],[282],[[]],[[]],[285],[265],[[]],[278],[[]],[269],[[]],[[]],[279],[[]],[259],[272],[[]],[[]],[289],[281],[[]],[288],[[]],[277],[[]],[286],[[]],[262],[[]],[[]],[264],[283],[[]],[[]],[287],[256],[[]],[255],[[]],[[]],[284],[[]],[275],[[]],[271],[261],[[]],[270],[[]],[[]],[276],[257],[[]],[[]],[266],[274],[[]],[[]],[273],[[]],[263],[253],[[]],[[]],[267],[[]],[280],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[254,254],35],[[290,290],35],[[260,260],35],[[268,268],35],[[258,258],35],[[282,282],35],[[285,285],35],[[265,265],35],[[278,278],35],[[269,269],35],[[279,279],35],[[259,259],35],[[272,272],35],[[289,289],35],[[281,281],35],[[288,288],35],[[277,277],35],[[286,286],35],[[262,262],35],[[264,264],35],[[283,283],35],[[287,287],35],[[256,256],35],[[255,255],35],[[284,284],35],[[275,275],35],[[271,271],35],[[261,261],35],[[270,270],35],[[276,276],35],[[257,257],35],[[266,266],35],[[274,274],35],[[273,273],35],[[263,263],35],[[253,253],35],[[267,267],35],[[280,280],35],[291,37],[[260,260],[[14,[55]]]],[[268,268],[[14,[55]]]],[[258,258],[[14,[55]]]],[[282,282],[[14,[55]]]],[[285,285],[[14,[55]]]],[[265,265],[[14,[55]]]],[[278,278],[[14,[55]]]],[[269,269],[[14,[55]]]],[[279,279],[[14,[55]]]],[[259,259],[[14,[55]]]],[[272,272],[[14,[55]]]],[[289,289],[[14,[55]]]],[[281,281],[[14,[55]]]],[[288,288],[[14,[55]]]],[[277,277],[[14,[55]]]],[[286,286],[[14,[55]]]],[[262,262],[[14,[55]]]],[[264,264],[[14,[55]]]],[[283,283],[[14,[55]]]],[[287,287],[[14,[55]]]],[[256,256],[[14,[55]]]],[[255,255],[[14,[55]]]],[[284,284],[[14,[55]]]],[[275,275],[[14,[55]]]],[[271,271],[[14,[55]]]],[[261,261],[[14,[55]]]],[[270,270],[[14,[55]]]],[[276,276],[[14,[55]]]],[[257,257],[[14,[55]]]],[[266,266],[[14,[55]]]],[[274,274],[[14,[55]]]],[[273,273],[[14,[55]]]],[[263,263],[[14,[55]]]],[[253,253],[[14,[55]]]],[[267,267],[[14,[55]]]],[[280,280],[[14,[55]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],[[],16],0,[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[293,293],[294,294],[295,295],[296,296],[184,184],[[]],[[]],[[]],[[]],[[]],[[],184],[[],[[15,[293]]]],[[],[[15,[294]]]],[[],[[15,[295]]]],[[],[[15,[296]]]],[[],[[15,[184]]]],[[]],[[]],[[]],[[]],[[]],0,[[293,57],58],[[294,57],58],[[295,57],58],[[296,57],58],[[184,57],58],[[]],[[]],[[]],[[]],[[]],[296,[[14,[[254,[[260,[141]]]]]]]],0,0,[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,0,0,0,[293,15],[294,15],[295,15],[296,15],[184,15],0,0,[[]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[],16],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[[]],[[]],[[]],[[]],[[]],[[]],0,[61,61],[297,297],[298,298],[[]],[[]],[[]],[[],61],[[],[[15,[61]]]],[[],[[15,[297]]]],[[],[[15,[298]]]],[[]],[[]],[[]],[[61,57],58],[[297,57],58],[[298,57],58],[[]],[[]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],0,0,0,[61,15],[297,15],[298,15],0,[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],0,0,0,[[],1],[[],1],[[]],[[]],0,[18,18],[[]],[[],18],[[],[[15,[18]]]],[[]],[[18,57],58],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],0,0,0,0,[18,15],0,[[]],[[],15],[[],15],[[],16],[[],14],0,0,0,0,0,0,0,0,[[]],[[]],0,[[],[[15,[29]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],49],[299,35],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[299],[300],[102],[299,299],[300,300],[102,102],[301,301],[[]],[[]],[[]],[[]],[[301,301],55],[[],299],[[],300],[[],102],[[],301],[299,38],0,[[]],[[]],[[]],[[]],[49,35],[56],[299,37],[300,37],[102,37],[[299,299],35],[[300,300],35],[[102,102],35],[[301,301],35],[[],35],[102,24],0,0,[299,141],0,[[299,57],[[15,[221]]]],[[300,57],[[15,[221]]]],[[102,57],[[15,[221]]]],[[301,57],[[15,[221]]]],[[]],[[]],[[]],[[]],[64,[[14,[301]]]],0,[[],13],[301],[300,13],0,[299,302],0,[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[64,35],0,0,[[299,299],35],[[300,300],35],[[102,102],35],[[301,301],[[14,[55]]]],[102,[[15,[89]]]],[300,[[15,[89]]]],[[300,301]],[299,302],0,[299,88],0,0,[[],[[15,[[303,[38]],89]]]],[[],[[15,[300,89]]]],[[]],[[]],[[]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[300,301],0,[[],16],[[],16],[[],16],[[],16],[299,13],0,[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[],304],[304],[304],[304,35],[[]],[[]],0,0,[[]],[[]],0,0,0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[305,35],0,0,0,0,0,0,[[],35],[[],305],[[],304],0,0,[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],14],[[],14],[[305,50]],[304],0,[[],1],[[],1],[[]],[[]],[[]],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[],306],0,[[],15],[[],15],[[],16],[[],14],[306],[[],307],[[307,48],94],0,0,[[],1],[[],49],[49,35],[56],0,0,0,0,0,[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[62,14],[308,308],[[]],[[308,308],55],0,[[64,64],64],[[64,64],64],[[64,64],64],[[]],[[]],[[]],[[]],[49,35],[[308,308],35],[[],35],[[[310,[309]],57],58],[[[63,[311]],57],58],[[[312,[311]],57],58],[[308,57],58],[[]],[[]],[[]],[[]],[[[59,[309]],[139,[309]]],[[310,[309]]]],[[[59,[309]],[59,[309]],[59,[309]]],[[14,[[310,[309]]]]]],[[[310,[309]],139,139],[[14,[309]]]],[[[310,[309]],312],[[94,[[139,[309]]]]]],[[[310,[309]],312],[[94,[[139,[309]]]]]],[[]],[[]],[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[9,[[9,[1]]]],[[[0,[313,314]],[0,[313,314]]],[[0,[313,314]]]],0,0,[[[0,[313,314]],[0,[313,314]]],[[0,[313,314]]]],0,0,0,[[[139,[309]],309],[[310,[309]]]],[[[315,[311]],[315,[311]]],[[63,[311]]]],[[[59,[311]],[59,[311]]],[[312,[311]]]],[[308,308],[[14,[55]]]],[[[63,[311]]]],[[[312,[311]]]],[[]],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],16],[[],16],[[],16],[[],16],[[],14],[[],14],[[],14],[[],14],0,0,0,0,0,0,0,[[],1],[[],1],[[],1],[[]],[[]],[41,41],[[]],[[]],[[]],[49,35],[[41,41],35],[[],35],[[]],[41,24],0,[[]],[[]],[[[7,[6]]],[[7,[1,6]]]],[8,[[8,[1]]]],[9,[[9,[1]]]],[[41,41],35],[[24,24],[[14,[41]]]],[[[9,[[12,[11]]]],[14,[13]]]],[[],41],[[]],[[],15],[[],15],[[],16],[[],14],[41,24],0],"p":[[8,"Any"],[8,"Environment"],[3,"MapBuilder"],[3,"UninitializedMap"],[8,"Future"],[3,"Global"],[3,"Box"],[3,"Arc"],[3,"Rc"],[3,"Map"],[3,"InteractiveMapSchedule"],[3,"RefCell"],[15,"u64"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"RendererSettings"],[3,"Style"],[3,"WgpuSettings"],[8,"Clone"],[3,"OverAlignedVertexBuffer"],[8,"Pod"],[3,"VertexBuffers"],[15,"u32"],[3,"VertexConstructor"],[3,"FillVertex"],[3,"ShaderVertex"],[3,"StrokeVertex"],[4,"Error"],[8,"Add"],[3,"VertexId"],[8,"From"],[8,"MaxIndex"],[3,"ZeroTessellator"],[15,"bool"],[6,"Result"],[15,"usize"],[15,"f64"],[3,"ViewState"],[3,"ViewRegion"],[3,"WindowSize"],[3,"WorldCoords"],[3,"Zoom"],[3,"Rad"],[8,"Into"],[3,"ViewProjection"],[3,"ZoomLevel"],[15,"u8"],[8,"DynEq"],[3,"WorldTileCoords"],[3,"Quadkey"],[3,"LatLon"],[3,"InnerCoords"],[3,"TileCoords"],[4,"Ordering"],[8,"Hasher"],[3,"Formatter"],[6,"Result"],[3,"Point3"],[3,"AlignedWorldTileCoords"],[4,"TileAddressingScheme"],[8,"Iterator"],[3,"Aabb2"],[15,"i32"],[3,"String"],[3,"Matrix4"],[4,"RenderError"],[4,"SurfaceError"],[3,"Error"],[3,"SendError"],[4,"Error"],[4,"TessellationError"],[3,"TileRequest"],[8,"Transferables"],[4,"Message"],[4,"Input"],[8,"HttpClient"],[3,"SchedulerContext"],[8,"Scheduler"],[3,"SchedulerAsyncProcedureCall"],[3,"DefaultTransferables"],[6,"AsyncProcedure"],[4,"SourceClient"],[3,"IndexProcessor"],[3,"IndexedGeometry"],[3,"RTree"],[4,"ExactGeometry"],[15,"str"],[4,"GeozeroError"],[8,"Debug"],[3,"LineString"],[3,"HashMap"],[3,"Polygon"],[3,"Vec"],[3,"GeometryIndex"],[4,"TileIndex"],[4,"ColumnValue"],[3,"PipelineEnd"],[3,"ClosureProcessable"],[15,"never"],[6,"IndexDataType"],[3,"Layer"],[3,"PipelineContext"],[3,"DataPipeline"],[8,"PipelineProcessor"],[8,"FnOnce"],[8,"Send"],[3,"NopScheduler"],[3,"HttpSourceClient"],[3,"Pin"],[8,"Processable"],[3,"ParseTile"],[3,"IndexLayer"],[3,"TessellateLayer"],[3,"TileRepository"],[4,"TileStatus"],[4,"StoredLayer"],[3,"HashSet"],[3,"StoredTile"],[3,"DefaultTileTessellated"],[3,"DefaultUnavailableLayer"],[3,"DefaultTessellatedLayer"],[4,"EventuallyMapContext"],[3,"Renderer"],[3,"ReqwestHttpClient"],[3,"TokioScheduler"],[3,"RenderState"],[4,"Eventually"],[3,"RenderGraph"],[4,"RenderGraphError"],[3,"Device"],[3,"Instance"],[3,"Surface"],[3,"Queue"],[6,"RequestAdapterOptions"],[3,"Camera"],[3,"Perspective"],[3,"Vector4"],[3,"Vector3"],[3,"ModelViewProjection"],[15,"f32"],[3,"InvertedViewProjection"],[3,"Vector2"],[3,"RenderGraphContext"],[3,"RenderContext"],[4,"NodeRunError"],[4,"RunSubGraphError"],[4,"OutputSlotError"],[4,"InputSlotError"],[3,"RunSubGraph"],[4,"SlotLabel"],[4,"SlotValue"],[3,"Buffer"],[3,"Sampler"],[4,"TextureView"],[3,"SlotInfos"],[3,"NodeState"],[4,"Cow"],[4,"Edge"],[4,"EdgeExistence"],[3,"NodeId"],[4,"NodeLabel"],[8,"AsRef"],[3,"GraphInputNode"],[3,"SlotInfo"],[3,"Edges"],[8,"Node"],[3,"EmptyNode"],[8,"Error"],[4,"SlotType"],[8,"IntoIterator"],[4,"RenderGraphRunnerError"],[3,"MainPassNode"],[3,"MainPassDriverNode"],[3,"TrackedRenderPass"],[4,"RenderCommandResult"],[3,"TileInView"],[8,"PhaseItem"],[3,"RenderPhase"],[3,"RenderPipelineDescriptor"],[6,"BufferAddress"],[8,"Queue"],[3,"BufferPool"],[3,"StyleLayer"],[3,"RingIndex"],[3,"IndexEntry"],[3,"Range"],[3,"BackingBuffer"],[4,"BackingBufferType"],[3,"VecDeque"],[3,"BackingBufferDescriptor"],[3,"BindGroupLayout"],[3,"Globals"],[3,"RenderPipeline"],[3,"VertexBufferLayout"],[3,"FragmentState"],[3,"VertexState"],[3,"WindowHead"],[4,"Head"],[3,"BufferDimensions"],[3,"Surface"],[3,"SurfaceTexture"],[3,"TextureView"],[3,"Texture"],[6,"Label"],[4,"TextureFormat"],[3,"Msaa"],[3,"RenderPass"],[3,"BindGroup"],[3,"Color"],[3,"BufferSlice"],[4,"IndexFormat"],[3,"ShaderStages"],[3,"Backends"],[3,"Features"],[3,"Limits"],[8,"FnMut"],[4,"PowerPreference"],[4,"SurfaceType"],[3,"TextureFormatInfo"],[3,"Error"],[4,"Backend"],[3,"ShaderCamera"],[3,"ShaderGlobals"],[3,"ShaderFeatureStyle"],[3,"ShaderLayerMetadata"],[3,"ShaderTileMetadata"],[3,"TileMaskShader"],[3,"TileShader"],[4,"RenderStageLabel"],[3,"PrepareStage"],[3,"Schedule"],[3,"MapContext"],[3,"ExtractStage"],[3,"GraphRunnerStage"],[3,"PhaseSortStage"],[3,"QueueStage"],[3,"ResourceStage"],[3,"UploadStage"],[3,"TilePipeline"],[3,"TileViewPattern"],[3,"TileShape"],[3,"BackingBuffer"],[8,"StageLabel"],[8,"Stage"],[3,"MultiStage"],[3,"NopStage"],[8,"Context"],[3,"HeadedPipelineProcessor"],[3,"PopulateTileStore"],[3,"RequestStage"],[6,"AsyncProcedureFuture"],[3,"YPrimePbPr"],[3,"Alpha"],[3,"ICtCpPQ"],[3,"EncodedBt2100HLG"],[3,"Hsl"],[3,"EncodedRec709"],[3,"Aces2065"],[3,"EncodedSrgb"],[3,"CieLCh"],[3,"Bt2020"],[3,"YPbPr"],[3,"EncodedBt2020"],[3,"GenericColor1"],[3,"Hsv"],[3,"Yuv"],[3,"LinearSrgb"],[3,"Luma"],[3,"Oklab"],[3,"CieLab"],[3,"AcesCc"],[3,"YPrimeCbCr"],[3,"YCbCr"],[3,"CieXYZ"],[3,"Oklch"],[3,"DciP3"],[3,"Luminance"],[3,"AcesCg"],[3,"YCxCz"],[3,"DisplayP3"],[3,"Rec709"],[3,"Bt2100"],[3,"ICtCpHLG"],[3,"GenericColor3"],[3,"DciXYZPrime"],[3,"EncodedBt2100PQ"],[3,"EncodedDisplayP3"],[3,"AcesCct"],[3,"PremultipliedAlpha"],[4,"Spaces"],[3,"Color"],[3,"BackgroundPaint"],[3,"FillPaint"],[3,"LinePaint"],[4,"LayerPaint"],[3,"VectorSource"],[4,"Source"],[3,"Value"],[3,"Feature"],[4,"GeomType"],[15,"i64"],[4,"Geometry"],[3,"ChangeObserver"],[3,"MinMaxBoundingBox"],[3,"FPSMeter"],[3,"Grid"],[3,"FloatOrd"],[8,"BaseFloat"],[3,"Plane"],[8,"BaseNum"],[3,"Aabb3"],[8,"PartialOrd"],[8,"Copy"],[3,"Point2"],[8,"Tessellated"],[13,"Network"],[13,"Tesselation"],[13,"Render"],[13,"Surface"],[8,"AsyncProcedureCall"],[13,"TileRequest"],[13,"TileTessellated"],[13,"UnavailableLayer"],[13,"TessellatedLayer"],[13,"Polygon"],[13,"LineString"],[13,"Linear"],[13,"Spatial"],[13,"Http"],[13,"TessellatedLayer"],[13,"UnavailableLayer"],[8,"TileTessellated"],[8,"UnavailableLayer"],[8,"TessellatedLayer"],[3,"PrematureMapContext"],[13,"Full"],[13,"Premature"],[8,"HasChanged"],[13,"Initialized"],[13,"SlotEdge"],[13,"NodeEdge"],[13,"InvalidSlot"],[13,"MismatchedSlotType"],[13,"Id"],[13,"Name"],[13,"InputSlotError"],[13,"OutputSlotError"],[13,"RunSubGraphError"],[13,"InvalidSlot"],[13,"MismatchedSlotType"],[13,"InvalidNode"],[13,"InvalidOutputNodeSlot"],[13,"InvalidInputNodeSlot"],[13,"EdgeAlreadyExists"],[13,"EdgeDoesNotExist"],[13,"MismatchedNodeSlots"],[13,"UnconnectedNodeInputSlot"],[13,"NodeInputSlotAlreadyOccupied"],[13,"UnconnectedNodeOutputSlot"],[13,"MissingSubGraph"],[13,"SubGraphHasNoInputs"],[13,"MismatchedInputSlotType"],[13,"MissingInput"],[13,"Index"],[13,"Name"],[13,"Buffer"],[13,"TextureView"],[13,"Sampler"],[3,"RenderGraphRunner"],[13,"NodeRunError"],[13,"MismatchedInputSlotType"],[13,"MissingInput"],[13,"EmptyNodeOutputSlot"],[3,"SetViewBindGroup"],[3,"SetMaskPipeline"],[3,"SetTilePipeline"],[3,"DrawMask"],[3,"DrawTile"],[8,"Draw"],[8,"RenderCommand"],[3,"BufferedTextureHead"],[8,"RenderPipeline"],[13,"Headed"],[13,"Headless"],[13,"TextureView"],[13,"SurfaceTexture"],[13,"Astc"],[8,"Shader"],[8,"ColorInterop"],[8,"ColorType"],[13,"Background"],[13,"Line"],[13,"Fill"],[13,"Vector"],[13,"Raster"],[8,"Align"],[8,"SignificantlyDifferent"],[8,"DynHash"],[8,"MapWindowConfig"],[8,"HeadedMapWindow"],[8,"EventLoop"],[8,"MapWindow"]]}\ +"maplibre":{"doc":"Maplibre-rs","t":[0,0,0,14,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,6,3,8,3,12,10,12,0,3,12,12,12,12,12,12,3,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,12,12,12,12,12,3,17,17,17,3,3,17,3,17,3,3,3,3,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,12,16,8,16,16,16,13,4,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,8,8,8,16,16,16,10,10,10,10,3,3,0,11,11,11,11,11,11,12,11,11,12,12,11,11,0,11,11,11,11,12,12,12,0,0,11,0,0,0,11,0,11,11,11,11,12,12,6,8,6,8,16,4,4,3,3,13,13,13,16,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,12,10,11,12,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,4,3,3,3,13,13,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,3,3,16,16,3,3,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,6,8,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,13,4,3,13,13,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,3,3,3,3,8,16,8,16,8,8,16,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,10,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,3,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,11,11,11,11,11,11,11,11,12,11,12,12,17,0,0,5,0,0,3,12,0,5,0,0,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,17,3,3,3,12,11,11,11,11,11,11,11,11,12,11,0,0,5,12,11,12,11,11,0,0,0,11,11,12,0,0,11,11,11,12,11,11,11,11,11,11,11,11,0,0,12,12,12,11,12,12,11,12,11,2,0,0,12,11,11,0,0,12,0,0,11,12,11,11,12,12,0,12,0,12,11,11,11,11,11,11,11,11,12,13,4,13,3,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,12,12,12,3,17,3,3,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,11,12,12,17,0,0,17,13,13,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,16,4,8,13,13,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,12,12,13,13,13,4,13,13,4,3,3,13,3,13,13,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,8,13,3,13,4,4,3,4,13,3,3,3,4,3,4,13,13,13,13,3,3,4,4,4,13,13,13,13,13,13,11,11,11,11,11,12,0,12,12,11,11,0,12,11,11,11,11,11,0,12,12,12,12,12,12,12,12,12,11,11,11,11,12,12,12,11,0,12,12,12,0,12,12,12,12,10,12,12,12,12,11,11,11,11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,13,13,13,13,13,13,13,4,3,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,3,18,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,3,3,13,13,13,8,3,4,4,3,13,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,13,13,3,3,4,4,4,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,13,13,13,13,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,0,0,17,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,17,17,3,6,3,6,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,0,11,11,11,11,11,12,11,11,11,11,11,8,13,8,8,4,16,13,11,11,11,11,11,10,11,11,11,11,11,10,14,10,11,11,11,11,3,4,3,3,3,17,13,3,3,4,13,13,17,3,13,17,13,8,8,3,3,3,13,3,4,13,3,17,3,3,13,3,12,12,12,12,12,12,12,12,0,12,12,12,12,10,12,12,12,12,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,12,0,12,12,12,12,12,12,0,12,12,12,0,12,12,0,12,12,12,12,12,12,12,12,10,12,12,12,12,12,3,3,4,3,17,13,17,3,13,17,13,3,17,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,12,12,12,12,12,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,3,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,8,3,11,11,11,11,12,10,11,12,11,11,11,11,11,11,12,12,12,12,11,11,11,11,12,3,3,3,12,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,4,13,13,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,12,13,3,4,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,12,12,12,12,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,18,18,13,18,18,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,18,18,18,18,18,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,18,13,13,13,18,3,13,18,18,18,18,18,3,18,18,18,18,18,18,4,13,13,13,13,13,13,13,13,13,13,13,13,3,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,18,18,18,18,18,18,18,4,18,18,18,18,18,18,18,18,4,18,18,18,18,18,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,12,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,11,11,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,6,8,3,3,3,3,3,3,3,3,6,6,6,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,13,13,13,3,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,0,11,11,11,11,0,11,11,11,11,11,11,11,11,11,0,0,5,12,0,11,11,11,11,11,11,11,11,11,11,12,0,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,12,11,11,12,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,12,12,3,17,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,6,3,3,3,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,12,0,5,0,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,12,11,11,11,11,5,11,11,11,11,3,13,3,13,3,13,3,13,3,3,13,3,13,3,13,3,13,3,13,16,8,8,16,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,3,13,18,3,13,3,13,3,3,13,18,4,3,3,13,3,13,3,13,3,13,3,13,3,13,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,0,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,12,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,3,13,3,4,13,3,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,12,12,12,13,4,13,4,6,6,13,3,13,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,12,11,11,11,11,11,12,12,8,17,6,3,8,3,10,10,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,12,0,6,3,11,11,11,11,12,12,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,4,3,13,13,13,13,3,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,12,12,3,16,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,12,11,11,0,12,12,11,11,11,11,11,11,11,11,11,0,0,12,12,12,12,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,11,5,5,8,8,10,10,10,10,12,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,12,5,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,8,16,8,16,3,11,11,11,11,11,11,11,10,11,11,11,11,11,11,12,10,11,11,11,11,11,11,10,10,10,11,11,11,11,11,11,12,3,3,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12],"n":["benchmarking","context","coords","define_label","environment","error","event_loop","io","kernel","map","multi_stage","platform","render","schedule","stages","style","tessellation","tile","util","window","world","io","tessellation","IndexDataType","OverAlignedVertexBuffer","Tessellated","VertexConstructor","buffer","tessellate","usable_indices","zero_tessellator","ZeroTessellator","buffer","current_index","feature_indices","is_point","path_builder","path_open","MapContext","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_arc","into_any_rc","renderer","resize","style","try_from","try_into","type_id","upcast","world","0","0","0","0","AlignedWorldTileCoords","EXTENT","EXTENT_SINT","EXTENT_UINT","InnerCoords","LatLon","MAX_ZOOM","Quadkey","TILE_SIZE","TileCoords","ViewRegion","WorldCoords","WorldTileCoords","ZOOM_BOUNDS","Zoom","ZoomLevel","add","add","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","at_ground","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build_quad_key","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","create_zoom_bounds","default","default","default","default","default","default","default","deserialize","deserialize","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_lat_lon","get_children","get_hash","get_hash","get_hash","get_parent","hash","hash","hash","into","into","into","into","into","into","into","into","into","into","into","into_aligned","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_tile","into_world_tile","into_world_tile","is_in_view","is_root","is_valid_bit_pattern","iter","latitude","level","longitude","lower_left","lower_right","max_n_tiles","max_tile","min_tile","ne","ne","ne","ne","ne","ne","ne","new","new","new","new","new","padding","partial_cmp","partial_cmp","partial_cmp","scale_delta","scale_to_tile","scale_to_zoom_level","serialize","serialize","sub","sub","tiles_with_z","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","to_string","transform_for_zoom","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upper_left","upper_right","x","x","x","x","y","y","y","y","z","z","zoom_level","zoom_level","AsyncProcedureCall","Environment","HttpClient","MapWindowConfig","Scheduler","APC","Error","Generic","Network","Render","Scheduler","Tesselation","as_any","as_any_mut","borrow","borrow_mut","downcast","fmt","from","from","from","from","from","from","from","from","into","into_any","into_any_arc","into_any_rc","try_from","try_into","type_id","upcast","0","0","0","0","EventLoop","EventLoopConfig","EventLoopProxy","EventLoopProxy","EventLoopProxy","EventType","create_proxy","create_proxy","run","send_event","RawLayer","TileRequest","apc","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","coords","deserialize","downcast","extent","features","fmt","from","geometry_index","into","into_any","into_any_arc","into_any_rc","keys","layers","name","pipeline","scheduler","serialize","source_client","tile_pipelines","tile_repository","to_owned","transferables","try_from","try_into","type_id","upcast","values","version","AsyncProcedure","AsyncProcedureCall","AsyncProcedureFuture","Context","Context","Input","Message","SchedulerAsyncProcedureCall","SchedulerContext","TessellatedLayer","TileRequest","TileTessellated","Transferables","UnavailableLayer","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","call","call","channel","clone","clone","clone","clone_into","clone_into","clone_into","deserialize","downcast","downcast","downcast","downcast","from","from","from","from","http_client","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","receive","receive","scheduler","send","send","sender","serialize","source_client","source_client","source_client","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","0","0","0","0","ExactGeometry","GeometryIndex","IndexProcessor","IndexedGeometry","LineString","Linear","Polygon","Spatial","TileIndex","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds","build_tree","clone","clone","clone_into","clone_into","contains_point","dataset_begin","dataset_end","distance_2","downcast","downcast","downcast","downcast","downcast","envelope","exact","feature_begin","feature_end","fmt","fmt","from","from","from","from","from","from_linestring","from_polygon","geo_writer","geometries","geometry_begin","geometry_end","get_geometries","index","index_tile","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","linestring_begin","linestring_end","multilinestring_begin","multilinestring_end","multipoint_begin","multipolygon_begin","new","new","point_begin","point_query","polygon_begin","polygon_end","properties","properties","properties_begin","properties_end","property","query_point","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","xy","0","0","list","tree","ClosureProcessable","DataPipeline","Input","Output","PipelineContext","PipelineEnd","PipelineProcessor","Processable","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","default","downcast","downcast","downcast","downcast","from","from","from","from","from","from","func","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","layer_indexing_finished","layer_tesselation_finished","layer_unavailable","new","new","next_step","phantom","phantom_i","process","process","process","process","processor","processor_mut","step","take_processor","tile_finished","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","NopScheduler","Scheduler","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_arc","into_any_rc","schedule","schedule","try_from","try_into","type_id","upcast","HTTPClientFactory","HttpClient","HttpSourceClient","SourceClient","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","downcast","downcast","fetch","fetch","fetch","from","from","http","inner_client","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","new","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","IndexLayer","ParseTile","TessellateLayer","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","build_vector_tile_pipeline","default","default","default","downcast","downcast","downcast","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","process","process","process","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","Failed","Pending","StoredLayer","StoredTile","Success","TessellatedLayer","TileRepository","TileStatus","UnavailableLayer","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clone","clone","clone","clone_into","clone_into","clone_into","coords","create_tile","default","downcast","downcast","downcast","downcast","dyn_eq","eq","equivalent","failed","from","from","from","from","get_coords","has_tile","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","iter_layers_at","layer_name","layers","mark_tile_failed","mark_tile_succeeded","new","pending","put_layer","put_tile","status","success","to_owned","to_owned","to_owned","tree","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","buffer","coords","coords","feature_indices","layer_name","layer_name","DefaultTessellatedLayer","DefaultTileTessellated","DefaultTransferables","DefaultUnavailableLayer","TessellatedLayer","TessellatedLayer","TileTessellated","TileTessellated","Transferables","UnavailableLayer","UnavailableLayer","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","clone","clone_into","coords","coords","coords","coords","coords","downcast","downcast","downcast","downcast","feature_indices","from","from","from","from","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","layer_data","layer_name","new","new","new","new","new","new","to_owned","to_stored_layer","to_stored_layer","to_stored_layer","to_stored_layer","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","Kernel","KernelBuilder","apc","apc","apc","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","build","downcast","downcast","from","from","http_client","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","map_window_config","map_window_config","map_window_config","new","scheduler","scheduler","scheduler","source_client","source_client","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","with_apc","with_http_client","with_map_window_config","with_scheduler","Map","MapContextState","Pending","Ready","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","context","context_mut","downcast","downcast","from","from","has_renderer","initialize_renderer","into","into","into_any","into_any","into_any_arc","into_any_rc","into_any_rc","kernel","kernel","map_context","new","run_schedule","schedule","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","window","window","window_mut","0","style","MIN_WEBGL_BUFFER_SIZE","http_client","noweb","run_multithreaded","scheduler","trace","ReqwestHttpClient","client","http_client","run_multithreaded","scheduler","trace","ReqwestHttpClient","as_any","as_any_mut","borrow","borrow_mut","client","clone","clone_into","downcast","fetch","from","into","into_any","into_any_arc","into_any_rc","new","to_owned","try_from","try_into","type_id","upcast","TokioScheduler","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_arc","into_any_rc","new","schedule","try_from","try_into","type_id","upcast","TokioScheduler","INDEX_FORMAT","RenderState","Renderer","ShaderVertex","adapter_info","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","buffer_pool","buffer_pool_mut","builder","camera","create_default_render_graph","depth_texture","device","device","downcast","downcast","draw_graph","error","eventually","from","from","globals_bind_group","graph","graph_runner","initialize","initialize_headless","instance","instance","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","main_graph","main_pass","mask_phase","mask_pipeline","multisampling_texture","new","normal","position","queue","queue","recreate_surface","register_default_render_stages","render_commands","render_phase","render_target","request_device","resize","resource","settings","settings","shaders","stages","state","state","surface","surface","surface","tile_phase","tile_pipeline","tile_pipeline","tile_view_pattern","tile_view_pattern","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","wgpu_settings","Gone","InitializationResult","Initialized","InitializedRenderer","RendererBuilder","UninitializedRenderer","Uninizalized","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","default","downcast","downcast","downcast","downcast","from","from","from","from","initialize_renderer","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_option","new","renderer","renderer_settings","renderer_settings","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unwarp_renderer","upcast","upcast","upcast","upcast","wgpu_settings","wgpu_settings","with_renderer_settings","with_wgpu_settings","0","0","0","0","0","Camera","FLIP_Y","InvertedViewProjection","ModelViewProjection","OPENGL_TO_WGPU_MATRIX","Perspective","ViewProjection","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","calc_matrix","calc_matrix","calc_view_proj","clip_to_window","clip_to_window_transform","clip_to_window_vulkan","clone","clone_into","current_projection","downcast","downcast","downcast","downcast","downcast","downcast","downcast","fmt","fmt","fovy","from","from","from","from","from","height","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","invert","move_relative","move_to","ne","new","new","pitch","pitch","pitch_self","position","position","project","project","resize","resize","to_model_view_projection","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","view_region_bounding_box","view_region_bounding_box_ndc","width","window_to_world","window_to_world_at_ground","window_to_world_nalgebra","yaw","yaw","yaw_self","zfar","znear","NAME","input","node","MAIN_PASS","Device","Graph","RenderError","Surface","as_any","as_any_mut","borrow","borrow_mut","downcast","fmt","fmt","from","from","into","into_any","into_any_arc","into_any_rc","should_exit","to_string","try_from","try_into","type_id","upcast","0","0","0","Criteria","Eventually","HasChanged","Initialized","Uninitialized","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","has_changed","initialize","into","into_any","into_any_arc","into_any_rc","reinitialize","take","try_from","try_into","type_id","upcast","0","0","Buffer","Buffer","DoesNotExist","Edge","EdgeAlreadyExists","EdgeDoesNotExist","EdgeExistence","Edges","EmptyNode","Exists","GraphInputNode","Id","Index","InputSlotError","InputSlotError","InvalidInputNodeSlot","InvalidNode","InvalidOutputNodeSlot","InvalidSlot","InvalidSlot","MismatchedInputSlotType","MismatchedNodeSlots","MismatchedSlotType","MismatchedSlotType","MissingInput","MissingSubGraph","Name","Name","Node","NodeEdge","NodeId","NodeInputSlotAlreadyOccupied","NodeLabel","NodeRunError","NodeState","OutputSlotError","OutputSlotError","RenderContext","RenderGraph","RenderGraphContext","RenderGraphError","RunSubGraph","RunSubGraphError","RunSubGraphError","Sampler","Sampler","SlotEdge","SlotInfo","SlotInfos","SlotLabel","SlotType","SlotValue","SubGraphHasNoInputs","TextureView","TextureView","UnconnectedNodeInputSlot","UnconnectedNodeOutputSlot","WrongNodeType","as_any","as_any","as_any_mut","borrow","borrow_mut","command_encoder","context","current_id","device","downcast","dyn_eq","edge","edges","eq","equivalent","fmt","fmt","from","graph","graph","id","id","input_edges","input_node","input_slots","inputs","inputs","inputs","into","into_any","into_any_arc","into_any_rc","name","name","name","ne","node","node","node","node_names","node_slot","nodes","output_edges","output_slots","outputs","run","run_sub_graphs","slot_type","slots","sub_graphs","to_string","try_from","try_into","type_id","type_name","upcast","input_index","input_node","input_node","output_index","output_node","output_node","0","actual","expected","label","0","0","0","0","0","0","actual","expected","label","0","0","0","0","0","input_node","input_slot","input_slot","input_slot","node","node","node","occupied_by_node","output_node","output_slot","output_slot","0","0","actual","expected","graph_name","graph_name","label","slot_index","slot_index","slot_name","0","0","0","0","0","InputSlotError","InvalidSlot","InvalidSlot","MismatchedInputSlotType","MismatchedSlotType","MismatchedSlotType","MissingInput","MissingSubGraph","OutputSlotError","RenderGraphContext","RunSubGraph","RunSubGraphError","SubGraphHasNoInputs","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","eq","eq","eq","equivalent","equivalent","equivalent","finish","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_input","get_input_buffer","get_input_sampler","get_input_texture","graph","input_info","inputs","inputs","inputs","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","name","ne","ne","ne","new","node","output_info","outputs","run_sub_graph","run_sub_graphs","set_output","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","actual","expected","label","0","actual","expected","label","0","0","actual","expected","graph_name","graph_name","label","slot_index","slot_index","slot_name","DoesNotExist","Edge","EdgeExistence","Exists","NodeEdge","SlotEdge","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","downcast","downcast","dyn_eq","dyn_eq","eq","eq","equivalent","equivalent","fmt","from","from","get_input_node","get_output_node","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","input_index","input_node","input_node","output_index","output_node","output_node","GraphInputNode","INPUT_NODE_NAME","RenderGraph","add_node","add_node_edge","add_slot_edge","add_sub_graph","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","current_id","default","downcast","downcast","fmt","from","from","get_node","get_node_id","get_node_mut","get_node_state","get_node_state_mut","get_sub_graph","get_sub_graph_mut","has_edge","input","input_node","input_node","inputs","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","iter_node_inputs","iter_node_outputs","iter_nodes","iter_nodes_mut","iter_sub_graphs","iter_sub_graphs_mut","node_names","nodes","output","remove_node","remove_node_edge","remove_slot_edge","remove_sub_graph","run","set_input","sub_graphs","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","validate_edge","0","Edges","EmptyNode","Id","InputSlotError","Name","Node","NodeId","NodeLabel","NodeRunError","NodeState","OutputSlotError","RenderContext","RunSubGraphError","add_input_edge","add_output_edge","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","command_encoder","device","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast_mut","downcast_rc","downcast_ref","dyn_eq","dyn_eq","dyn_eq","dyn_hash","edges","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_hash","get_input_slot_edge","get_output_slot_edge","has_input_edge","has_output_edge","hash","id","id","id","input","input","input_edges","input_edges","input_slots","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","name","ne","ne","ne","new","new","node","node","node_mut","output","output","output_edges","output_edges","output_slots","partial_cmp","remove_input_edge","remove_output_edge","run","run","source","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_name","upcast","upcast","upcast","upcast","upcast","upcast","upcast","update","update","validate_input_slots","validate_output_slots","0","0","0","0","0","Buffer","Buffer","Index","Name","Sampler","Sampler","SlotInfo","SlotInfos","SlotLabel","SlotType","SlotValue","TextureView","TextureView","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_slot","get_slot_index","get_slot_mut","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_empty","iter","len","name","ne","new","slot_type","slot_type","slots","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","0","0","0","0","EmptyNodeOutputSlot","MismatchedInputSlotType","MissingInput","NodeRunError","RenderGraphRunner","RenderGraphRunnerError","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","downcast","downcast","fmt","fmt","from","from","from","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","run","run_graph","source","to_string","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","0","actual","expected","graph_name","label","slot_index","slot_index","slot_index","slot_name","slot_name","type_name","input","node","MAIN_PASS_DEPENDENCIES","MAIN_PASS_DRIVER","MainPassDriverNode","MainPassNode","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","downcast","downcast","from","from","graph","input","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","run","run","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","input","node","MAIN_PASS_DEPENDENCIES","MAIN_PASS_DRIVER","DrawMask","DrawMasks","DrawTile","DrawTiles","SetMaskPipeline","SetTilePipeline","SetViewBindGroup","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","downcast","downcast","downcast","downcast","downcast","from","from","from","from","from","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","render","render","render","render","render","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","RenderPhase","add","as_any","as_any_mut","borrow","borrow_mut","default","downcast","draw","from","into","into_any","into_any_arc","into_any_rc","items","sort","try_from","try_into","type_id","upcast","Draw","Failure","PhaseItem","RenderCommand","RenderCommandResult","SortKey","Success","as_any","as_any_mut","borrow","borrow_mut","downcast","draw","from","into","into_any","into_any_arc","into_any_rc","render","render_command_tuple_impl","sort_key","try_from","try_into","type_id","upcast","BackingBufferDescriptor","BackingBufferType","BufferDimensions","BufferPool","BufferedTextureHead","FEATURE_METADATA_SIZE","FeatureMetadata","FragmentState","Globals","Head","Headed","Headless","INDICES_SIZE","IndexEntry","Indices","LAYER_METADATA_SIZE","Metadata","Queue","RenderPipeline","RenderPipelineDescriptor","RingIndex","Surface","SurfaceTexture","Texture","TextureView","TextureView","TrackedRenderPass","VERTEX_SIZE","VertexBufferLayout","VertexState","Vertices","WindowHead","array_stride","attributes","bind_group","buffer","buffer_dimensions","buffer_feature_metadata","buffer_indices","buffer_layer_metadata","buffer_pool","buffer_vertices","buffers","coords","depth_stencil","describe_render_pipeline","entry_point","entry_point","feature_metadata","fragment","globals","head","height","index","indices","inner_size","label","layer_metadata","layout","linear_index","multisample","output_buffer","padded_bytes_per_row","pass","phantom_fm","phantom_i","phantom_m","phantom_q","phantom_v","pipeline","primitive","shader","size","size","source","source","step_mode","style_layer","surface","surface","surface_config","targets","texture","texture","texture","tracked_render_pass","tree_index","uniform_buffer","unpadded_bytes_per_row","usable_indices","vertex","vertices","view","width","write_buffer","0","0","0","texture","view","BackingBuffer","BackingBufferDescriptor","BackingBufferType","BufferPool","FEATURE_METADATA_SIZE","FeatureMetadata","INDICES_SIZE","IndexEntry","Indices","LAYER_METADATA_SIZE","Metadata","RingIndex","VERTEX_SIZE","Vertices","align","allocate_layer_geometry","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","back","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","buffer_feature_metadata","buffer_indices","buffer_layer_metadata","buffer_vertices","clear","clear","clone","clone_into","coords","downcast","downcast","downcast","downcast","downcast","downcast","feature_metadata","feature_metadata","feature_metadata_buffer_range","find_largest_gap","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_device","front","get_layers","get_layers_fallback","get_loaded_layers_at","get_tile_coords_fallback","has_tile","index","index","indices","indices","indices_buffer_range","indices_range","inner","inner_size","inner_size","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","iter","layer_metadata","layer_metadata_buffer_range","linear_index","make_room","metadata","new","new","new","new","phantom_fm","phantom_i","phantom_m","phantom_q","phantom_v","pop_front","push_back","style_layer","to_owned","tree_index","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","typ","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","update_feature_metadata","update_layer_metadata","usable_indices","vertices","vertices","vertices_buffer_range","Globals","as_any","as_any_mut","bind_group","borrow","borrow_mut","downcast","from","from_device","into","into_any","into_any_arc","into_any_rc","try_from","try_into","type_id","uniform_buffer","upcast","RenderPipeline","RenderPipelineDescriptor","as_any","as_any_mut","borrow","borrow_mut","depth_stencil","describe_render_pipeline","downcast","fragment","from","initialize","into","into_any","into_any_arc","into_any_rc","label","layout","multisample","primitive","try_from","try_into","type_id","upcast","vertex","FragmentState","VertexBufferLayout","VertexState","array_stride","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","attributes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffers","clone","clone","clone","clone_into","clone_into","clone_into","downcast","downcast","downcast","entry_point","entry_point","eq","fmt","fmt","fmt","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","ne","source","source","step_mode","targets","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","BufferDimensions","BufferedTextureHead","Head","Headed","Headless","Surface","WindowHead","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer_dimensions","configure","create_view","downcast","downcast","downcast","downcast","downcast","from","from","from","from","from","from_image","from_window","has_changed","head","head","head_mut","height","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","output_buffer","padded_bytes_per_row","reconfigure","recreate","recreate_surface","resize","resize_and_configure","size","size","surface","surface","surface_config","texture","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unpadded_bytes_per_row","upcast","upcast","upcast","upcast","upcast","width","0","0","SurfaceTexture","Texture","TextureView","TextureView","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","deref","downcast","downcast","fmt","from","from","from","from","has_changed","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","size","take_surface_texture","texture","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","view","0","texture","view","TrackedRenderPass","as_any","as_any_mut","borrow","borrow_mut","downcast","draw","draw_indexed","draw_indexed_indirect","draw_indirect","from","insert_debug_marker","into","into_any","into_any_arc","into_any_rc","new","pass","pop_debug_group","push_debug_group","set_bind_group","set_blend_constant","set_index_buffer","set_push_constants","set_render_pipeline","set_scissor_rect","set_stencil_reference","set_vertex_buffer","set_viewport","try_from","try_into","type_id","upcast","ADDRESS_MODE_CLAMP_TO_BORDER","ADDRESS_MODE_CLAMP_TO_ZERO","Astc","BROWSER_WEBGPU","BUFFER_BINDING_ARRAY","Backends","Bc1RgbaUnorm","Bc1RgbaUnormSrgb","Bc2RgbaUnorm","Bc2RgbaUnormSrgb","Bc3RgbaUnorm","Bc3RgbaUnormSrgb","Bc4RSnorm","Bc4RUnorm","Bc5RgSnorm","Bc5RgUnorm","Bc6hRgbSfloat","Bc6hRgbUfloat","Bc7RgbaUnorm","Bc7RgbaUnormSrgb","Bgra8Unorm","Bgra8UnormSrgb","CLEAR_TEXTURE","CONSERVATIVE_RASTERIZATION","DEPTH32FLOAT_STENCIL8","DEPTH_CLIP_CONTROL","DX11","DX12","Depth16Unorm","Depth24Plus","Depth24PlusStencil8","Depth32Float","Depth32FloatStencil8","EacR11Snorm","EacR11Unorm","EacRg11Snorm","EacRg11Unorm","Etc2Rgb8A1Unorm","Etc2Rgb8A1UnormSrgb","Etc2Rgb8Unorm","Etc2Rgb8UnormSrgb","Etc2Rgba8Unorm","Etc2Rgba8UnormSrgb","Features","GL","Headed","Headless","HighPerformance","INDIRECT_FIRST_INSTANCE","Limits","LowPower","MAPPABLE_PRIMARY_BUFFERS","METAL","MULTIVIEW","MULTI_DRAW_INDIRECT","MULTI_DRAW_INDIRECT_COUNT","Msaa","PARTIALLY_BOUND_BINDING_ARRAY","PIPELINE_STATISTICS_QUERY","POLYGON_MODE_LINE","POLYGON_MODE_POINT","PRIMARY","PUSH_CONSTANTS","PowerPreference","R16Float","R16Sint","R16Snorm","R16Uint","R16Unorm","R32Float","R32Sint","R32Uint","R8Sint","R8Snorm","R8Uint","R8Unorm","RendererSettings","Rg11b10Float","Rg16Float","Rg16Sint","Rg16Snorm","Rg16Uint","Rg16Unorm","Rg32Float","Rg32Sint","Rg32Uint","Rg8Sint","Rg8Snorm","Rg8Uint","Rg8Unorm","Rgb10a2Unorm","Rgb9e5Ufloat","Rgba16Float","Rgba16Sint","Rgba16Snorm","Rgba16Uint","Rgba16Unorm","Rgba32Float","Rgba32Sint","Rgba32Uint","Rgba8Sint","Rgba8Snorm","Rgba8Uint","Rgba8Unorm","Rgba8UnormSrgb","SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING","SECONDARY","SHADER_FLOAT16","SHADER_FLOAT64","SHADER_PRIMITIVE_INDEX","SPIRV_SHADER_PASSTHROUGH","STORAGE_RESOURCE_BINDING_ARRAY","SurfaceType","TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES","TEXTURE_BINDING_ARRAY","TEXTURE_COMPRESSION_ASTC_HDR","TEXTURE_COMPRESSION_ASTC_LDR","TEXTURE_COMPRESSION_BC","TEXTURE_COMPRESSION_ETC2","TEXTURE_FORMAT_16BIT_NORM","TIMESTAMP_QUERY","TextureFormat","UNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING","VERTEX_ATTRIBUTE_64BIT","VERTEX_WRITABLE_STORAGE","VULKAN","WRITE_TIMESTAMP_INSIDE_PASSES","WgpuSettings","all","all","all_native_mask","all_webgpu_mask","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","backends","bitand","bitand","bitand_assign","bitand_assign","bitor","bitor","bitor_assign","bitor_assign","bits","bits","bits","bits","bitxor","bitxor","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_limits","check_limits_with_fail_fn","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","complement","complement","constrained_limits","contains","contains","default","default","default","default","default","default","depth_texture_format","describe","device_label","difference","difference","disabled_features","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downlevel_defaults","downlevel_webgl2_defaults","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","empty","empty","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","extend","extend","features","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","get_hash","get_hash","get_hash","get_hash","get_hash","hash","hash","hash","hash","hash","insert","insert","intersection","intersection","intersects","intersects","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_active","is_all","is_all","is_empty","is_empty","limits","max_bind_groups","max_bindings_per_bind_group","max_buffer_size","max_compute_invocations_per_workgroup","max_compute_workgroup_size_x","max_compute_workgroup_size_y","max_compute_workgroup_size_z","max_compute_workgroup_storage_size","max_compute_workgroups_per_dimension","max_dynamic_storage_buffers_per_pipeline_layout","max_dynamic_uniform_buffers_per_pipeline_layout","max_inter_stage_shader_components","max_push_constant_size","max_sampled_textures_per_shader_stage","max_samplers_per_shader_stage","max_storage_buffer_binding_size","max_storage_buffers_per_shader_stage","max_storage_textures_per_shader_stage","max_texture_array_layers","max_texture_dimension_1d","max_texture_dimension_2d","max_texture_dimension_3d","max_uniform_buffer_binding_size","max_uniform_buffers_per_shader_stage","max_vertex_attributes","max_vertex_buffer_array_stride","max_vertex_buffers","min_storage_buffer_offset_alignment","min_uniform_buffer_offset_alignment","msaa","ne","ne","ne","ne","not","not","partial_cmp","partial_cmp","power_preference","record_trace","remove","remove","samples","set","set","sub","sub","sub_assign","sub_assign","symmetric_difference","symmetric_difference","texture_format","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","using_alignment","using_resolution","block","channel","Mat4x4f32","Shader","ShaderCamera","ShaderFeatureStyle","ShaderGlobals","ShaderLayerMetadata","ShaderTileMetadata","ShaderVertex","TileMaskShader","TileShader","Vec2f32","Vec3f32","Vec4f32","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","camera","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","color","default","default","describe_fragment","describe_fragment","describe_fragment","describe_vertex","describe_vertex","describe_vertex","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","draw_colors","fmt","format","format","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","is_valid_bit_pattern","new","new","new","new","new","normal","position","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transform","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","view_position","view_proj","z_index","zoom_factor","Cleanup","PhaseSort","Prepare","PrepareStage","Queue","Render","RenderStageLabel","as_any","as_any","as_any","as_any_mut","as_any_mut","as_dyn_eq","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","downcast","downcast","dyn_eq","dyn_hash","eq","equivalent","extract","extract_stage","fmt","from","from","get_hash","graph_runner_stage","hash","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","phase_sort_stage","queue_stage","register_default_render_stages","resource","resource_stage","run","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","upload","upload_stage","ExtractStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","GraphRunnerStage","as_any","as_any_mut","borrow","borrow_mut","downcast","from","graph","into","into_any","into_any_arc","into_any_rc","new","run","try_from","try_into","type_id","upcast","PhaseSortStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","QueueStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","ResourceStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","UploadStage","as_any","as_any_mut","borrow","borrow_mut","default","downcast","from","into","into_any","into_any_arc","into_any_rc","run","try_from","try_into","type_id","upcast","update_metadata","upload_tile_geometry","upload_tile_view_pattern","TilePipeline","as_any","as_any_mut","bind_globals","borrow","borrow_mut","debug_stencil","describe_render_pipeline","downcast","fragment_state","from","into","into_any","into_any_arc","into_any_rc","new","settings","try_from","try_into","type_id","upcast","update_stencil","vertex_state","wireframe","BackingBuffer","DEFAULT_TILE_VIEW_SIZE","TileInView","TileShape","TileViewPattern","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffer","buffer","buffer_range","clone","clone","clone_into","clone_into","coords","downcast","downcast","downcast","downcast","fallback","fmt","from","from","from","from","in_view","inner","inner_size","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","iter","new","new","new","phantom_q","shape","sort_key","stencil_reference_value","to_owned","to_owned","transform","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","update_pattern","upload_pattern","zoom_factor","BoxedStageLabel","MultiStage","NopStage","Schedule","Stage","StageLabel","add_stage","add_stage_after","add_stage_before","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","default","downcast","downcast","downcast","downcast","downcast_mut","downcast_rc","downcast_ref","eq","from","from","from","get_stage","get_stage_mut","hash","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","is","iter_stages","new","run","run","run","run","run_once","stage","stage_order","stages","stages","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","HeadedPipelineProcessor","as_any","as_any_mut","borrow","borrow_mut","context","downcast","from","into","into_any","into_any_arc","into_any_rc","layer_indexing_finished","layer_tesselation_finished","layer_unavailable","phantom_hc","phantom_t","populate_tile_store_stage","register_stages","request_stage","tile_finished","try_from","try_into","type_id","upcast","PopulateTileStore","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_rc","kernel","new","run","try_from","try_into","type_id","upcast","RequestStage","as_any","as_any_mut","borrow","borrow_mut","downcast","from","into","into_any","into_any_rc","kernel","new","request_tile","request_tiles_in_view","run","schedule","try_from","try_into","type_id","upcast","Aces2065","Aces2065","AcesCc","AcesCc","AcesCct","AcesCct","AcesCg","AcesCg","Alpha","Bt2020","Bt2020","Bt2100","Bt2100","CieLCh","CieLCh","CieLab","CieLab","CieXYZ","CieXYZ","CintTy","ColorInterop","ColorType","ComponentTy","DciP3","DciP3","DciXYZPrime","DciXYZPrime","DisplayP3","DisplayP3","EncodedBt2020","EncodedBt2020","EncodedBt2100HLG","EncodedBt2100HLG","EncodedBt2100PQ","EncodedBt2100PQ","EncodedDisplayP3","EncodedDisplayP3","EncodedRec709","EncodedRec709","EncodedSrgb","EncodedSrgb","GenericColor1","GenericColor1","GenericColor3","GenericColor3","Hsl","Hsl","Hsv","Hsv","ICtCpHLG","ICtCpHLG","ICtCpPQ","ICtCpPQ","LinearSrgb","LinearSrgb","Luma","Luma","Luminance","Luminance","NUM_COMPONENTS","Oklab","Oklab","Oklch","Oklch","PremultipliedAlpha","Rec709","Rec709","SPACE","Spaces","Style","YCbCr","YCbCr","YCxCz","YCxCz","YPbPr","YPbPr","YPrimeCbCr","YPrimeCbCr","YPrimePbPr","YPrimePbPr","Yuv","Yuv","a","a","alpha","alpha","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_dyn_eq","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_mut","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","c","c","cb","cb","center","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","cmp","color","color","cp","cp","cr","cr","ct","ct","cx","cz","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","downcast","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_eq","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","dyn_hash","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_cint","g","g","g","g","g","g","g","g","g","g","g","g","g","g","g","g","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","get_hash","h","h","h","h","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","hash","i","i","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_cint","l","l","l","l","l","l","l","layer","layers","metadata","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","num_components","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","pb","pb","pitch","pr","pr","r","r","r","r","r","r","r","r","r","r","r","r","r","r","r","r","s","s","source","sources","style","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","u","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","upcast","v","v","version","x","x","x","x","y","y","y","y","y","y","y","y","y","z","z","z","zoom","Background","BackgroundPaint","Fill","FillPaint","LayerPaint","Line","LinePaint","StyleLayer","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","background_color","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","deserialize","deserialize","downcast","downcast","downcast","downcast","downcast","fill_color","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","get_color","id","index","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","line_color","maxzoom","metadata","minzoom","paint","serialize","serialize","serialize","serialize","serialize","source","source_layer","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","typ","type_id","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","upcast","0","0","0","Raster","Source","TMS","TileAddressingScheme","TileJSONUrl","TileUrl","Vector","VectorSource","XYZ","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","attribution","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","bounds","clone","clone","clone","clone_into","clone_into","clone_into","default","deserialize","deserialize","deserialize","downcast","downcast","downcast","fmt","fmt","fmt","from","from","from","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","maxzoom","minzoom","scheme","serialize","serialize","serialize","tiles","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","upcast","upcast","upcast","0","0","Style","as_any","as_any_mut","borrow","borrow_mut","center","clone","clone_into","default","deserialize","downcast","fmt","from","into","into_any","into_any_arc","into_any_rc","layers","metadata","name","pitch","serialize","sources","to_owned","try_from","try_into","type_id","upcast","version","zoom","Align","DEFAULT_TOLERANCE","IndexDataType","OverAlignedVertexBuffer","Tessellated","VertexConstructor","align_indices","align_vertices","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","buffer","clone","clone_into","downcast","downcast","empty","from","from","from","from_slices","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new_vertex","new_vertex","tessellate","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","usable_indices","zero_tessellator","GeoResult","ZeroTessellator","as_any","as_any_mut","borrow","borrow_mut","buffer","current_index","default","downcast","end","feature_end","feature_indices","from","into","into_any","into_any_rc","is_point","linestring_begin","linestring_end","multilinestring_begin","multilinestring_end","multipoint_begin","multipoint_end","multipolygon_begin","multipolygon_end","path_builder","path_open","point_begin","point_end","polygon_begin","polygon_end","tessellate_fill","tessellate_strokes","try_from","try_into","type_id","upcast","update_feature_indices","xy","Feature","GeomType","Layer","Linestring","Point","Polygon","Unknown","Value","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_dyn_eq","bool_value","bool_value","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clear","clear","clear","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","default","default","default","default","double_value","double_value","downcast","downcast","downcast","downcast","dyn_eq","dyn_hash","encoded_len","encoded_len","encoded_len","eq","eq","eq","eq","equivalent","extent","extent","features","float_value","float_value","fmt","fmt","fmt","fmt","from","from","from","from","from_i32","geometry","get_hash","hash","id","id","int_value","int_value","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_valid","keys","name","ne","ne","ne","partial_cmp","process","process_geom","set_type","sint_value","sint_value","string_value","string_value","tags","to_geo","to_mvt","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type","type","type_id","type_id","type_id","type_id","uint_value","uint_value","upcast","upcast","upcast","upcast","values","version","ChangeObserver","Epsilon","FPSMeter","MinMaxBoundingBox","SignificantlyDifferent","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","default","deref","deref_mut","did_change","downcast","downcast","fps_meter","frame_count","from","from","grid","initialized","inner","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","is_initialized","label","math","max_x","max_y","min_x","min_y","ne","new","new","next_report","reference_value","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update","update_reference","FPSMeter","as_any","as_any_mut","borrow","borrow_mut","downcast","frame_count","from","into","into_any","into_any_arc","into_any_rc","new","next_report","try_from","try_into","type_id","upcast","update_and_print","google_mercator","tile_coordinates_bavaria","DynEq","DynHash","as_any","as_dyn_eq","dyn_eq","dyn_hash","0","Aabb2","Aabb3","FloatOrd","Plane","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bounds_from_points","clone","clone_into","cmp","d","div_away","div_ceil","div_floor","downcast","downcast","downcast","downcast","dyn_eq","eq","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from_point_normal","from_points","intersection_distance_ray","intersection_points_aabb3","intersection_polygon_aabb3","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","max","max","max","min","min","min","n","new","new","new","partial_cmp","to_corners","to_corners","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","upcast","upcast","upcast","upcast","HeadedMapWindow","MapWindow","MapWindow","MapWindowConfig","RawWindow","WindowSize","as_any","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","create","downcast","dyn_eq","eq","equivalent","from","height","height","id","into","into_any","into_any_arc","into_any_rc","ne","new","raw","request_redraw","size","to_owned","try_from","try_into","type_id","upcast","width","width","ViewState","World","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","camera","camera","camera_mut","create_view_region","did_camera_change","did_zoom_change","downcast","downcast","from","from","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","new","new_at","perspective","resize","tile_repository","try_from","try_from","try_into","try_into","type_id","type_id","upcast","upcast","update_references","update_zoom","view_projection","view_state","view_state","view_state_mut","visible_level","zoom","zoom"],"q":["maplibre","","","","","","","","","","","","","","","","","","","","","maplibre::benchmarking","","maplibre::benchmarking::tessellation","","","","","","","","maplibre::benchmarking::tessellation::zero_tessellator","","","","","","","maplibre::context","","","","","","","","","","","","","","","","","","","maplibre::coords","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::environment","","","","","maplibre::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::error::Error","","","","maplibre::event_loop","","","","","","","","","","maplibre::io","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::apc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::apc::Input","maplibre::io::apc::Message","","","maplibre::io::geometry_index","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::geometry_index::ExactGeometry","","maplibre::io::geometry_index::TileIndex","","maplibre::io::pipeline","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::scheduler","","","","","","","","","","","","","","","","","","maplibre::io::source_client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::tile_pipelines","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::tile_repository","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::io::tile_repository::StoredLayer","","","","","","maplibre::io::transferables","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::kernel","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::map","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::map::MapContextState","","maplibre::platform","","","","","","maplibre::platform::http_client","","maplibre::platform::noweb","","","","maplibre::platform::noweb::http_client","","","","","","","","","","","","","","","","","","","","","maplibre::platform::noweb::scheduler","","","","","","","","","","","","","","","","","maplibre::platform::scheduler","maplibre::render","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::builder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::builder::InitializationResult","","maplibre::render::camera","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::draw_graph","","","maplibre::render::draw_graph::node","maplibre::render::error","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::error::RenderError","","","maplibre::render::eventually","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::eventually::Eventually","maplibre::render::graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::Edge","","","","","","maplibre::render::graph::InputSlotError","","","","maplibre::render::graph::NodeLabel","","maplibre::render::graph::NodeRunError","","","maplibre::render::graph::OutputSlotError","","","","maplibre::render::graph::RenderGraphError","","","","","","","","","","","","","","","","maplibre::render::graph::RunSubGraphError","","","","","","","","","","maplibre::render::graph::SlotLabel","","maplibre::render::graph::SlotValue","","","maplibre::render::graph::context","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::context::InputSlotError","","","","maplibre::render::graph::context::OutputSlotError","","","","maplibre::render::graph::context::RunSubGraphError","","","","","","","","","","maplibre::render::graph::edge","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::edge::Edge","","","","","","maplibre::render::graph::graph","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node::NodeLabel","","maplibre::render::graph::node::NodeRunError","","","maplibre::render::graph::node_slot","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph::node_slot::SlotLabel","","maplibre::render::graph::node_slot::SlotValue","","","maplibre::render::graph_runner","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::graph_runner::RenderGraphRunnerError","","","","","","","","","","","maplibre::render::main_graph","","maplibre::render::main_graph::node","","maplibre::render::main_pass","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::main_pass::graph","","maplibre::render::main_pass::graph::node","","maplibre::render::render_commands","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::render_phase","","","","","","","","","","","","","","","","","","","","maplibre::render::render_phase::draw","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::Head","","maplibre::render::resource::TextureView","","","maplibre::render::resource::buffer_pool","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::globals","","","","","","","","","","","","","","","","","","maplibre::render::resource::pipeline","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::shader","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::surface","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::surface::Head","","maplibre::render::resource::texture","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::resource::texture::TextureView","","","maplibre::render::resource::tracked_render_pass","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::settings::TextureFormat","","maplibre::render::shaders","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::stages","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::stages::extract_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::graph_runner_stage","","","","","","","","","","","","","","","","","","maplibre::render::stages::phase_sort_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::queue_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::resource_stage","","","","","","","","","","","","","","","","","maplibre::render::stages::upload_stage","","","","","","","","","","","","","","","","","","","","maplibre::render::tile_pipeline","","","","","","","","","","","","","","","","","","","","","","","","maplibre::render::tile_view_pattern","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::schedule","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::stages","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::stages::populate_tile_store_stage","","","","","","","","","","","","","","","","","maplibre::stages::request_stage","","","","","","","","","","","","","","","","","","","","maplibre::style","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::layer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::layer::LayerPaint","","","maplibre::style::source","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::style::source::Source","","maplibre::style::style","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::tessellation","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::tessellation::zero_tessellator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::tile","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::util","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::util::fps_meter","","","","","","","","","","","","","","","","","","","maplibre::util::grid","","maplibre::util::label","","","","","","maplibre::util::math","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::window","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","maplibre::world","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Collection of utilities used to perform certain …","","Provides utilities related to coordinates.","Macro to define a new label trait","","Errors which can happen in various parts of the library.","","Handles IO related processing as well as multithreading.","","","","Handles platform specific code. Depending on the …","This module implements the rendering algorithm of …","","Stages for requesting and preparing data","Vector tile format styling.","Tessellation for lines and polygons is implemented here.","Nested message and enum types in Tile.","Utils which are used internally","Utilities for the window system.","","Re-export of the io module.","Re-export of the tessellation module.","Vertex buffers index data type.","Vertex buffer which includes additional padding to fulfill …","An element that can be tessellated into vertex buffers.","Constructor for Fill and Stroke vertices.","","Returns a vertex buffer which represents some object like …","","Tessellator implementation.","Build tessellations with vectors.","","","","","","","Stores the context of the map.","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","An aligned world tile coordinate aligns a world coordinate …","","","","Within each tile there is a separate coordinate system. …","","","Represents the position of a node within a quad tree. The …","","Every tile has tile coordinates. These tile coordinates …","Defines a bounding box on a tiled map with a ZoomLevel and …","Actual coordinates within the 3D world. The z value of the …","Every tile has tile coordinates. Every tile coordinate can …","","Zoom is an exponential scale that defines the zoom of the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Adopted from tilebelt","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Adopted from tilebelt","","","","Get the tile which is one zoom level lower and contains …","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the tile coords according to an addressing scheme. …","Transforms the tile coordinates as defined by the tile …","","","","","","","","","","","The maximum amount of tiles this view region contains","","","","","","","","","","","","","","","Padding around this view region","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","At which zoom level does this region exist","","The environment defines which types must be injected into …","","","","","Enumeration of errors which can happen during the …","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Layers are described in section 4.1 of the specification","A request for a tile at the given coordinates and in the …","","","","","","","","","","","Although this is an “optional” field it is required by …","The actual features in this tile.","","Returns the argument unchanged.","Geometry index.","Calls U::from(self).","","","","Dictionary encoding for keys","","","","Scheduling.","","HTTP client.","","Tile cache.","","","","","","","Dictionary encoding for values","Any compliant implementation must first read the version …","Type definitions for asynchronous procedure calls. These …","APCs define an interface for performing work …","","Allows sending messages from workers to back to the caller.","","Inputs for an AsyncProcedure","The result of the tessellation of a tile. This is sent as …","","","","","","","","","","","","","","","","","","","","","","","","Call an AsyncProcedure using some Input. This function is …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","Try to receive a message non-blocking.","","","Send a message back to the caller.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Contains either a polygon or line vector.","A quad tree storing the currently loaded tiles.","A processor able to create geometries using …","An indexed geometry contains an exact vector geometry, …","","","","","Index of tiles which can be of two types: spatial or …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Begin of dataset processing.","End of dataset processing.","","","","","","","","","Begin of feature processing.","End of feature processing.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Begin of feature geometry processing.","End of feature geometry processing.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Begin of feature property processing.","End of feature property processing.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A pipeline which consists of multiple steps. Steps are …","","","Context which is available to each step within a …","Marks the end of a DataPipeline","Processes events which happen during the pipeline execution","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Async/await scheduler. Can schedule a task from a future …","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","A closure that returns a HTTP client.","On the web platform futures are not thread-safe (i.e. not …","Gives access to the HTTP client which can be of multiple …","Defines the different types of HTTP clients such as basic …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","A layer which is stored for future use.","Stores multiple StoredLayers.","","","Stores and provides access to a quad tree of cached tiles …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a new tile.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Checks if a layer has been fetched.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Returns the list of tessellated layers at the given world …","","","Checks if a layer has been fetched.","","","","Inserts a tessellated layer into the quad tree at its …","","","","","","","","","","","","","","","","","","","","","","","","","","","Holds for each feature the count of indices.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Holds for each feature the count of indices.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Holds references to core constructs of maplibre. Based on …","A convenient builder for Kernels.","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Minimum WebGPU buffer size","Http client for non-web targets.","Module which is used target platform is not web related.","","Scheduler for non-web targets.","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","cache_path: Under which path should we cache requests.","","","","","","Multi-threading with Tokio.","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","Multi-threading with Tokio.","","","","","","","","","","","","","","","","","Main camera","","","","","","","Labels for the “draw” graph","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Executes a RenderGraph","Initializes the renderer by retrieving and preparing the …","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","The main render pass for this application.","","","","","","","","","","","Specifies the instructions which are going to be sent to …","Describes the concept of a RenderPhase and PhaseItem","","Requests a device","","Utilities which holds references to GPU-owned. Usually a …","Settings for the renderer","","","Rendering specific Stages","","","","","","","Utility for declaring pipelines.","","Utility for generating a tile pattern which can be used …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Initializes the whole rendering pipeline for the given …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Transforms coordinates in clip space to window coordinates.","A transform which can be used to transfrom between clip …","Alternative implementation to clip_to_window. Transforms …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calculates an Aabb2 bounding box which contains at least …","An alternative implementation for view_bounding_box.","","Order of transformations reversed: …","Gets the world coordinates for the specified window …","Alternative implementation to window_to_world","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","Wrapper around a resource which can be initialized or …","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","A GPU-accessible [Buffer].","A GPU-accessible [Buffer].","","An edge, which connects two Nodes in a RenderGraph.","","","","A collection of input and output Edges for a Node.","A Node without any inputs, outputs and subgraphs, which …","","A Node which acts as an entry point for a RenderGraph with …","","","","","","","","","","","","","","","","","","A render node that can be added to a RenderGraph.","An edge describing to ordering of both nodes (output_node …","A Node identifier. It automatically generates its own …","","A NodeLabel is used to reference a NodeState by either its …","","The internal representation of a Node, with all data …","","","The context with all information required to interact with …","The render graph configures the modular, parallel and …","The context with all graph information required to run a …","","A command that signals the graph runner to run the sub …","","","A texture [Sampler] defines how a pipeline will sample …","A texture [Sampler] defines how a pipeline will sample …","An edge describing to ordering of both nodes (output_node …","The internal representation of a slot, which specifies its …","A collection of input or output SlotInfos for a NodeState.","A SlotLabel is used to reference a slot by either its name …","Describes the render resources created (output) or used …","A value passed between render Nodes. Corresponds to the …","","A TextureView describes a texture used in a pipeline.","A TextureView describes a texture used in a pipeline.","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Runs the graph node logic, issues draw calls, updates the …","","","","","","","","","The name of the type that implements Node.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The context with all graph information required to run a …","A command that signals the graph runner to run the sub …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Finishes the context for this Node by returning the sub …","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Retrieves the input slot value referenced by the label.","Retrieves the input slot value referenced by the label as …","Retrieves the input slot value referenced by the label as …","Retrieves the input slot value referenced by the label as …","","Returns the SlotInfos of the inputs.","Returns the input slot values for the node.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Creates a new render graph context for the node.","","Returns the SlotInfos of the outputs.","","Queues up a sub graph for execution after the node has …","","Sets the output slot value referenced by the label.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An edge, which connects two Nodes in a RenderGraph.","","","An edge describing to ordering of both nodes (output_node …","An edge describing to ordering of both nodes (output_node …","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the id of the input_node.","Returns the id of the output_node.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","A Node which acts as an entry point for a RenderGraph with …","The name of the GraphInputNode of this graph. Used to …","The render graph configures the modular, parallel and …","Adds the node with the name to the graph. If the name is …","Adds the Edge::NodeEdge to the graph. This guarantees that …","Adds the Edge::SlotEdge to the graph. This guarantees that …","Adds the sub_graph with the name to the graph. If the name …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Retrieves the Node referenced by the label.","Retrieves the NodeId referenced by the label.","Retrieves the Node referenced by the label mutably.","Retrieves the NodeState referenced by the label.","Retrieves the NodeState referenced by the label mutably.","Retrieves the sub graph corresponding to the name.","Retrieves the sub graph corresponding to the name mutably.","Checks whether the edge already exists in the graph.","","Returns the NodeState of the input node of this graph..","","","Calls U::from(self).","Calls U::from(self).","","","","","","","Returns an iterator over a tuple of the input edges and …","Returns an iterator over a tuple of the output edges and …","Returns an iterator over the NodeStates.","Returns an iterator over the NodeStates, that allows …","Returns an iterator over the sub graphs.","Returns an iterator over the sub graphs, that allows …","","","","Removes the node with the name from the graph. If the name …","Removes the Edge::NodeEdge from the graph. If either node …","Removes the Edge::SlotEdge from the graph. If any nodes or …","Removes the sub_graph with the name from the graph. If the …","","Creates an GraphInputNode with the specified slots if not …","","","","","","","","","","Updates all nodes and sub graphs of the render graph. …","Verifies that the edge existence is as expected and checks …","","A collection of input and output Edges for a Node.","A Node without any inputs, outputs and subgraphs, which …","","","","A render node that can be added to a RenderGraph.","A Node identifier. It automatically generates its own …","A NodeLabel is used to reference a NodeState by either its …","","The internal representation of a Node, with all data …","","The context with all information required to interact with …","","Adds an edge to the input_edges if it does not already …","Adds an edge to the output_edges if it does not already …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns a boxed object from a boxed trait object if the …","","","","","","","Returns a mutable reference to the object within the trait …","Returns an Rc-ed object from an Rc-ed trait object if the …","Returns a reference to the object within the trait object …","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Searches the input_edges for a Edge::SlotEdge, which …","Searches the output_edges for a Edge::SlotEdge, which …","Checks whether the input edge already exists.","Checks whether the output edge already exists.","","Returns this node’s id.","","","Specifies the required input slots for this node. They …","Specifies the required input slots for this node. They …","Returns all “input edges” (edges going “in”) for …","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns true if the trait object wraps an object of type …","","","","","Creates an NodeState without edges, but the input_slots …","","Retrieves the Node.","","Retrieves the Node mutably.","Specifies the produced output slots for this node. They …","Specifies the produced output slots for this node. They …","Returns all “output edges” (edges going “out”) for …","","","","Removes an edge from the input_edges if it exists.","Removes an edge from the output_edges if it exists.","Runs the graph node logic, issues draw calls, updates the …","","","","","","","","","","","","","","","","","","","","","","","","","","","The name of the type that implements Node.","","","","","","","","Updates internal node state using the current RenderState …","Updates internal node state using the current RenderState …","Validates that each input slot corresponds to an input …","Validates that each output slot corresponds to an output …","","","","","","A GPU-accessible [Buffer].","A GPU-accessible [Buffer].","","","A texture [Sampler] defines how a pipeline will sample …","A texture [Sampler] defines how a pipeline will sample …","The internal representation of a slot, which specifies its …","A collection of input or output SlotInfos for a NodeState.","A SlotLabel is used to reference a slot by either its name …","Describes the render resources created (output) or used …","A value passed between render Nodes. Corresponds to the …","A TextureView describes a texture used in a pipeline.","A TextureView describes a texture used in a pipeline.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Retrieves the SlotInfo for the provided label.","Retrieves the index (inside input or output slots) of the …","Retrieves the SlotInfo for the provided label mutably.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","Returns true if there are no slots.","Returns an iterator over the slot infos.","Returns the count of slots.","","","","Returns the SlotType of this value.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A resource to collect and sort draw requests for specific …","Adds a PhaseItem to this render phase.","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","Sorts all of its PhaseItems.","","","","","A draw function which is used to draw a specific PhaseItem.","","An item which will be drawn to the screen. A phase item …","RenderCommand is a trait that runs an ECS query and …","","The type used for ordering the items. The smallest values …","","","","","","","Draws the PhaseItem by issuing draw calls via the …","Returns the argument unchanged.","Calls U::from(self).","","","","Renders the PhaseItem by issuing draw calls via the …","","Determines the order in which the items are drawn during …","","","","","","","","This is inspired by the memory pool in Vulkan documented …","","","","Describes the fragment process in a render pipeline.","","","","","","","","","","","","","","","The value is a wgpu SurfaceTexture, but dereferences to a …","","Describes a TextureView.","The value is an actual wgpu TextureView.","A [RenderPass], which tracks the current pipeline state to …","","Describes how the vertex buffer is interpreted.","","","","The stride, in bytes, between elements of this buffer.","The list of attributes which comprise a single vertex.","","The buffer which is used","","","","","A ring-buffer like pool of buffers.","","The format of any vertex buffers used with this pipeline.","","The effect of draw calls on the depth and stencil aspects …","","The name of the entry point in the compiled shader. There …","The name of the entry point in the compiled shader. There …","","The compiled fragment stage, its entry point, and the …","A bind group which binds a buffer with global data like …","","","","","The size of buffer","Debug label of the pipeline. This will show up in graphics …","","The layout of bind groups for this pipeline.","","The multi-sampling properties of the pipeline.","","","","","","","","","Utility for creating RenderPipelines","The properties of the pipeline at the primitive assembly …","Utilities for creating shader states.","","","The shader source","The shader source","How often this vertex buffer is “stepped” forward.","","Utilities for handling surfaces which can be either …","","","The color state of the render targets.","Utility for a texture view which can either be created by …","","","A render pass which allows tracking, for example using a …","","","","","The compiled vertex stage, its entry point, and the input …","","","","","","","","","","","","","This is inspired by the memory pool in Vulkan documented …","","","","","","","","","","","The VertexBuffers can contain padding elements. Not …","Allocates","","","","","","","","","","","","","","","","","","","","","","","","","","The buffer which is used","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","The internal structure which is used for storage","The size of buffer","The size of the inner buffer","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","The effect of draw calls on the depth and stencil aspects …","","","The compiled fragment stage, its entry point, and the …","Returns the argument unchanged.","","Calls U::from(self).","","","","Debug label of the pipeline. This will show up in graphics …","The layout of bind groups for this pipeline.","The multi-sampling properties of the pipeline.","The properties of the pipeline at the primitive assembly …","","","","","The compiled vertex stage, its entry point, and the input …","Describes the fragment process in a render pipeline.","Describes how the vertex buffer is interpreted.","","The stride, in bytes, between elements of this buffer.","","","","","","","The list of attributes which comprise a single vertex.","","","","","","","The format of any vertex buffers used with this pipeline.","","","","","","","","","","The name of the entry point in the compiled shader. There …","The name of the entry point in the compiled shader. There …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","The shader source","The shader source","How often this vertex buffer is “stepped” forward.","The color state of the render targets.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The value is a wgpu SurfaceTexture, but dereferences to a …","","Describes a TextureView.","The value is an actual wgpu TextureView.","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns the SurfaceTexture of the texture view if it is of …","","","","","","","","","","","","","","A [RenderPass], which tracks the current pipeline state to …","","","","","","Draws primitives from the active vertex buffer(s).","Draws indexed primitives using the active index buffer and …","Draws indexed primitives using the active index buffer and …","Draws primitives from the active vertex buffer(s) based on …","Returns the argument unchanged.","Insert a single debug marker.","Calls U::from(self).","","","","Tracks the supplied render pass.","","End the current debug group.","Start a new debug group.","Sets the active [BindGroup] for a given bind group index. …","","Sets the active index buffer.","Set push constant data.","Sets the active [RenderPipeline].","Sets the scissor region.","Sets the stencil reference.","Assign a vertex buffer to a slot.","Set the rendering viewport.","","","","","Allows the use of AddressMode::ClampToBorder with a border …","Allows the use of AddressMode::ClampToBorder with a border …","block compressed texture. 16 bytes per block.","Supported when targeting the web through webassembly","Allows the user to create arrays of buffers in shaders:","Represents the backends that wgpu will use.","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","Blue, green, red, and alpha channels. 8 bit integer per …","Blue, green, red, and alpha channels. 8 bit integer per …","Enables clear to zero for textures.","Allows the user to set a …","Allows for explicit creation of textures of format …","By default, polygon depth is clipped to 0-1 range …","Supported on Windows 7+","Supported on Windows 10","Stencil format with 8 bit integer stencil. Special depth …","Special depth format with at least 24 bit integer depth.","Special depth/stencil format with at least 24 bit integer …","Special depth format with 32 bit floating point depth.","Special depth/stencil format with 32 bit floating point …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 8 bytes per block (4 …","4x4 block compressed texture. 16 bytes per block (8 …","4x4 block compressed texture. 16 bytes per block (8 …","Features that are not guaranteed to be supported.","Currently unsupported","","","Adapter that has the highest performance. This is often a …","Allows non-zero value for the “first instance” in …","Represents the sets of limits an adapter/device supports.","Adapter that uses the least possible power. This is often …","Webgpu only allows the MAP_READ and MAP_WRITE buffer usage …","Supported on macOS/iOS","Enables multiview render passes and builtin(view_index) in …","Allows the user to call [RenderPass::multi_draw_indirect] …","Allows the user to call […","Configuration resource for Multi-Sample Anti-Aliasing.","Allows the user to create bind groups continaing arrays …","Enables use of Pipeline Statistics Queries. These queries …","Allows the user to set PolygonMode::Line in …","Allows the user to set PolygonMode::Point in …","All the apis that wgpu offers first tier of support for.","Allows the use of push constants: small, fast bits of …","Power Preference when choosing a physical adapter.","Red channel only. 16 bit float per channel. Float in …","Red channel only. 16 bit integer per channel. Signed in …","Red channel only. 16 bit integer per channel. [0, 65535] …","Red channel only. 16 bit integer per channel. Unsigned in …","Red channel only. 16 bit integer per channel. [0, 65535] …","Red channel only. 32 bit float per channel. Float in …","Red channel only. 32 bit integer per channel. Signed in …","Red channel only. 32 bit integer per channel. Unsigned in …","Red channel only. 8 bit integer per channel. Signed in …","Red channel only. 8 bit integer per channel. [-127, 127] …","Red channel only. 8 bit integer per channel. Unsigned in …","Red channel only. 8 bit integer per channel. [0, 255] …","","Red, green, and blue channels. 11 bit float with no sign …","Red and green channels. 16 bit float per channel. Float in …","Red and green channels. 16 bit integer per channel. Signed …","Red and green channels. 16 bit integer per channel. [0, …","Red and green channels. 16 bit integer per channel. …","Red and green channels. 16 bit integer per channel. [0, …","Red and green channels. 32 bit float per channel. Float in …","Red and green channels. 32 bit integer per channel. Signed …","Red and green channels. 32 bit integer per channel. …","Red and green channels. 8 bit integer per channel. Signed …","Red and green channels. 8 bit integer per channel. [-127, …","Red and green channels. 8 bit integer per channel. …","Red and green channels. 8 bit integer per channel. [0, 255]…","Red, green, blue, and alpha channels. 10 bit integer for …","Packed unsigned float with 9 bits mantisa for each RGB …","Red, green, blue, and alpha channels. 16 bit float per …","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha. 16 bit integer per channel. […","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha channels. 16 bit integer per …","Red, green, blue, and alpha channels. 32 bit float per …","Red, green, blue, and alpha channels. 32 bit integer per …","Red, green, blue, and alpha channels. 32 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Red, green, blue, and alpha channels. 8 bit integer per …","Allows shaders to index sampled texture and storage buffer …","All the apis that wgpu offers second tier of support for. …","Allows shaders to acquire the FP16 ability","Enables 64-bit floating point types in SPIR-V shaders.","Enables builtin(primitive_index) in fragment shaders.","Enables creating shader modules from SPIR-V binary data …","Allows the user to create uniform arrays of storage …","","Enables device specific texture format features.","Allows the user to create uniform arrays of textures in …","Enables ASTC HDR family of compressed textures.","Enables ASTC family of compressed textures. ASTC textures …","Enables BCn family of compressed textures. All BCn …","Enables ETC family of compressed textures. All ETC …","Enables normalized 16-bit texture formats.","Enables use of Timestamp Queries. These queries tell the …","Underlying texture data format.","Allows shaders to index uniform buffer and storage texture …","Enables using 64-bit types for vertex attributes.","Enables bindings of writable storage buffers and textures …","Supported on Windows, Linux/Android, and macOS/iOS via …","Allows for timestamp queries inside renderpasses. Metal …","Provides configuration for renderer initialization. Use …","Returns the set containing all flags.","Returns the set containing all flags.","Mask of all features that are only available when …","Mask of all features which are part of the upstream WebGPU …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","Compares every limits within self is within the limits …","Compares every limits within self is within the limits …","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","The constraints on limits allowed regardless of what the …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","","","","","","","","Get useful information about the texture format.","","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","The features to ensure are disabled regardless of what the …","","","","","","","","","","These default limits are guarenteed to be compatible with …","These default limits are guarenteed to be compatible with …","","","","","","","","","","","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","The features to ensure are enabled regardless of what the …","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","","","","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","The imposed limits.","Amount of bind groups that can be attached to a pipeline …","Maximum binding index allowed in create_bind_group_layout. …","A limit above which buffer allocations are guaranteed to …","Maximum value of the product of the workgroup_size …","The maximum value of the workgroup_size X dimension for a …","The maximum value of the workgroup_size Y dimension for a …","The maximum value of the workgroup_size Z dimension for a …","Maximum number of bytes used for workgroup memory in a …","The maximum value for each dimension of a …","Amount of storage buffer bindings that can be dynamic in a …","Amount of uniform buffer bindings that can be dynamic in a …","Maximum allowed number of components (scalars) of input or …","Amount of storage available for push constants in bytes. …","Amount of sampled textures visible in a single shader …","Amount of samplers visible in a single shader stage. …","Maximum size in bytes of a binding to a storage buffer. …","Amount of storage buffers visible in a single shader …","Amount of storage textures visible in a single shader …","Maximum allowed value for the size.depth_or_array_layers …","Maximum allowed value for the size.width of a texture …","Maximum allowed value for the size.width and size.height …","Maximum allowed value for the size.width, size.height, and …","Maximum size in bytes of a binding to a uniform buffer. …","Amount of uniform buffers visible in a single shader …","Maximum length of VertexBufferLayout::attributes, summed …","Maximum value for VertexBufferLayout::array_stride when …","Maximum length of VertexState::buffers when creating a …","Required BufferBindingType::Storage alignment for …","Required BufferBindingType::Uniform alignment for …","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","Whether a trace is recorded an stored in the current …","Removes the specified flags in-place.","Removes the specified flags in-place.","The number of samples to run for Multi-Sample …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","","","","","","","","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","Modify the current limits to use the buffer alignment …","Modify the current limits to use the resolution limits of …","compressed block dimensions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Cleanup render resources here.","Sort the RenderPhases here.","Prepare render resources from the extracted data for the …","","Queues PhaseItems that depend on Prepare data and queue up …","Actual rendering happens here. In most cases, only the …","The labels of the default App rendering stages.","","","","","","","","","","","","","","","","","","","","","Extracts data from the current state.","","Returns the argument unchanged.","Returns the argument unchanged.","","Executes the RenderGraph current render graph.","","Calls U::from(self).","Calls U::from(self).","","","","","","","Sorts items of the RenderPhases.","Queues PhaseItems for rendering.","","","Prepares GPU-owned resources by initializing them if they …","","","","","","","","","","","","Uploads data to the GPU which is needed for rendering.","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Updates the RenderGraph with all of its nodes and then …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","The tile mask pattern assigns each tile a value which can …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","The internal structure which is used for storage","The size of the inner buffer","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A container of Stages set to be run in a linear order.","","Defines a set of strongly-typed labels for a class of …","Adds the given stage at the last position of the schedule.","Adds the given stage immediately after the target stage.","Adds the given stage immediately before the target stage.","","","","","","","","","","","","","","","","Returns a boxed object from a boxed trait object if the …","","Returns a mutable reference to the object within the trait …","Returns an Rc-ed object from an Rc-ed trait object if the …","Returns a reference to the object within the trait object …","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns a shared reference to the stage identified by label…","Returns a unique, mutable reference to the stage …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns true if the trait object wraps an object of type …","Iterates over all of schedule’s stages and their labels, …","","Runs the stage; this happens once per update. Implementors …","","","","Executes each Stage contained in the schedule, one at a …","Fetches the Stage of type T marked with label, then …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","Receives data from async threads and populates the …","Register stages required for requesting and preparing new …","Requests tiles which are currently in view","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","Request tiles which are currently in view.","","","","","","","A color in the ACES 2065-1 color space.","A color in the ACES 2065-1 color space.","A color in the ACEScc color space.","A color in the ACEScc color space.","A color in the ACEScct color space.","A color in the ACEScct color space.","A color in the ACEScg color space.","A color in the ACEScg color space.","A color with an alpha component.","A color in the BT.2020 color space.","A color in the BT.2020 color space.","A color in the BT.2100 color space.","A color in the BT.2100 color space.","A color in the CIE L*C*h° color space.","A color in the CIE L*C*h° color space.","A color in the CIE L*a*b* color space.","A color in the CIE L*a*b* color space.","A color in the CIE XYZ color space.","A color in the CIE XYZ color space.","","A trait that should be implemented by provider crates on …","A trait used to simpify the interface of the Alpha and …","","A color in the DCI-P3 (aka P3 DCI and P3 D60) color space.","A color in the DCI-P3 (aka P3 DCI and P3 D60) color space.","A color in the X’Y’Z’ color space, a DCI …","A color in the X’Y’Z’ color space, a DCI …","A color in the Display P3 (aka P3 D65) color space.","A color in the Display P3 (aka P3 D65) color space.","A color in the encoded BT.2020 color space.","A color in the encoded BT.2020 color space.","A color in the encoded BT.2100 color space with HLG …","A color in the encoded BT.2100 color space with HLG …","A color in the encoded BT.2100 color space with PQ …","A color in the encoded BT.2100 color space with PQ …","A color in the Display P3 (aka P3 D65) color space.","A color in the Display P3 (aka P3 D65) color space.","A color in the encoded Rec.709/BT.709 color space.","A color in the encoded Rec.709/BT.709 color space.","A color in the encoded sRGB color space.","A color in the encoded sRGB color space.","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in a generic color space that can be represented …","A color in the HSL color space.","A color in the HSL color space.","A color in the HSV color space.","A color in the HSV color space.","A color in the ICtCp color space with HLG (Hybrid …","A color in the ICtCp color space with HLG (Hybrid …","A color in the ICtCp color space with PQ (Perceptual …","A color in the ICtCp color space with PQ (Perceptual …","A color in the linear (decoded) sRGB color space.","A color in the linear (decoded) sRGB color space.","A single-channel CIE luma (non-linear transform from …","A single-channel CIE luma (non-linear transform from …","A single-channel CIE luminance.","A single-channel CIE luminance.","","A color in the Oklab color space.","A color in the Oklab color space.","A color in the Oklch color space (a transformation from …","A color in the Oklch color space (a transformation from …","A premultiplied color with an alpha component.","A color in the Rec.709/BT.709 color space.","A color in the Rec.709/BT.709 color space.","","An enum with a variant for each of the color spaces …","Stores the style for a multi-layered map.","A color in the YCbCr color space. See discussion of the …","A color in the YCbCr color space. See discussion of the …","A color in the YCxCz (also called YyCxCz) color space, …","A color in the YCxCz (also called YyCxCz) color space, …","A color in the YPbPr color space. See discussion of the …","A color in the YPbPr color space. See discussion of the …","A color in the Y’CbCr color space. See discussion of the …","A color in the Y’CbCr color space. See discussion of the …","A color in the Y’PbPr color space. See discussion of the …","A color in the Y’PbPr color space. See discussion of the …","A color in the YUV color space. See discussion of the …","A color in the YUV color space. See discussion of the …","The a component, representing green-red chroma difference.","The a component, representing green-red chroma difference.","The alpha component.","The alpha component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The blue component.","The b component, representing blue-yellow chroma …","The b component, representing blue-yellow chroma …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The C (chroma) component. Varies from 0 to a hue dependent …","The C (chroma) component. Varies from 0 to a hue dependent …","The Cb (chroma-blue/yellow) component.","The Cb (chroma-blue/yellow) component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The contained color, which is completely separate from the …","The contained color, which has been premultiplied with …","The Cp (chroma-protan) component.","The Cp (chroma-protan) component.","The Cr (chroma-red/green) component.","The Cr (chroma-red/green) component.","The Ct (chroma-tritan) component.","The Ct (chroma-tritan) component.","The Cx (chroma difference blue/yellow) component","The Cz (chroma difference red/green) component","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Convert self into its canonical cint type.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","The green component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The h (hue) component. Varies from -PI to PI.","The h (hue) component. Varies from -PI to PI.","The H (hue) component. Varies from 0 to 1.","The H (hue) component. Varies from 0 to 1.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The I (intensity) component.","The I (intensity) component.","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","","Calls U::from(self).","Calls U::from(self).","","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a Self from its canonical cint type.","CIE luminance.","CIE luminance.","The L (lightness) component. Varies from 0 to 100.","The L (lightness) component. Varies from 0 to 100.","The L (lightness) component. Varies from 0 to 1","The L (lightness) component. Varies from 0 to 1.","The L (lightness) component. Varies from 0 to 1.","Vector tile layer drawing utilities.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Pb (chroma-blue/yellow) component.","The Pb (chroma-blue/yellow) component.","","The Pr (chroma-red/green) component.","The Pr (chroma-red/green) component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The red component.","The S (saturation) component. Varies from 0 to 1.","The S (saturation) component. Varies from 0 to 1.","Vector tile data utilities.","","Default vector tile styles configuration.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The U (chroma-blue/yellow) component.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The V (value) component. Varies from 0 to 1.","The V (chroma-red/green) component.","","The first component.","The first component.","The X’ component.","The X component.","The second component.","The Y’ component.","The Y component.","The Y (luminance) component.","The Y’ (luma) component.","The Y (luminance) component.","The Y’ (luma) component.","The Y (luminance) component.","The Yy (luminance) component.","The third component.","The Z’ component.","The Z component.","","","","","","The different types of paints.","","","Stores all the styles for a specific layer.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Tiles can be positioned using either the xyz coordinates …","String url to a JSON tile.","String url to a tile.","","Source properties for tiles or rasters.","","","","","","","","String which contains attribution information for the used …","","","","","","","The bounds in which tiles are available.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","Max zoom level at which tiles are available.","Min zoom level at which tiles are available.","","","","","Array of URLs which can contain place holders like {x}, …","","","","","","","","","","","","","","","","","","Stores the style for a multi-layered map.","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","Vertex buffers index data type.","Vertex buffer which includes additional padding to fulfill …","An element that can be tessellated into vertex buffers.","Constructor for Fill and Stroke vertices.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","Returns a vertex buffer which represents some object like …","","","","","","","","","","","Tessellator implementation.","","Build tessellations with vectors.","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Features are described in section 4.2 of the specification","GeomType is described in section 4.3.4 of the specification","Layers are described in section 4.1 of the specification","","","","","Variant type encoding The use of values is described in …","","","","","","","","","","","Returns the value of bool_value, or the default value if …","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the value of double_value, or the default value if …","","","","","","","","","","","","","","","","Returns the value of extent, or the default value if extent…","Although this is an “optional” field it is required by …","The actual features in this tile.","Returns the value of float_value, or the default value if …","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Converts an i32 to a GeomType, or None if value is not a …","Contains a stream of commands and parameters (vertices). A …","","","Returns the value of id, or the default value if id is …","","Returns the value of int_value, or the default value if …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Returns true if value is a variant of GeomType.","Dictionary encoding for keys","","","","","","","","Sets type to the provided enum value.","Returns the value of sint_value, or the default value if …","","Returns the value of string_value, or the default value if …","Exactly one of these values must be present in a valid …","Tags of this feature are encoded as repeated pairs of …","","","","","","","","","","","","","","","Returns the enum value of type, or the default if the …","The type of geometry stored in this feature.","","","","","Returns the value of uint_value, or the default value if …","","","","","","Dictionary encoding for values","Any compliant implementation must first read the version …","","","Measures the frames per second.","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","Traits used by label implementations","","","","","","This method tests for self and other values to be …","","","","","","","","","","","","","","","Measures the frames per second.","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","Returns coordinates for tiles within bavaria according to …","","","","","","","","A two-dimensional AABB, aka a rectangle.","A three-dimensional AABB, aka a rectangular prism.","A wrapper type that enables ordering floats. This is a …","A 3-dimensional plane formed from the equation: …","","","","","","","","","","","","","","","","","","","","","","Plane distance value","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a plane from a point and a normal vector. The …","Constructs a plane that passes through the the three …","","Returns unsorted intersection points with an Aabb3 Adopted …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","Maximum point of the AABB","Maximum point of the AABB","","Minimum point of the AABB","Minimum point of the AABB","Plane normal","Construct a plane from a normal vector and a scalar …","Construct a new axis-aligned bounding box from two points.","Construct a new axis-aligned bounding box from two points.","","Compute corners.","Compute corners.","","","","","","","","","","","","","","","","","","Window which references a physical RawWindow. This is only …","Window of a certain WindowSize. This can either be a …","","A configuration for a window which determines the …","","Window size with a width and an height in pixels.","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","Stores the camera configuration.","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,77,320,77,0,0,298,298,298,298,298,298,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,31,19,12,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,14,31,19,19,12,12,20,14,21,22,22,18,18,17,28,31,19,12,20,14,21,22,18,17,28,12,22,18,17,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,18,19,12,20,14,21,22,18,17,19,12,20,14,21,22,18,17,19,12,18,0,12,20,14,21,22,18,17,12,18,31,19,12,20,14,21,22,18,17,28,19,12,22,18,12,22,18,19,12,21,22,18,17,19,12,22,18,19,12,12,20,20,14,14,21,22,22,18,18,17,17,28,31,19,12,12,20,14,14,21,22,22,18,18,17,17,17,17,28,17,18,12,22,18,18,12,22,18,31,19,12,12,20,14,21,22,18,17,28,18,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,18,22,17,28,12,12,28,20,14,20,31,31,28,28,28,19,12,14,21,22,18,17,19,12,20,14,28,28,19,12,18,14,14,14,12,18,12,14,0,19,12,20,14,21,22,18,17,12,20,14,22,18,17,18,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,31,19,12,20,14,21,22,18,17,28,31,31,21,22,18,17,21,22,18,17,22,18,28,28,99,0,99,99,99,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,321,322,323,324,0,0,0,325,326,325,325,326,326,327,0,0,0,46,46,46,46,46,46,46,46,46,78,78,46,46,0,46,46,46,46,78,46,78,0,0,46,0,0,0,46,0,46,46,46,46,78,78,0,0,0,0,328,0,0,0,0,54,47,54,328,54,51,54,47,55,51,54,47,55,51,54,47,55,51,54,47,55,328,51,51,54,47,55,54,47,55,47,51,54,47,55,51,54,47,55,51,51,54,47,55,51,54,47,55,51,54,47,55,51,54,47,55,51,328,51,51,239,55,55,47,239,55,55,54,47,55,51,54,47,55,51,54,47,55,51,54,47,55,51,54,47,55,329,330,331,332,0,0,0,0,61,70,61,70,0,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,59,58,59,61,59,61,59,58,58,59,69,70,58,59,61,59,59,58,58,59,61,69,70,58,59,61,59,59,58,58,58,58,58,69,69,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,58,58,58,58,58,58,69,58,58,70,58,58,58,59,58,58,58,69,59,61,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,69,70,58,59,61,58,333,334,335,336,0,0,88,88,0,0,0,0,79,80,72,74,79,80,72,74,79,80,72,74,79,80,72,74,72,79,80,72,74,79,80,72,74,74,74,74,79,80,72,74,79,80,72,74,80,72,74,79,80,72,74,81,81,81,79,80,80,72,74,88,80,72,74,79,79,80,79,81,79,80,72,74,79,80,72,74,79,80,72,74,79,80,72,74,0,0,84,84,84,84,84,84,84,84,84,84,50,84,84,84,84,84,0,0,0,0,85,57,85,57,85,57,85,57,85,57,85,57,85,57,49,85,57,85,57,57,85,85,57,85,57,85,57,85,57,85,57,85,57,85,57,85,57,85,57,85,57,0,0,0,89,90,91,89,90,91,89,90,91,89,90,91,0,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,89,90,91,94,94,0,0,94,93,0,0,93,93,94,94,95,92,93,94,95,92,93,94,95,92,93,94,95,92,92,93,94,95,93,94,95,95,92,92,93,94,95,92,94,94,94,95,93,94,95,92,93,92,93,94,95,92,93,94,95,92,93,94,95,92,93,94,95,92,92,93,95,92,92,92,95,92,92,95,95,93,94,95,92,93,94,95,92,93,94,95,92,93,94,95,92,93,94,95,92,337,338,337,337,338,337,0,0,0,0,0,53,0,53,0,0,53,96,97,98,56,96,97,98,56,96,97,98,56,96,97,98,56,98,56,56,339,96,96,97,98,96,97,98,56,98,96,97,98,56,96,97,98,56,96,97,98,56,96,97,98,56,96,97,98,56,98,97,339,340,341,96,97,98,56,340,341,97,98,96,97,98,56,96,97,98,56,96,97,98,56,96,97,98,56,0,0,100,100,101,100,101,100,101,100,101,100,101,101,100,101,100,101,101,100,101,100,101,100,101,100,101,100,100,101,101,100,100,101,100,100,100,101,100,101,100,101,100,101,101,101,101,101,0,0,342,342,342,45,342,45,342,45,342,45,45,45,342,45,342,45,45,45,342,45,342,45,342,342,45,45,45,45,45,45,45,342,45,342,45,342,45,342,45,45,45,45,343,344,0,0,0,0,0,0,0,104,0,0,0,0,0,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,0,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,0,0,0,0,0,110,106,110,106,110,106,110,106,110,106,106,0,0,0,106,110,110,106,110,0,0,0,106,110,106,0,0,110,110,110,110,106,110,106,110,106,110,106,110,0,0,106,106,106,106,75,75,110,110,106,0,0,0,106,110,110,0,0,110,0,0,110,110,106,110,106,106,0,106,0,106,106,110,106,110,106,110,106,110,110,119,0,119,0,0,0,119,102,119,118,120,102,119,118,120,102,119,118,120,102,119,118,120,102,119,102,119,118,120,102,119,118,120,118,102,119,118,120,102,119,118,120,102,119,118,120,102,119,118,120,119,102,120,102,118,102,119,118,120,102,119,118,120,102,119,118,120,119,102,119,118,120,102,118,102,102,345,346,129,127,124,0,0,0,0,0,0,0,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,123,122,122,122,122,122,122,122,123,129,127,127,123,124,124,122,124,122,123,129,127,123,124,122,122,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,124,122,122,122,123,122,122,122,122,122,122,129,124,123,122,124,122,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,129,127,123,124,122,122,122,122,122,122,122,122,122,122,123,123,0,0,0,0,132,132,0,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,132,347,348,349,350,0,0,107,107,107,107,107,107,107,107,107,350,107,107,107,107,107,107,107,107,107,107,107,351,150,141,159,149,0,109,109,0,0,0,149,0,151,140,0,135,109,109,109,137,138,136,109,137,138,136,136,151,140,0,148,0,109,0,0,0,0,135,0,0,0,0,0,0,135,141,159,148,0,0,0,0,0,136,141,159,109,109,109,109,109,109,109,109,134,0,108,134,109,109,0,146,109,109,109,109,109,0,133,146,155,155,108,146,139,133,153,109,109,109,109,139,146,154,109,0,133,146,108,0,108,155,146,133,156,133,154,145,108,109,109,109,109,146,109,352,352,353,352,352,353,354,355,355,355,356,357,358,359,360,361,362,362,362,363,364,365,366,367,368,368,369,370,369,371,370,370,368,368,371,372,373,374,374,375,374,374,375,374,375,376,377,378,379,380,0,137,138,136,137,138,136,136,0,0,0,0,136,139,133,136,136,137,137,138,138,139,133,136,137,138,139,133,136,137,138,139,133,136,137,138,139,133,136,137,138,136,137,138,136,137,138,136,137,138,133,136,136,137,137,138,138,139,133,136,137,138,133,133,133,133,133,133,133,139,133,139,133,136,137,138,139,133,136,137,138,136,137,138,139,133,136,137,138,139,136,137,138,133,133,133,133,133,133,133,136,137,138,139,133,136,137,138,139,133,136,137,138,139,133,136,137,138,139,133,136,137,138,354,355,355,355,361,362,362,362,372,373,374,374,375,374,374,375,374,375,149,0,0,149,148,148,148,148,149,149,148,149,148,149,148,149,148,148,148,149,148,149,148,149,148,149,148,148,149,148,148,148,149,148,149,148,149,148,149,148,148,148,149,148,149,148,149,148,149,352,352,353,352,352,353,0,108,0,108,108,108,108,153,108,153,108,153,108,153,108,108,108,153,108,108,153,108,108,108,108,108,108,108,108,108,153,108,108,153,153,108,153,108,153,108,153,108,108,108,108,108,108,108,108,108,153,108,108,108,108,153,108,108,153,108,153,108,153,108,153,108,108,108,150,0,0,151,135,151,0,0,0,0,0,135,0,135,155,155,134,146,157,150,150,135,135,155,151,151,134,146,157,150,135,155,151,150,134,146,157,150,135,155,151,134,146,157,150,135,155,151,150,151,150,151,150,134,134,134,156,146,157,150,135,155,151,156,156,156,150,135,151,150,146,150,135,151,150,135,151,146,150,135,135,155,151,134,146,157,150,135,135,135,135,155,151,151,151,151,151,150,155,155,155,155,150,155,146,155,156,156,155,155,146,134,146,157,150,135,155,151,134,146,157,150,135,155,151,134,146,157,150,135,155,151,134,146,157,150,135,155,151,156,146,150,135,151,146,150,146,146,146,156,156,155,155,146,150,155,155,156,157,135,150,151,135,134,146,157,150,135,155,151,134,146,157,150,135,155,151,134,146,157,150,135,155,151,146,134,146,157,150,135,155,151,156,156,146,146,356,357,358,359,360,141,159,140,140,141,159,0,0,0,0,0,141,159,141,159,159,140,140,154,145,141,159,140,154,145,141,159,140,154,145,141,159,140,154,145,141,159,140,154,141,159,140,154,145,141,159,140,154,145,159,140,159,140,159,140,141,159,159,140,154,145,141,141,141,141,159,140,140,140,140,140,140,154,145,145,145,145,145,141,159,140,154,145,141,159,140,154,145,159,140,154,145,141,159,140,154,145,145,145,145,154,140,154,141,154,145,141,159,140,154,159,141,159,140,154,145,141,159,140,154,145,141,159,140,154,145,141,159,140,154,145,376,377,378,379,380,161,161,161,161,0,0,381,161,381,161,381,161,381,161,381,161,161,161,381,161,161,381,161,381,161,381,161,381,161,381,381,161,161,381,161,381,161,381,161,381,161,382,383,383,384,383,385,384,383,385,384,385,0,0,0,0,0,0,162,163,162,163,162,163,162,163,162,163,162,163,0,162,162,163,162,163,162,163,162,163,162,162,163,162,163,162,163,162,163,162,163,162,0,0,0,0,0,0,0,0,0,0,0,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,386,387,388,389,390,0,168,168,168,168,168,168,168,0,168,168,168,168,168,168,168,168,168,168,168,0,165,0,0,0,167,165,165,165,165,165,165,391,165,165,165,165,165,392,0,167,165,165,165,165,0,0,0,0,0,0,179,0,0,0,190,190,0,0,179,0,179,0,0,0,0,0,144,0,0,144,0,0,0,0,179,0,186,186,184,182,393,176,176,176,0,176,188,176,169,394,187,188,173,169,0,115,191,173,173,182,169,173,169,175,169,393,191,164,173,173,173,173,173,0,169,0,115,196,187,188,186,176,0,189,189,187,0,393,196,0,175,184,191,176,169,173,196,191,171,395,396,397,398,398,0,0,0,0,0,179,0,0,179,0,179,0,0,179,173,173,182,173,179,178,176,175,182,173,179,178,176,175,175,182,173,179,178,176,175,182,173,179,178,176,175,182,176,176,176,176,173,175,176,176,176,182,173,179,178,176,175,173,173,176,178,173,179,178,176,175,182,173,179,178,176,175,173,175,175,175,173,175,175,173,173,173,173,176,176,178,182,178,182,173,179,178,176,175,182,173,179,178,176,175,182,173,179,178,176,175,182,173,179,178,176,175,175,173,176,175,178,173,182,173,178,175,173,173,173,173,173,175,175,176,176,175,182,173,179,178,176,175,182,173,179,178,176,175,178,182,173,179,178,176,175,182,173,179,178,176,175,173,173,176,173,173,176,0,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,0,0,169,169,169,169,169,394,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,169,0,0,0,186,186,187,188,186,187,188,186,186,187,188,186,187,188,188,186,187,188,186,187,188,186,187,188,187,188,187,186,187,188,186,187,188,186,187,188,186,187,188,186,187,188,186,187,188,187,187,188,186,187,186,187,188,186,187,188,186,187,188,186,187,188,186,187,188,0,0,0,190,190,0,0,191,189,393,190,115,191,189,393,190,115,191,189,393,190,115,191,189,393,190,115,393,189,115,191,189,393,190,115,191,189,393,190,115,115,115,189,115,115,115,191,191,189,393,190,115,191,189,393,190,115,191,189,393,190,115,191,189,393,190,115,191,393,191,115,115,189,115,189,115,115,189,189,189,393,191,189,393,190,115,191,189,393,190,115,191,189,393,190,115,191,191,189,393,190,115,191,395,396,144,0,0,144,196,144,196,144,196,144,196,144,144,196,144,144,196,144,144,144,196,196,144,196,144,196,144,196,144,196,196,144,196,196,144,196,144,196,144,196,144,196,397,398,398,0,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,207,207,198,206,207,0,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,207,207,207,207,206,206,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,0,206,211,211,210,207,0,210,207,206,207,207,207,0,207,207,207,207,206,207,0,198,198,198,198,198,198,198,198,198,198,198,198,0,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,207,206,207,207,207,207,207,0,207,207,207,207,207,207,207,207,0,207,207,207,206,207,0,206,207,207,207,210,210,206,206,207,207,208,208,198,198,112,211,199,113,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,206,207,206,207,206,207,206,207,206,207,206,207,206,207,206,207,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,208,208,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,206,207,206,207,112,206,207,210,207,208,112,199,113,113,198,112,206,207,112,210,206,207,208,198,112,211,199,113,208,208,210,206,207,208,198,210,206,207,208,198,206,207,210,206,207,208,198,210,206,207,208,198,206,207,112,210,206,206,206,206,206,207,207,207,207,207,208,198,210,206,206,207,208,198,112,211,199,113,206,207,206,207,206,207,206,207,210,206,207,208,198,210,206,207,208,198,206,207,206,207,206,207,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,199,206,207,206,207,112,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,113,206,207,208,198,206,207,206,207,112,112,206,207,199,206,207,206,207,206,207,206,207,113,210,206,207,208,198,112,211,199,113,206,207,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,210,206,207,208,198,112,211,199,113,206,207,210,206,207,208,198,112,211,199,113,208,208,399,399,0,0,0,0,0,0,0,0,0,0,0,0,0,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,216,215,216,75,217,218,219,215,216,75,217,218,219,217,215,75,400,220,221,400,220,221,220,221,215,216,75,217,218,219,220,217,220,221,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,215,216,75,217,218,219,215,216,75,218,219,75,75,215,216,75,217,218,219,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,220,221,215,216,75,217,218,219,215,215,218,219,222,222,222,0,222,222,0,222,222,223,222,223,222,222,223,222,223,222,222,223,222,223,222,222,222,222,223,0,222,222,223,222,0,222,222,223,222,223,222,223,222,223,0,0,0,223,0,223,222,222,223,222,223,222,223,222,223,223,0,0,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,0,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,0,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,227,0,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,0,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,0,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,0,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,0,0,0,0,0,232,233,166,234,232,233,166,234,232,233,166,234,232,233,166,234,232,232,233,233,166,233,166,233,232,233,166,234,166,234,232,233,166,234,232,234,234,232,233,166,234,232,233,166,234,232,233,166,234,232,233,166,234,232,232,233,234,232,166,166,232,233,166,233,232,233,166,234,232,233,166,234,232,233,166,234,232,233,166,234,232,232,233,0,0,0,0,0,0,224,224,224,238,237,224,238,237,224,238,237,224,238,237,224,224,238,237,236,224,236,236,236,235,238,237,224,224,224,235,238,237,224,238,237,224,238,237,238,237,224,236,224,237,236,238,237,224,224,224,224,237,224,238,237,224,238,237,224,238,237,224,238,237,224,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240,240,240,240,0,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,0,242,242,242,242,242,242,242,242,242,242,242,242,242,242,0,242,242,242,242,0,282,0,282,0,282,0,282,0,0,282,0,282,0,282,0,282,0,282,401,0,0,402,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,0,282,402,0,282,0,282,0,0,282,402,0,0,0,282,0,282,0,282,0,282,0,282,0,282,263,248,245,281,245,245,281,281,282,282,257,257,271,271,261,261,269,269,252,252,258,258,247,247,260,260,250,250,273,273,256,256,275,275,266,266,251,251,276,276,274,274,267,267,277,277,254,254,249,249,270,270,265,265,253,253,244,244,263,263,278,278,248,248,262,262,280,280,279,279,246,246,268,268,255,255,264,264,272,272,259,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,257,271,261,269,250,273,256,275,266,251,276,267,277,254,249,270,263,248,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,278,262,246,268,103,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,265,253,246,268,265,253,259,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,282,257,257,257,257,257,257,257,271,271,271,271,261,261,261,261,269,269,269,269,252,252,252,252,258,258,258,258,247,247,247,247,260,260,260,260,250,250,250,250,273,273,273,273,256,256,256,256,275,275,275,275,266,266,266,266,251,251,251,251,276,276,276,276,274,274,274,274,267,267,267,267,277,277,277,277,254,254,254,254,249,249,249,249,270,270,270,270,265,265,265,265,253,253,253,253,244,244,244,244,263,263,263,263,278,278,278,278,248,248,248,248,262,262,262,262,280,280,280,280,279,279,279,279,246,246,246,246,268,268,268,268,255,255,255,255,264,264,264,264,272,272,272,272,259,259,259,259,401,257,271,261,269,250,273,256,275,266,251,276,267,277,254,249,270,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,278,262,280,279,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,265,253,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,282,257,257,271,271,261,261,269,269,252,252,258,258,247,247,260,260,250,250,273,273,256,256,275,275,266,266,251,251,276,276,274,274,267,267,277,277,254,254,249,249,270,270,265,265,253,253,244,244,263,263,278,278,248,248,262,262,280,280,279,279,246,246,268,268,255,255,264,264,272,272,259,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,401,247,260,263,278,248,262,280,0,103,103,103,245,281,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,255,264,103,255,264,257,271,261,269,250,273,256,275,266,251,276,267,277,254,249,270,280,279,0,103,0,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,272,245,281,282,257,271,261,269,252,258,247,260,250,273,256,275,266,251,276,274,267,277,254,249,270,265,253,244,263,278,248,262,280,279,246,268,255,264,272,259,279,272,103,252,258,274,244,252,274,244,246,268,255,264,272,259,252,274,244,103,287,0,287,0,0,287,0,0,284,285,286,287,174,284,285,286,287,174,284,284,285,286,287,174,284,285,286,287,174,284,285,286,287,174,284,285,286,287,174,174,284,285,286,287,174,284,285,286,287,174,285,284,285,286,287,174,284,285,286,287,174,287,174,174,284,285,286,287,174,284,285,286,287,174,284,285,286,287,174,284,285,286,287,174,286,174,174,174,174,284,285,286,287,174,174,174,284,285,286,287,174,284,285,286,287,174,284,285,286,287,174,174,284,285,286,287,174,284,285,286,287,174,403,404,405,289,0,32,0,0,0,289,0,32,32,288,289,32,288,289,288,32,288,289,32,288,289,288,32,288,289,32,288,289,32,32,288,289,32,288,289,32,288,289,32,288,289,32,288,289,32,288,289,32,288,289,32,288,289,288,288,288,32,288,289,288,32,288,289,32,288,289,32,288,289,32,288,289,32,288,289,406,407,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,0,0,0,0,0,408,408,291,77,291,77,291,77,291,77,77,77,77,291,77,77,291,77,77,77,291,77,291,77,291,77,291,77,291,291,320,77,291,77,291,77,291,77,291,77,77,0,0,0,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,0,0,0,302,302,302,302,0,300,301,78,302,302,300,301,78,302,302,300,300,300,301,78,302,300,301,78,302,300,301,78,300,301,78,302,300,301,78,302,302,300,301,78,302,300,300,300,301,78,302,302,302,300,301,78,300,301,78,302,302,78,78,78,300,300,300,301,78,302,300,301,78,302,302,301,302,302,301,301,300,300,300,301,78,302,300,301,78,302,300,301,78,302,300,301,78,302,302,78,78,300,301,78,302,78,301,301,300,300,300,300,301,301,301,300,301,78,302,300,301,78,302,300,301,78,302,301,301,300,301,78,302,300,300,300,301,78,302,78,78,0,409,0,0,0,306,305,306,305,306,305,306,305,305,305,305,305,306,305,0,307,306,305,0,306,305,306,305,306,305,306,305,306,305,306,0,0,306,306,306,306,409,306,305,307,305,306,305,306,305,306,305,306,305,306,305,0,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,307,0,0,0,0,15,410,15,410,309,0,0,0,0,311,34,313,309,309,311,34,313,309,311,34,313,309,311,34,313,309,0,309,309,309,311,0,0,0,311,34,313,309,309,309,309,311,34,313,309,311,34,313,309,311,311,311,311,311,311,34,313,309,311,34,313,309,311,34,313,309,311,34,313,309,0,34,313,0,34,313,311,311,34,313,309,34,313,309,311,34,313,309,311,34,313,309,311,34,313,309,311,34,313,309,0,0,411,0,412,0,192,192,192,192,192,192,192,411,192,192,192,192,192,192,192,412,192,192,192,192,192,192,412,412,413,192,192,192,192,192,192,192,0,0,319,317,319,317,319,317,319,317,317,317,317,317,317,317,319,317,319,317,319,317,319,317,319,317,319,317,319,317,319,317,317,319,319,317,319,317,319,317,319,317,317,317,317,319,319,319,317,317,317],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],[[2,[1]]]],0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,[[8,9,9]],0,[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[12,13]],[[14,14]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[],15],[[],15],[[16,16],17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,[[11,[19]]]],[19,19],[12,12],[20,20],[14,14],[21,21],[22,22],[18,18],[17,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19],23],[[12,12],23],[[18,18],23],[[]],[[],12],[[],20],[[],14],[[],21],[[],22],[[],18],[[],17],[[],[[2,[12]]]],[[],[[2,[18]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[15,24],[15,24],[15,24],[15,24],[25],[25],[25],[[19,19],24],[[12,12],24],[[21,21],24],[[22,22],24],[[18,18],24],[[17,17],24],[[],24],[[],24],[[],24],[[],24],[[19,26],27],[[12,26],27],[[12,26],27],[[20,26],27],[[20,26],27],[[14,26],27],[[14,26],27],[[21,26],27],[[22,26],27],[[22,26],27],[[18,26],27],[[18,26],27],[[17,26],27],[[17,26],27],[[28,26],27],[[]],[[]],[[]],[13,12],[[]],[[]],[12,14],[[]],[[],22],[[]],[[],18],[[]],[[],17],[[]],[[],17],[[[29,[16]]],17],[[]],[[20,14],17],[18],[[],30],[[],30],[[],30],[18,[[11,[18]]]],[12],[22],[18],[[]],[[]],[[]],[12,13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[18,31],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[18,32],[[11,[22]]]],[[22,32],[[11,[18]]]],[[17,12,14],18],[[28,18],24],[12,24],[[],24],[28,33],0,[14,12],0,[31,18],[31,18],0,0,0,[[19,19],24],[[12,12],24],[[14,14],24],[[21,21],24],[[22,22],24],[[18,18],24],[[17,17],24],[[],19],[13,12],[[16,16],20],[16,14],[[[34,[16]],35,36,14,12],28],0,[[19,19],[[11,[23]]]],[[12,12],[[11,[23]]]],[[18,18],[[11,[23]]]],[[14,14],16],[[14,18],16],[[14,12],16],[12,2],[18,2],[[12,13]],[[14,14]],[13,16],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],37],[[],37],[[],37],[[],37],[[],37],[[],37],[[18,14],[[38,[16]]]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[31,18],[31,18],0,0,0,0,0,0,0,0,0,0,[28,12],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[]],[[1,26],27],[[]],[39,1],[40,1],[41,1],[42,1],[43,1],[[],1],[44,1],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[45,[11,[30]]]],[[]],0,0,0,[[],3],[[],3],[[]],[[]],[46,46],[[]],0,[[],[[2,[46]]]],[[]],0,0,[[46,26],27],[[]],0,[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,0,0,0,0,[46,2],0,0,0,[[]],0,[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[47,48]],[[[51,[49,50]],47,48]],0,[[[54,[[0,[52,53]]]]],[[54,[[0,[52,53]]]]]],[47,47],[[[55,[[0,[52,53]],[0,[52,49]]]]],[[55,[[0,[52,53]],[0,[52,49]]]]]],[[]],[[]],[[]],[[],[[2,[47]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[49,50],[[51,[49,50]]]],[[],[[11,[54]]]],[[[51,[49,50]]],[[11,[[54,[56]]]]]],0,[54,[[2,[1]]]],[[[55,[53,49]],[54,[53]]],[[2,[1]]]],0,[47,2],[[],57],[[[55,[53,49]]],57],0,[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[58,[[60,[[59,[16]]]]]],[[[59,[52]]],[[59,[52]]]],[[[61,[52]]],[[61,[52]]]],[[]],[[]],[59,24],[[58,[11,[62]]],[[2,[63]]]],[58,[[2,[63]]]],[59],[[]],[[]],[[]],[[]],[[]],[59],0,[[58,30],[[2,[63]]]],[[58,30],[[2,[63]]]],[[[59,[64]],26],27],[[[61,[64]],26],27],[[]],[[]],[[]],[[]],[[]],[[65,[66,[37,37]]],[[11,[59]]]],[[67,[66,[37,37]]],[[11,[59]]]],0,0,[58,[[2,[63]]]],[58,[[2,[63]]]],[58,[[68,[[59,[16]]]]]],0,[[69,18,70]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[58,24,36,36],[[2,[63]]]],[[58,24,36],[[2,[63]]]],[[58,36,36],[[2,[63]]]],[[58,36],[[2,[63]]]],[[58,36,36],[[2,[63]]]],[[58,36,36],[[2,[63]]]],[[],69],[[],58],[[58,36],[[2,[63]]]],[[70,21],[[68,[59]]]],[[58,24,36,36],[[2,[63]]]],[[58,24,36],[[2,[63]]]],0,0,[58,[[2,[63]]]],[58,[[2,[63]]]],[[58,36,62,71],[[2,[24,63]]]],[[69,17,12,14],[[11,[[68,[59]]]]]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],[[58,16,16,36],[[2,[63]]]],0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],72],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[73],[[],74],[[]],0,[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[18,[68,[[59,[16]]]]],[[2,[1]]]],[[18,[77,[75,76]],[68,[9]],78],[[2,[1]]]],[[18,62],[[2,[1]]]],[[],79],[[],80],0,0,0,[79],[[80,79]],[[72,79]],[[74,79]],0,[79,81],0,[79,[[11,[5]]]],[18,[[2,[1]]]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],0,0,[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[[0,[82,83]]],[[2,[1]]]],[[84,[0,[82,83]]],[[2,[1]]]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[[85,[52]]],[[85,[52]]]],[[[57,[52]]],[[57,[52]]]],[[]],[[]],[[]],[[]],[62,[[87,[[5,[86]]]]]],[[85,18],86],[[57,18],86],[[]],[[]],0,0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[],85],[85,57],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[],88],[[],89],[[],90],[[],91],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[89,79]],[[90,79]],[[91,79]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[92],[93,93],[94,94],[95,95],[[]],[[]],[[]],0,[[92,18],24],[[],92],[[]],[[]],[[]],[[]],[15,24],[[94,94],24],[[],24],[18,95],[[]],[[]],[[]],[[]],[93,18],[[92,18],24],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[92,18],[[11,[33]]]],[93,62],0,[[92,18]],[[92,18]],[[],92],[18,95],[[92,93]],[[92,95]],0,[[18,[68,[93]]],95],[[]],[[]],[[]],0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[56,56],[[]],[[],18],[96,18],0,0,0,[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,0,[18],[[18,37]],[[18,[77,[75,76]],[68,[9]],78]],[18,96],[[18,37],97],[[18,[77,[75,76]],[68,[9]],78],98],[[]],[[],93],[[],93],[97,93],[98,93],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],0,0,[[[100,[99]]]],0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[[101,[99]]],[[100,[99]]]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[[100,[99]]]],0,0,[[],[[101,[99]]]],[[[100,[99]]]],0,0,[[[100,[99]]],57],0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[[[101,[99]]],[[101,[99]]]],[[[101,[99]]],[[101,[99]]]],[[[101,[99]]],[[101,[99]]]],[[[101,[99]]],[[101,[99]]]],0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[[45,[99]]],[[2,[8,1]]]],[[[45,[99]]],[[2,[8,1]]]],[[]],[[]],[[]],[[]],[[[45,[99]]],24],[[[45,[99]],102],86],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[[45,[99]]],7],0,0,[[103,[100,[99]]],[[2,[[45,[99]],1]]]],[[[45,[99]]],[[2,[1]]]],0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[[[45,[99]]]],0,[[[45,[99]]]],0,0,0,0,0,[86],0,0,0,0,0,[86],0,0,0,[[],3],[[],3],[[]],[[]],0,[104,104],[[]],[[]],[[104,62],[[87,[[5,[86]]]]]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[[11,[37]]],104],[[]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[],105],[[105,[0,[82,83]]],[[2,[1]]]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],0,[106,107],0,0,[[],[[2,[108,109]]]],0,[110,111],0,[[]],[[]],0,0,0,[[]],[[]],0,0,0,[[112,113],86],[[112,113],86],[110,114],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,0,0,0,0,[115,106],0,0,[110,116],0,[[106,114]],0,0,0,0,[[114,112,117],86],[[110,9,9]],0,0,0,0,0,[110,106],0,[106,115],[110,115],0,0,0,0,0,0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[102,118],[[],119],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[118,86],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[119,[[11,[110]]]],[[],102],0,0,0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[119,120],[[],11],[[],11],[[],11],[[],11],0,0,[[102,113],102],[[102,112],102],0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[16,[121,[16]],16,16],[[38,[16]]]],[122,[[38,[16]]]],[[122,123],124],[[122,125],[[125,[16]]]],[122,[[38,[16]]]],[[122,125],[[126,[16]]]],[122,122],[[]],0,[[]],[127,[[38,[128]]]],[[]],[[]],[[]],[124,[[38,[128]]]],[[]],[[124,26],27],[[122,26],27],0,[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[124,129],[[122,[126,[16]]]],[[122,[29,[16]]]],[[122,122],24],[[9,9,[130,[[121,[16]]]],16,16],123],[[[130,[[29,[16]]]],[130,[[121,[16]]]],[130,[[121,[16]]]],9,9],122],[122,[[121,[16]]]],0,[[122,[130,[[121,[16]]]]]],[122,[[29,[16]]]],0,[[129,[125,[16]]],[[125,[16]]]],[[124,[125,[16]]],[[125,[16]]]],[[123,9,9]],[[122,9,9]],[[124,[38,[16]]],127],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],[[122,129],[[11,[[34,[16]]]]]],[[122,123],[[11,[[34,[16]]]]]],0,[[122,126,129],[[126,[16]]]],[[122,131,129,24],[[11,[[126,[16]]]]]],[[126,129,16,16],[[126,[16]]]],[122,[[121,[16]]]],0,[[122,[130,[[121,[16]]]]]],0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[]],[[132,26],27],[[132,26],27],[[]],[109,132],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[132,24],[[],37],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[],107],[[]],[[]],[[],24],[[107,82]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[107,82]],[107,107],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[]],[[]],0,0,0,0,[[]],[15,24],0,0,[[109,109],24],[[],24],[[109,26],27],[[109,26],27],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,0,0,[[109,109],24],0,0,0,0,0,0,0,0,0,[[133,134,106],[[2,[135]]]],0,0,0,0,[[],37],[[],2],[[],2],[[],10],0,[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[15,24],[15,24],[15,24],[[136,136],24],[[137,137],24],[[138,138],24],[[],24],[[],24],[[],24],[133,[[68,[139]]]],[[136,26],27],[[136,26],27],[[137,26],27],[[137,26],27],[[138,26],27],[[138,26],27],[[]],[[]],[[]],[[]],[[]],[[133,[130,[140]]],[[2,[141,138]]]],[[133,[130,[140]]],[[2,[142,138]]]],[[133,[130,[140]]],[[2,[143,138]]]],[[133,[130,[140]]],[[2,[144,138]]]],0,[133,145],[133],0,0,[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,[[136,136],24],[[137,137],24],[[138,138],24],[[108,146],133],0,[133,145],0,[[133,[130,[[147,[62]]]],[68,[141]]],[[2,[136]]]],0,[[133,[130,[140]],[130,[141]]],[[2,[137]]]],[[],37],[[],37],[[],37],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[148,148],[[]],[[]],[[]],[15,24],[15,24],[[148,148],24],[[149,149],24],[[],24],[[],24],[[148,26],27],[[]],[[]],[148,150],[148,150],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[148,148],24],[[]],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,0,0,0,0,0,0,[[108,[130,[[147,[62]]]]],150],[[108,[130,[151]],[130,[151]]],[[2,[109]]]],[[108,[130,[151]],[130,[140]],[130,[151]],[130,[140]]],[[2,[109]]]],[[108,[130,[[147,[62]]]],108]],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],0,[[],108],[[]],[[]],[[108,26],27],[[]],[[]],[[108,[130,[151]]],[[2,[109]]]],[[108,[130,[151]]],[[2,[150,109]]]],[[108,[130,[151]]],[[2,[109]]]],[[108,[130,[151]]],[[2,[146,109]]]],[[108,[130,[151]]],[[2,[146,109]]]],[[108,[152,[62]]],[[11,[108]]]],[[108,[152,[62]]],[[11,[108]]]],[[108,148],24],[153,[[68,[154]]]],[108,[[11,[146]]]],0,0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[108,[130,[151]]],[[2,[33,109]]]],[[108,[130,[151]]],[[2,[33,109]]]],[108,33],[108,33],[108,33],[108,33],0,0,[153,[[68,[154]]]],[[108,[130,[[147,[62]]]]],[[2,[109]]]],[[108,[130,[151]],[130,[151]]],[[2,[109]]]],[[108,[130,[151]],[130,[140]],[130,[151]],[130,[140]]],[[2,[109]]]],[[108,[130,[[147,[62]]]]]],[[153,133,134,106],[[2,[135]]]],[[108,[68,[154]]],150],0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[[108,106]],[[108,148,149],[[2,[109]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[155,148],[[2,[109]]]],[[155,148],[[2,[109]]]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[150,150],[151,151],[[]],[[]],[[150,150],23],0,0,[[]],[[[5,[156]]],[[2,[[5,[156]],[5,[156]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[156,11],[[[7,[156]]],[[2,[[7,[156]],[7,[156]]]]]],[156,11],[15,24],[15,24],[15,24],[25],0,[[150,150],24],[[135,135],24],[[151,151],24],[[],24],[[],24],[[],24],[[146,26],27],[[150,26],27],[[135,26],27],[[135,26],27],[[155,26],27],[[151,26],27],[[]],[[]],[[]],[[]],[138,135],[136,135],[137,135],[[]],[[]],[37,151],[[]],[62,151],[151,151],[150,151],[[],30],[[155,36],[[2,[148,109]]]],[[155,36],[[2,[148,109]]]],[[155,148],24],[[155,148],24],[150],[155,150],0,0,[[],[[68,[154]]]],[[],[[68,[154]]]],[155],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[156,24],0,[[150,150],24],[[135,135],24],[[151,151],24],[150,146],[36,150],[146,[[2,[109]]]],0,[146,[[2,[109]]]],[[],[[68,[154]]]],[[],[[68,[154]]]],[155],0,0,[[150,150],[[11,[23]]]],[[155,148],[[2,[109]]]],[[155,148],[[2,[109]]]],[[133,134,106],[[2,[135]]]],[[157,133,134,106],[[2,[135]]]],[135,[[11,[158]]]],[[]],[[]],[[],37],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[106],[106],[146,[[2,[109]]]],[146,[[2,[109]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[141,141],[159,159],[140,140],[154,154],[[]],[[]],[[]],[[]],[[],145],[[]],[[]],[[]],[[]],[[]],[15,24],[15,24],[[159,159],24],[[140,140],24],[[],24],[[],24],[[141,26],27],[[159,26],27],[[159,26],27],[[140,26],27],[[154,26],27],[[145,26],27],[143,141],[144,141],[142,141],[[]],[[]],[[[147,[62]]],140],[[]],[36,140],[140,140],[37,140],[62,140],[[]],[[]],[160,145],[[145,[130,[140]]],[[11,[154]]]],[[145,[130,[140]]],[[11,[36]]]],[[145,[130,[140]]],[[11,[154]]]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[145,24],[145,33],[145,36],0,[[140,140],24],[[[130,[[147,[62]]]],159],154],[141,159],0,0,[[]],[[]],[[]],[[]],[[],37],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[161,26],27],[[161,26],27],[[]],[135,161],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[108,111,116,106],[[2,[161]]]],[[108,[11,[[147,[62]]]],134,106],[[2,[161]]]],[161,[[11,[158]]]],[[],37],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[162,[[68,[154]]]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[],162],[[162,133,134,106],[[2,[135]]]],[[163,133,134,106],[[2,[135]]]],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[[162,106]],0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[106,164],165],[[106,164],165],[[106,164],165],[[106,166,164],165],[[106,164],165],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],0,[[[168,[167]],167]],[[],3],[[],3],[[]],[[]],[[],[[168,[167]]]],[[]],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,[[[168,[167]]]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[]],[[164,106]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[106,164],165],0,[[]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],169],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[170],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[170,170,170]],[[[173,[171,172,172,172,172]],18,174,77,172]],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[175,[[11,[176]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[[173,[171,172,172,172,172]]]],[175],[176,176],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[[173,[171,172,172,172,172]]]],0,[176,[[177,[170]]]],[[178,175],[[177,[170]]]],[[[173,[64,64,64,64,64,64]],26],27],[[179,26],27],[[[178,[64]],26],27],[[176,26],27],[[175,26],27],[[]],[[]],[[]],[[]],[[]],[[]],[111,[[173,[116,142,172,172,172,172]]]],[175,[[11,[176]]]],[[175,18],[[11,[180]]]],[[175,18],[[11,[180]]]],[[[173,[171,172,172,172,172]],18],[[11,[[181,[62]]]]]],[[175,18],[[11,[18]]]],[[175,18],24],[[[173,[171,172,172,172,172]]],175],0,[[[173,[171,172,172,172,172]]]],0,[176,[[177,[170]]]],[176,[[177,[9]]]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[175,33],0,[176,[[177,[170]]]],0,[[178,170,175],[[177,[170]]]],[[[173,[171,172,172,172,172]]]],[170,182],[[182,182,182,182],[[173,[171,172,172,172,172]]]],[[170,179],178],[[],175],0,0,0,0,0,[175,[[11,[176]]]],[[175,176]],0,[[]],0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],0,[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[[173,[171,172,172,172,172]],176]],[[[173,[171,172,172,172,172]],176,172]],0,[[[173,[171,172,172,172,172]]]],0,[176,[[177,[170]]]],0,[[],3],[[],3],0,[[]],[[]],[[]],[[]],[[111,183],184],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[],2],[[],2],[[],10],0,[[],11],0,0,[[],3],[[],3],[[]],[[]],0,[[],169],[[]],0,[[]],[[169,111],185],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,0,0,0,[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],0,[[]],[[]],[[]],[[]],[[]],[[]],0,[186,186],[187,187],[188,188],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[187,187],24],[[186,26],27],[[187,26],27],[[188,26],27],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[187,187],24],0,0,0,0,[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[189,111]],[[115,111],144],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[111,113],115],[[114,113],115],[189,24],[115,190],0,[115,190],0,[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[36,36],191],0,0,[[115,111]],[[115,114]],[[189,114]],[[115,9,9]],[[189,9,9,111]],[115,192],0,[189,193],0,0,0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[144],[[]],[[]],[[144,26],27],[[]],[194,144],[195,144],[[]],[196,24],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[197,111,198,9,9,199],196],0,[144,[[11,[195]]]],0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,0,0,[[],3],[[],3],[[]],[[]],[[]],[[164,[177,[9]],[177,[9]]]],[[164,[177,[9]],35,[177,[9]]]],[[164,142,30]],[[164,142,30]],[[]],[[164,62]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[200,164],0,[164],[[164,62]],[[164,36,201]],[[164,202]],[[164,203,204]],[[164,205,9]],[[164,185]],[[164,9,9,9,9]],[[164,9]],[[164,36,203]],[[164,128,128,128,128,128,128]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],206],[[],207],[[],207],[[],207],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[],15],[[],15],[[],15],[[],15],0,[[206,206],206],[[207,207],207],[[206,206]],[[207,207]],[[206,206],206],[[207,207],207],[[206,206]],[[207,207]],[206,9],[207,30],0,0,[[206,206],206],[[207,207],207],[[206,206]],[[207,207]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[208,208],24],[[208,208,24,209]],[210,210],[206,206],[207,207],[208,208],[198,198],[112,112],[211,211],[199,199],[113,113],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[206,206],23],[[207,207],23],[206,206],[207,207],0,[[206,206],24],[[207,207],24],[[],210],[[],207],[[],208],[[],112],[[],199],[[],113],0,[198,212],0,[[206,206],206],[[207,207],207],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],208],[[],208],[15,24],[15,24],[15,24],[15,24],[15,24],[25],[25],[25],[25],[25],[[],206],[[],207],[[210,210],24],[[206,206],24],[[207,207],24],[[208,208],24],[[198,198],24],[[],24],[[],24],[[],24],[[],24],[[],24],[206],[207],0,[[210,26],[[2,[213]]]],[[206,26],[[2,[213]]]],[[206,26],[[2,[213]]]],[[206,26],[[2,[213]]]],[[206,26],[[2,[213]]]],[[206,26],[[2,[213]]]],[[207,26],[[2,[213]]]],[[207,26],[[2,[213]]]],[[207,26],[[2,[213]]]],[[207,26],[[2,[213]]]],[[207,26],[[2,[213]]]],[[208,26],[[2,[213]]]],[[198,26],[[2,[213]]]],[[]],[214,206],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[9,[[11,[206]]]],[30,[[11,[207]]]],[9,206],[30,207],[9,206],[30,207],[[],206],[[],207],[[],30],[[],30],[[],30],[[],30],[[],30],[210],[206],[207],[208],[198],[[206,206]],[[207,207]],[[206,206],206],[[207,207],207],[[206,206],24],[[207,207],24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[199,24],[206,24],[207,24],[206,24],[207,24],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[206,206],24],[[207,207],24],[[208,208],24],[[198,198],24],[206,206],[207,207],[[206,206],[[11,[23]]]],[[207,207],[[11,[23]]]],0,0,[[206,206]],[[207,207]],0,[[206,206,24]],[[207,207,24]],[[206,206],206],[[207,207],207],[[206,206]],[[207,207]],[[206,206],206],[[207,207],207],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[206,206]],[[207,207]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[206,206],206],[[207,207],207],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[208,208],208],[[208,208],208],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[215,215],[216,216],[75,75],[217,217],[218,218],[219,219],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],215],[[],75],[[],187],[220,187],[221,187],[[],188],[220,188],[221,188],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[217,26],27],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],215],[215,216],[[],75],[128,218],[128,219],0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[]],[[]],[[]],[[]],[222,222],[[]],[[],223],[[]],[[]],[15,24],[25],[[222,222],24],[[],24],0,0,[[222,26],27],[[]],[[]],[[],30],0,[222],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,0,[[108,224]],0,0,[[223,8]],[[]],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,[[],3],[[],3],[[]],[[]],[[],225],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[225,8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[]],[[]],0,[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[108,226],[[226,8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[],227],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[227,8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[],228],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[228,8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[],229],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[229,8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[],230],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[230,8]],[[],2],[[],2],[[],10],[[],11],[230],[[230,106,116,92,103,28]],[[230,106,116,124]],0,[[],3],[[],3],0,[[]],[[]],0,[231,169],[[]],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[113,188,187,24,24,24,24],231],0,[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[232,[171]]]],0,0,[233,233],[166,166],[[]],[[]],0,[[]],[[]],[[]],[[]],0,[[[234,[64]],26],27],[[]],[[]],[[]],[[]],0,0,0,[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[[232,[171]]],33],[182,[[232,[171]]]],[[18,14,30],233],[170,234],0,0,[166],[[[232,[171]],18],13],[[]],[[]],0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[[232,[171]],28,173,14]],[[[232,[171]],124]],0,0,0,0,0,0,0,[[224,235,236],224],[[224,235,235,236],224],[[224,235,235,236],224],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[],224],[[]],[[]],[[[5,[236]]],[[2,[[5,[236]],[5,[236]]]]]],[[]],[236,11],[[[7,[236]]],[[2,[[7,[236]],[7,[236]]]]]],[236,11],[[235,235],24],[[]],[[]],[[]],[[224,235],11],[[224,235],11],[235],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[236,24],[224,33],[[],237],[8],[[238,8]],[[237,8]],[[224,8]],[[224,8]],[[224,235,82],224],0,0,0,[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],0,[[],3],[[],3],[[]],[[]],0,[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[[240,[53,49,[239,[53,49]]]],18,[68,[[59,[16]]]]],[[2,[1]]]],[[[240,[53,49,[239,[53,49]]]],18,[77,[75,76]],[68,[9]],78],[[2,[1]]]],[[[240,[53,49,[239,[53,49]]]],18,62],[[2,[1]]]],0,0,0,[[224,[7,[[100,[99]]]]]],0,[[[240,[53,49,[239,[53,49]]]],18],[[2,[1]]]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[7,[[7,[3]]]],0,[[[7,[[100,[99]]]]],[[241,[99]]]],[[[241,[99]],8]],[[],2],[[],2],[[],10],[[],11],0,[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[7,[[7,[3]]]],0,[[[7,[[100,[99]]]]],[[242,[99]]]],[[[242,[99]],92,18,181],[[2,[1]]]],[[[242,[99]],92,103,28]],[[[242,[99]],8]],[[47,239],243],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[],15],[[[245,[244]]]],[[[245,[246]]]],[[[245,[247]]]],[[[245,[248]]]],[[[245,[249]]]],[[[245,[250]]]],[[[245,[251]]]],[[[245,[252]]]],[[[245,[253]]]],[[[245,[254]]]],[[[245,[255]]]],[[[245,[256]]]],[[[245,[257]]]],[[[245,[258]]]],[[[245,[259]]]],[[[245,[260]]]],[[[245,[261]]]],[[[245,[262]]]],[[[245,[263]]]],[[[245,[264]]]],[[[245,[265]]]],[[[245,[266]]]],[[[245,[267]]]],[[[245,[268]]]],[[[245,[269]]]],[[[245,[270]]]],[[[245,[271]]]],[[[245,[272]]]],[[[245,[273]]]],[[[245,[274]]]],[[[245,[275]]]],[[[245,[276]]]],[[[245,[277]]]],[[[245,[278]]]],[[[245,[279]]]],[[[245,[280]]]],[[[281,[265]]]],[[[281,[244]]]],[[[281,[256]]]],[[[281,[248]]]],[[[281,[280]]]],[[[281,[249]]]],[[[281,[257]]]],[[[281,[252]]]],[[[281,[253]]]],[[[281,[259]]]],[[[281,[273]]]],[[[281,[262]]]],[[[281,[261]]]],[[[281,[279]]]],[[[281,[263]]]],[[[281,[274]]]],[[[281,[247]]]],[[[281,[255]]]],[[[281,[267]]]],[[[281,[254]]]],[[[281,[258]]]],[[[281,[276]]]],[[[281,[269]]]],[[[281,[268]]]],[[[281,[264]]]],[[[281,[246]]]],[[[281,[260]]]],[[[281,[272]]]],[[[281,[271]]]],[[[281,[251]]]],[[[281,[250]]]],[[[281,[270]]]],[[[281,[277]]]],[[[281,[266]]]],[[[281,[275]]]],[[[281,[278]]]],[257],[271],[261],[269],[252],[258],[247],[260],[250],[273],[256],[275],[266],[251],[276],[274],[267],[277],[254],[249],[270],[265],[253],[244],[263],[278],[248],[262],[280],[279],[246],[268],[255],[264],[272],[259],[[[245,[262]]]],[[[245,[276]]]],[[[245,[265]]]],[[[245,[253]]]],[[[245,[274]]]],[[[245,[270]]]],[[[245,[280]]]],[[[245,[266]]]],[[[245,[264]]]],[[[245,[257]]]],[[[245,[249]]]],[[[245,[255]]]],[[[245,[256]]]],[[[245,[246]]]],[[[245,[268]]]],[[[245,[250]]]],[[[245,[267]]]],[[[245,[261]]]],[[[245,[271]]]],[[[245,[260]]]],[[[245,[269]]]],[[[245,[248]]]],[[[245,[254]]]],[[[245,[252]]]],[[[245,[277]]]],[[[245,[259]]]],[[[245,[273]]]],[[[245,[247]]]],[[[245,[244]]]],[[[245,[275]]]],[[[245,[263]]]],[[[245,[272]]]],[[[245,[278]]]],[[[245,[251]]]],[[[245,[258]]]],[[[245,[279]]]],[[[281,[246]]]],[[[281,[259]]]],[[[281,[275]]]],[[[281,[255]]]],[[[281,[274]]]],[[[281,[247]]]],[[[281,[261]]]],[[[281,[257]]]],[[[281,[252]]]],[[[281,[270]]]],[[[281,[253]]]],[[[281,[278]]]],[[[281,[249]]]],[[[281,[277]]]],[[[281,[258]]]],[[[281,[260]]]],[[[281,[250]]]],[[[281,[268]]]],[[[281,[263]]]],[[[281,[248]]]],[[[281,[280]]]],[[[281,[254]]]],[[[281,[279]]]],[[[281,[251]]]],[[[281,[256]]]],[[[281,[264]]]],[[[281,[267]]]],[[[281,[265]]]],[[[281,[272]]]],[[[281,[273]]]],[[[281,[262]]]],[[[281,[271]]]],[[[281,[244]]]],[[[281,[276]]]],[[[281,[269]]]],[[[281,[266]]]],[257],[271],[261],[269],[252],[258],[247],[260],[250],[273],[256],[275],[266],[251],[276],[274],[267],[277],[254],[249],[270],[265],[253],[244],[263],[278],[248],[262],[280],[279],[246],[268],[255],[264],[272],[259],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[245,245],[281,281],[282,282],[257,257],[271,271],[261,261],[269,269],[252,252],[258,258],[247,247],[260,260],[250,250],[273,273],[256,256],[275,275],[266,266],[251,251],[276,276],[274,274],[267,267],[277,277],[254,254],[249,249],[270,270],[265,265],[253,253],[244,244],[263,263],[278,278],[248,248],[262,262],[280,280],[279,279],[246,246],[268,268],[255,255],[264,264],[272,272],[259,259],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[257,257],23],[[271,271],23],[[261,261],23],[[269,269],23],[[252,252],23],[[258,258],23],[[247,247],23],[[260,260],23],[[250,250],23],[[273,273],23],[[256,256],23],[[275,275],23],[[266,266],23],[[251,251],23],[[276,276],23],[[274,274],23],[[267,267],23],[[277,277],23],[[254,254],23],[[249,249],23],[[270,270],23],[[265,265],23],[[253,253],23],[[244,244],23],[[263,263],23],[[278,278],23],[[248,248],23],[[262,262],23],[[280,280],23],[[279,279],23],[[246,246],23],[[268,268],23],[[255,255],23],[[264,264],23],[[272,272],23],[[259,259],23],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[15,24],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[25],[[245,245],24],[[281,281],24],[[282,282],24],[[257,257],24],[[271,271],24],[[261,261],24],[[269,269],24],[[252,252],24],[[258,258],24],[[247,247],24],[[260,260],24],[[250,250],24],[[273,273],24],[[256,256],24],[[275,275],24],[[266,266],24],[[251,251],24],[[276,276],24],[[274,274],24],[[267,267],24],[[277,277],24],[[254,254],24],[[249,249],24],[[270,270],24],[[265,265],24],[[253,253],24],[[244,244],24],[[263,263],24],[[278,278],24],[[248,248],24],[[262,262],24],[[280,280],24],[[279,279],24],[[246,246],24],[[268,268],24],[[255,255],24],[[264,264],24],[[272,272],24],[[259,259],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[],24],[[245,26],[[2,[213]]]],[[281,26],[[2,[213]]]],[[282,26],[[2,[213]]]],[[257,26],[[2,[213]]]],[[271,26],[[2,[213]]]],[[261,26],[[2,[213]]]],[[269,26],[[2,[213]]]],[[252,26],[[2,[213]]]],[[258,26],[[2,[213]]]],[[247,26],[[2,[213]]]],[[260,26],[[2,[213]]]],[[250,26],[[2,[213]]]],[[273,26],[[2,[213]]]],[[256,26],[[2,[213]]]],[[275,26],[[2,[213]]]],[[266,26],[[2,[213]]]],[[251,26],[[2,[213]]]],[[276,26],[[2,[213]]]],[[274,26],[[2,[213]]]],[[267,26],[[2,[213]]]],[[277,26],[[2,[213]]]],[[254,26],[[2,[213]]]],[[249,26],[[2,[213]]]],[[270,26],[[2,[213]]]],[[265,26],[[2,[213]]]],[[253,26],[[2,[213]]]],[[244,26],[[2,[213]]]],[[263,26],[[2,[213]]]],[[278,26],[[2,[213]]]],[[248,26],[[2,[213]]]],[[262,26],[[2,[213]]]],[[280,26],[[2,[213]]]],[[279,26],[[2,[213]]]],[[246,26],[[2,[213]]]],[[268,26],[[2,[213]]]],[[255,26],[[2,[213]]]],[[264,26],[[2,[213]]]],[[272,26],[[2,[213]]]],[[259,26],[[2,[213]]]],[[],[[245,[257]]]],[[],[[245,[268]]]],[[],[[245,[262]]]],[[],[[245,[269]]]],[[],[[245,[279]]]],[[],[[245,[251]]]],[[],[[245,[250]]]],[[],[[245,[260]]]],[[],[[245,[256]]]],[[],[[245,[258]]]],[[],[[245,[276]]]],[[],[[245,[248]]]],[[],[[245,[265]]]],[[],[[245,[247]]]],[[],[[245,[255]]]],[[],[[245,[274]]]],[[],[[245,[254]]]],[[],[[245,[246]]]],[[],[[245,[277]]]],[[],[[245,[249]]]],[[],[[245,[263]]]],[[]],[[],[[245,[264]]]],[283,[[245,[[257,[128]]]]]],[283,[[245,[[257,[13]]]]]],[283,[[245,[[257,[16]]]]]],[[],[[245,[272]]]],[[],[[245,[253]]]],[[],[[245,[270]]]],[[],[[245,[280]]]],[[],[[245,[259]]]],[[],[[245,[275]]]],[[],[[245,[273]]]],[[],[[245,[244]]]],[[],[[245,[278]]]],[[],[[245,[261]]]],[[],[[245,[266]]]],[[],[[245,[271]]]],[[],[[245,[267]]]],[[],[[245,[252]]]],[[],[[281,[271]]]],[[],[[281,[261]]]],[[],[[281,[265]]]],[[],[[281,[275]]]],[[],[[281,[250]]]],[[],[[281,[254]]]],[[],[[281,[259]]]],[[],[[281,[280]]]],[[],[[281,[268]]]],[[],[[281,[276]]]],[[],[[281,[251]]]],[[],[[281,[264]]]],[[],[[281,[266]]]],[[],[[281,[247]]]],[[],[[281,[253]]]],[[],[[281,[258]]]],[[],[[281,[277]]]],[[],[[281,[267]]]],[[],[[281,[260]]]],[[],[[281,[252]]]],[[],[[281,[270]]]],[[],[[281,[272]]]],[[],[[281,[269]]]],[[],[[281,[263]]]],[[],[[281,[255]]]],[[],[[281,[274]]]],[[],[[281,[249]]]],[[],[[281,[248]]]],[[],[[281,[256]]]],[[],[[281,[278]]]],[[],[[281,[262]]]],[[],[[281,[279]]]],[[],[[281,[273]]]],[[],[[281,[257]]]],[[],[[281,[244]]]],[[],[[281,[246]]]],[[]],[[]],[[[281,[257]]],257],[[],257],[[]],[[[245,[257]]],257],[283,[[257,[13]]]],[283,[[257,[16]]]],[283,[[257,[128]]]],[[[281,[271]]],271],[[[245,[271]]],271],[[]],[[],271],[[[281,[261]]],261],[[]],[[[245,[261]]],261],[[],261],[[]],[[[245,[269]]],269],[[[281,[269]]],269],[[],269],[[]],[[],252],[[[245,[252]]],252],[[[281,[252]]],252],[[]],[[],258],[[[281,[258]]],258],[[[245,[258]]],258],[[[281,[247]]],247],[[[245,[247]]],247],[[]],[[],247],[[[281,[260]]],260],[[[245,[260]]],260],[[],260],[[]],[[],250],[[]],[[[281,[250]]],250],[[[245,[250]]],250],[[[281,[273]]],273],[[[245,[273]]],273],[[]],[[],273],[[],256],[[[281,[256]]],256],[[[245,[256]]],256],[[]],[[[245,[275]]],275],[[[281,[275]]],275],[[]],[[],275],[[],266],[[[281,[266]]],266],[[[245,[266]]],266],[[]],[[[281,[251]]],251],[[],251],[[]],[[[245,[251]]],251],[[[245,[276]]],276],[[],276],[[]],[[[281,[276]]],276],[[[281,[274]]],274],[[[245,[274]]],274],[[]],[[],274],[[[245,[267]]],267],[[]],[[],267],[[[281,[267]]],267],[[],277],[[[245,[277]]],277],[[[281,[277]]],277],[[]],[[]],[[[245,[254]]],254],[[[281,[254]]],254],[[],254],[[[281,[249]]],249],[[[245,[249]]],249],[[]],[[],249],[[[281,[270]]],270],[[],270],[[]],[[[245,[270]]],270],[[[281,[265]]],265],[[],265],[[[245,[265]]],265],[[]],[[]],[[],253],[[[245,[253]]],253],[[[281,[253]]],253],[[[245,[244]]],244],[[]],[[],244],[[[281,[244]]],244],[[],263],[[[281,[263]]],263],[[[245,[263]]],263],[[]],[[[245,[278]]],278],[[],278],[[]],[[[281,[278]]],278],[[[281,[248]]],248],[[]],[[[245,[248]]],248],[[],248],[[]],[[[245,[262]]],262],[[],262],[[[281,[262]]],262],[[[281,[280]]],280],[[],280],[[[245,[280]]],280],[[]],[[[245,[279]]],279],[[],279],[[[281,[279]]],279],[[]],[[[281,[246]]],246],[[[245,[246]]],246],[[],246],[[]],[[[281,[268]]],268],[[[245,[268]]],268],[[],268],[[]],[[],255],[[[281,[255]]],255],[[]],[[[245,[255]]],255],[[[245,[264]]],264],[[],264],[[]],[[[281,[264]]],264],[[[245,[272]]],272],[[[281,[272]]],272],[[]],[[],272],[[[281,[259]]],259],[[[245,[259]]],259],[[],259],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],[[],30],0,0,0,0,[245],[281],[282],[257],[271],[261],[269],[252],[258],[247],[260],[250],[273],[256],[275],[266],[251],[276],[274],[267],[277],[254],[249],[270],[265],[253],[244],[263],[278],[248],[262],[280],[279],[246],[268],[255],[264],[272],[259],0,0,[[[245,[263]]]],[[[245,[268]]]],[[[245,[254]]]],[[[245,[262]]]],[[[245,[276]]]],[[[245,[272]]]],[[[245,[251]]]],[[[245,[248]]]],[[[245,[244]]]],[[[245,[255]]]],[[[245,[270]]]],[[[245,[258]]]],[[[245,[277]]]],[[[245,[266]]]],[[[245,[271]]]],[[[245,[275]]]],[[[245,[280]]]],[[[245,[264]]]],[[[245,[259]]]],[[[245,[250]]]],[[[245,[260]]]],[[[245,[278]]]],[[[245,[265]]]],[[[245,[247]]]],[[[245,[249]]]],[[[245,[269]]]],[[]],[[[245,[252]]]],[[[245,[256]]]],[[[245,[274]]]],[[[245,[253]]]],[[[245,[257]]]],[[[245,[267]]]],[[[245,[261]]]],[[[245,[246]]]],[[[245,[279]]]],[[[245,[273]]]],[[[281,[259]]]],[[[281,[266]]]],[[[281,[269]]]],[[[281,[254]]]],[[[281,[276]]]],[[[281,[267]]]],[[[281,[261]]]],[[[281,[255]]]],[[[281,[268]]]],[[[281,[273]]]],[[[281,[263]]]],[[[281,[274]]]],[[[281,[251]]]],[[[281,[278]]]],[[[281,[260]]]],[[[281,[244]]]],[[[281,[264]]]],[[]],[[[281,[250]]]],[[[281,[256]]]],[[[281,[249]]]],[[[281,[262]]]],[[[281,[270]]]],[[[281,[275]]]],[[[281,[252]]]],[[[281,[248]]]],[[[281,[253]]]],[[[281,[257]]]],[[[281,[265]]]],[[[281,[279]]]],[[[281,[247]]]],[[[281,[280]]]],[[[281,[271]]]],[[[281,[258]]]],[[[281,[272]]]],[[[281,[277]]]],[[[281,[246]]]],[[]],[257],[[]],[[]],[271],[[]],[261],[[]],[269],[[]],[252],[258],[[]],[247],[[]],[260],[[]],[250],[[]],[[]],[273],[[]],[256],[275],[[]],[266],[[]],[251],[[]],[276],[[]],[274],[[]],[267],[[]],[[]],[277],[[]],[254],[249],[[]],[270],[[]],[[]],[265],[[]],[253],[[]],[244],[263],[[]],[[]],[278],[248],[[]],[262],[[]],[280],[[]],[279],[[]],[246],[[]],[268],[[]],[255],[[]],[264],[[]],[272],[[]],[259],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[245,245],24],[[281,281],24],[[257,257],24],[[271,271],24],[[261,261],24],[[269,269],24],[[252,252],24],[[258,258],24],[[247,247],24],[[260,260],24],[[250,250],24],[[273,273],24],[[256,256],24],[[275,275],24],[[266,266],24],[[251,251],24],[[276,276],24],[[274,274],24],[[267,267],24],[[277,277],24],[[254,254],24],[[249,249],24],[[270,270],24],[[265,265],24],[[253,253],24],[[244,244],24],[[263,263],24],[[278,278],24],[[248,248],24],[[262,262],24],[[280,280],24],[[279,279],24],[[246,246],24],[[268,268],24],[[255,255],24],[[264,264],24],[[272,272],24],[[259,259],24],[282,36],[[257,257],[[11,[23]]]],[[271,271],[[11,[23]]]],[[261,261],[[11,[23]]]],[[269,269],[[11,[23]]]],[[252,252],[[11,[23]]]],[[258,258],[[11,[23]]]],[[247,247],[[11,[23]]]],[[260,260],[[11,[23]]]],[[250,250],[[11,[23]]]],[[273,273],[[11,[23]]]],[[256,256],[[11,[23]]]],[[275,275],[[11,[23]]]],[[266,266],[[11,[23]]]],[[251,251],[[11,[23]]]],[[276,276],[[11,[23]]]],[[274,274],[[11,[23]]]],[[267,267],[[11,[23]]]],[[277,277],[[11,[23]]]],[[254,254],[[11,[23]]]],[[249,249],[[11,[23]]]],[[270,270],[[11,[23]]]],[[265,265],[[11,[23]]]],[[253,253],[[11,[23]]]],[[244,244],[[11,[23]]]],[[263,263],[[11,[23]]]],[[278,278],[[11,[23]]]],[[248,248],[[11,[23]]]],[[262,262],[[11,[23]]]],[[280,280],[[11,[23]]]],[[279,279],[[11,[23]]]],[[246,246],[[11,[23]]]],[[268,268],[[11,[23]]]],[[255,255],[[11,[23]]]],[[264,264],[[11,[23]]]],[[272,272],[[11,[23]]]],[[259,259],[[11,[23]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],[[],10],0,[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[284,284],[285,285],[286,286],[287,287],[174,174],[[]],[[]],[[]],[[]],[[]],[[],174],[[],[[2,[284]]]],[[],[[2,[285]]]],[[],[[2,[286]]]],[[],[[2,[287]]]],[[],[[2,[174]]]],[[]],[[]],[[]],[[]],[[]],0,[[284,26],27],[[285,26],27],[[286,26],27],[[287,26],27],[[174,26],27],[[]],[[]],[[]],[[]],[[]],[287,[[11,[[245,[[257,[128]]]]]]]],0,0,[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,0,0,0,0,[284,2],[285,2],[286,2],[287,2],[174,2],0,0,[[]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],0,[[],10],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],0,[[]],[[]],[[]],[[]],[[]],[[]],0,[32,32],[288,288],[289,289],[[]],[[]],[[]],[[],32],[[],[[2,[32]]]],[[],[[2,[288]]]],[[],[[2,[289]]]],[[]],[[]],[[]],[[32,26],27],[[288,26],27],[[289,26],27],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],0,0,0,[32,2],[288,2],[289,2],0,[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],0,0,0,[[],3],[[],3],[[]],[[]],0,[103,103],[[]],[[],103],[[],[[2,[103]]]],[[]],[[103,26],27],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],0,0,0,0,[103,2],0,[[]],[[],2],[[],2],[[],10],[[],11],0,0,0,0,0,0,0,0,[[]],[[]],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],0,[[[77,[52,52]]],[[77,[52,52]]]],[[]],[[]],[[]],[[],77],[[]],[[]],[[[290,[172,172]]],[[77,[172,172]]]],[9,77],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[291,292],75],[[291,293],75],[[],[[2,[1]]]],[[]],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],0,0,0,0,[[],3],[[],3],[[]],[[]],0,0,[[],[[298,[[0,[294,[296,[295]],297]]]]]],[[]],[[[298,[[0,[294,[296,[295]],297]]]],24]],[[[298,[[0,[294,[296,[295]],297]]]],30],299],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[7,[[7,[3]]]],0,[[[298,[[0,[294,[296,[295]],297]]]],24,36,36],299],[[[298,[[0,[294,[296,[295]],297]]]],24,36],299],[[[298,[[0,[294,[296,[295]],297]]]],36,36],299],[[[298,[[0,[294,[296,[295]],297]]]],36],299],[[[298,[[0,[294,[296,[295]],297]]]],36,36],299],[[[298,[[0,[294,[296,[295]],297]]]],36],299],[[[298,[[0,[294,[296,[295]],297]]]],36,36],299],[[[298,[[0,[294,[296,[295]],297]]]],36],299],0,0,[[[298,[[0,[294,[296,[295]],297]]]],36],299],[[[298,[[0,[294,[296,[295]],297]]]],36],299],[[[298,[[0,[294,[296,[295]],297]]]],24,36,36],299],[[[298,[[0,[294,[296,[295]],297]]]],24,36],299],[[[298,[[0,[294,[296,[295]],297]]]]]],[[[298,[[0,[294,[296,[295]],297]]]]]],[[],2],[[],2],[[],10],[[],11],[[[298,[[0,[294,[296,[295]],297]]]]]],[[[298,[[0,[294,[296,[295]],297]]]],16,16,36],299],0,0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],15],[300,24],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[300],[301],[78],[300,300],[301,301],[78,78],[302,302],[[]],[[]],[[]],[[]],[[302,302],23],[[],300],[[],301],[[],78],[[],302],[300,16],0,[[]],[[]],[[]],[[]],[15,24],[25],[300,36],[301,36],[78,36],[[300,300],24],[[301,301],24],[[78,78],24],[[302,302],24],[[],24],[78,9],0,0,[300,128],0,[[300,26],[[2,[213]]]],[[301,26],[[2,[213]]]],[[78,26],[[2,[213]]]],[[302,26],[[2,[213]]]],[[]],[[]],[[]],[[]],[35,[[11,[302]]]],0,[[],30],[302],[301,30],0,[300,303],0,[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[35,24],0,0,[[300,300],24],[[301,301],24],[[78,78],24],[[302,302],[[11,[23]]]],[78,[[2,[63]]]],[301,[[2,[63]]]],[[301,302]],[300,303],0,[300,62],0,0,[[],[[2,[[304,[16]],63]]]],[[],[[2,[301,63]]]],[[]],[[]],[[]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[301,302],0,[[],10],[[],10],[[],10],[[],10],[300,30],0,[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[],305],[305],[305],[305,24],[[]],[[]],0,0,[[]],[[]],0,0,0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[306,24],0,0,0,0,0,0,[[],24],[[],306],[[],305],0,0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[[306,18]],[305],0,[[],3],[[],3],[[]],[[]],[[]],0,[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[],307],0,[[],2],[[],2],[[],10],[[],11],[307],[[],308],[[308,13],68],0,0,[[],3],[[],15],[15,24],[25],0,0,0,0,0,[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[33,11],[309,309],[[]],[[309,309],23],0,[[35,35],35],[[35,35],35],[[35,35],35],[[]],[[]],[[]],[[]],[15,24],[[309,309],24],[[],24],[[[311,[310]],26],27],[[[34,[312]],26],27],[[[313,[312]],26],27],[[309,26],27],[[]],[[]],[[]],[[]],[[[29,[310]],[126,[310]]],[[311,[310]]]],[[[29,[310]],[29,[310]],[29,[310]]],[[11,[[311,[310]]]]]],[[[311,[310]],126,126],[[11,[310]]]],[[[311,[310]],313],[[68,[[126,[310]]]]]],[[[311,[310]],313],[[68,[[126,[310]]]]]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[[0,[314,315]],[0,[314,315]]],[[0,[314,315]]]],0,0,[[[0,[314,315]],[0,[314,315]]],[[0,[314,315]]]],0,0,0,[[[126,[310]],310],[[311,[310]]]],[[[316,[312]],[316,[312]]],[[34,[312]]]],[[[29,[312]],[29,[312]]],[[313,[312]]]],[[309,309],[[11,[23]]]],[[[34,[312]]]],[[[313,[312]]]],[[]],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],10],[[],10],[[],11],[[],11],[[],11],[[],11],0,0,0,0,0,0,[[],3],[[],3],[[],3],[[]],[[]],[192,192],[[]],[[]],[[]],[15,24],[[192,192],24],[[],24],[[]],[192,9],0,[[],30],[[]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[[192,192],24],[[9,9],[[11,[192]]]],[[]],[[]],[[],192],[[]],[[],2],[[],2],[[],10],[[],11],[192,9],0,0,0,[[],3],[[],3],[[],3],[[],3],[[]],[[]],[[]],[[]],[317,122],0,[317,122],[317,[[11,[28]]]],[317,24],[317,24],[[]],[[]],[[]],[[]],[[]],[[]],[[[5,[4]]],[[5,[3,4]]]],[[[5,[4]]],[[5,[3,4]]]],[6,[[6,[3]]]],[6,[[6,[3]]]],[7,[[7,[3]]]],[7,[[7,[3]]]],[[192,17,14,[130,[[318,[16]]]]],319],[[192,17,14,[130,[[318,[16]]]],[130,[[121,[16]]]]],317],[[192,20,14,[130,[[318,[16]]]]],319],0,[[317,9,9]],0,[[],2],[[],2],[[],2],[[],2],[[],10],[[],10],[[],11],[[],11],[317],[[317,14]],[317,124],[319,317],0,[319,317],[317,12],[317,14],0],"p":[[4,"Error"],[4,"Result"],[8,"Any"],[3,"Global"],[3,"Box"],[3,"Arc"],[3,"Rc"],[3,"MapContext"],[15,"u32"],[3,"TypeId"],[4,"Option"],[3,"ZoomLevel"],[15,"u8"],[3,"Zoom"],[8,"DynEq"],[15,"f64"],[3,"WorldCoords"],[3,"WorldTileCoords"],[3,"Quadkey"],[3,"LatLon"],[3,"InnerCoords"],[3,"TileCoords"],[4,"Ordering"],[15,"bool"],[8,"Hasher"],[3,"Formatter"],[6,"Result"],[3,"ViewRegion"],[3,"Point3"],[15,"u64"],[3,"AlignedWorldTileCoords"],[4,"TileAddressingScheme"],[8,"Iterator"],[3,"Aabb2"],[15,"i32"],[15,"usize"],[3,"String"],[3,"Matrix4"],[3,"Error"],[4,"Error"],[3,"SendError"],[4,"TessellationError"],[3,"RequestDeviceError"],[4,"SurfaceError"],[3,"Map"],[3,"TileRequest"],[4,"Input"],[6,"AsyncProcedure"],[8,"HttpClient"],[8,"Scheduler"],[3,"SchedulerAsyncProcedureCall"],[8,"Clone"],[8,"Transferables"],[4,"Message"],[3,"SchedulerContext"],[3,"DefaultTransferables"],[3,"SourceClient"],[3,"IndexProcessor"],[3,"IndexedGeometry"],[3,"RTree"],[4,"ExactGeometry"],[15,"str"],[4,"GeozeroError"],[8,"Debug"],[3,"LineString"],[3,"HashMap"],[3,"Polygon"],[3,"Vec"],[3,"GeometryIndex"],[4,"TileIndex"],[4,"ColumnValue"],[3,"PipelineEnd"],[15,"never"],[3,"ClosureProcessable"],[3,"ShaderVertex"],[6,"IndexDataType"],[3,"OverAlignedVertexBuffer"],[3,"Layer"],[3,"PipelineContext"],[3,"DataPipeline"],[8,"PipelineProcessor"],[8,"FnOnce"],[8,"Send"],[3,"NopScheduler"],[3,"HttpSourceClient"],[8,"Future"],[3,"Pin"],[8,"Processable"],[3,"ParseTile"],[3,"IndexLayer"],[3,"TessellateLayer"],[3,"TileRepository"],[4,"StoredLayer"],[4,"TileStatus"],[3,"StoredTile"],[3,"DefaultTileTessellated"],[3,"DefaultUnavailableLayer"],[3,"DefaultTessellatedLayer"],[8,"Environment"],[3,"Kernel"],[3,"KernelBuilder"],[3,"RendererBuilder"],[3,"Style"],[3,"ReqwestHttpClient"],[3,"TokioScheduler"],[3,"RenderState"],[4,"Eventually"],[3,"RenderGraph"],[4,"RenderGraphError"],[3,"Renderer"],[3,"Device"],[3,"WgpuSettings"],[3,"RendererSettings"],[3,"Instance"],[3,"Surface"],[3,"Queue"],[6,"RequestAdapterOptions"],[3,"UninitializedRenderer"],[4,"InitializationResult"],[3,"InitializedRenderer"],[3,"Rad"],[3,"Camera"],[3,"Perspective"],[3,"ViewProjection"],[3,"Vector4"],[3,"Vector3"],[3,"ModelViewProjection"],[15,"f32"],[3,"InvertedViewProjection"],[8,"Into"],[3,"Vector2"],[4,"RenderError"],[3,"RenderGraphContext"],[3,"RenderContext"],[4,"NodeRunError"],[4,"RunSubGraphError"],[4,"OutputSlotError"],[4,"InputSlotError"],[3,"RunSubGraph"],[4,"SlotLabel"],[4,"SlotValue"],[3,"Buffer"],[3,"Sampler"],[4,"TextureView"],[3,"SlotInfos"],[3,"NodeState"],[4,"Cow"],[4,"Edge"],[4,"EdgeExistence"],[3,"NodeId"],[4,"NodeLabel"],[8,"AsRef"],[3,"GraphInputNode"],[3,"SlotInfo"],[3,"Edges"],[8,"Node"],[3,"EmptyNode"],[8,"Error"],[4,"SlotType"],[8,"IntoIterator"],[4,"RenderGraphRunnerError"],[3,"MainPassNode"],[3,"MainPassDriverNode"],[3,"TrackedRenderPass"],[4,"RenderCommandResult"],[3,"TileInView"],[8,"PhaseItem"],[3,"RenderPhase"],[3,"RenderPipelineDescriptor"],[6,"BufferAddress"],[8,"Queue"],[8,"Pod"],[3,"BufferPool"],[3,"StyleLayer"],[3,"RingIndex"],[3,"IndexEntry"],[3,"Range"],[3,"BackingBuffer"],[4,"BackingBufferType"],[3,"VecDeque"],[3,"HashSet"],[3,"BackingBufferDescriptor"],[3,"BindGroupLayout"],[3,"Globals"],[3,"RenderPipeline"],[3,"VertexBufferLayout"],[3,"FragmentState"],[3,"VertexState"],[3,"WindowHead"],[4,"Head"],[3,"BufferDimensions"],[3,"WindowSize"],[3,"Surface"],[3,"TextureView"],[3,"SurfaceTexture"],[3,"Texture"],[6,"Label"],[4,"TextureFormat"],[3,"Msaa"],[3,"RenderPass"],[3,"BindGroup"],[3,"Color"],[3,"BufferSlice"],[4,"IndexFormat"],[3,"ShaderStages"],[3,"Backends"],[3,"Features"],[3,"Limits"],[8,"FnMut"],[4,"PowerPreference"],[4,"SurfaceType"],[3,"TextureFormatInfo"],[3,"Error"],[4,"Backend"],[3,"ShaderCamera"],[3,"ShaderGlobals"],[3,"ShaderFeatureStyle"],[3,"ShaderLayerMetadata"],[3,"ShaderTileMetadata"],[3,"TileMaskShader"],[3,"TileShader"],[4,"RenderStageLabel"],[3,"PrepareStage"],[3,"Schedule"],[3,"ExtractStage"],[3,"GraphRunnerStage"],[3,"PhaseSortStage"],[3,"QueueStage"],[3,"ResourceStage"],[3,"UploadStage"],[3,"TilePipeline"],[3,"TileViewPattern"],[3,"TileShape"],[3,"BackingBuffer"],[8,"StageLabel"],[8,"Stage"],[3,"MultiStage"],[3,"NopStage"],[8,"Context"],[3,"HeadedPipelineProcessor"],[3,"PopulateTileStore"],[3,"RequestStage"],[6,"AsyncProcedureFuture"],[3,"CieXYZ"],[3,"Alpha"],[3,"YCbCr"],[3,"Luminance"],[3,"Oklab"],[3,"EncodedBt2100PQ"],[3,"AcesCg"],[3,"EncodedDisplayP3"],[3,"GenericColor3"],[3,"ICtCpHLG"],[3,"Bt2100"],[3,"YPbPr"],[3,"AcesCc"],[3,"EncodedSrgb"],[3,"GenericColor1"],[3,"YCxCz"],[3,"Luma"],[3,"EncodedRec709"],[3,"Oklch"],[3,"CieLab"],[3,"YPrimePbPr"],[3,"ICtCpPQ"],[3,"DisplayP3"],[3,"Bt2020"],[3,"YPrimeCbCr"],[3,"Rec709"],[3,"EncodedBt2100HLG"],[3,"LinearSrgb"],[3,"Yuv"],[3,"Aces2065"],[3,"DciXYZPrime"],[3,"AcesCct"],[3,"DciP3"],[3,"EncodedBt2020"],[3,"CieLCh"],[3,"Hsv"],[3,"Hsl"],[3,"PremultipliedAlpha"],[4,"Spaces"],[3,"Color"],[3,"BackgroundPaint"],[3,"FillPaint"],[3,"LinePaint"],[4,"LayerPaint"],[3,"VectorSource"],[4,"Source"],[3,"VertexBuffers"],[3,"VertexConstructor"],[3,"StrokeVertex"],[3,"FillVertex"],[8,"Add"],[3,"VertexId"],[8,"From"],[8,"MaxIndex"],[3,"ZeroTessellator"],[6,"Result"],[3,"Value"],[3,"Feature"],[4,"GeomType"],[15,"i64"],[4,"Geometry"],[3,"ChangeObserver"],[3,"MinMaxBoundingBox"],[3,"FPSMeter"],[3,"Grid"],[3,"FloatOrd"],[8,"BaseFloat"],[3,"Plane"],[8,"BaseNum"],[3,"Aabb3"],[8,"PartialOrd"],[8,"Copy"],[3,"Point2"],[3,"ViewState"],[3,"Deg"],[3,"World"],[8,"Tessellated"],[13,"Network"],[13,"Tesselation"],[13,"Render"],[13,"Generic"],[8,"EventLoopConfig"],[8,"EventLoop"],[8,"EventLoopProxy"],[8,"AsyncProcedureCall"],[13,"TileRequest"],[13,"TileTessellated"],[13,"UnavailableLayer"],[13,"TessellatedLayer"],[13,"Polygon"],[13,"LineString"],[13,"Linear"],[13,"Spatial"],[13,"TessellatedLayer"],[13,"UnavailableLayer"],[8,"TileTessellated"],[8,"UnavailableLayer"],[8,"TessellatedLayer"],[4,"MapContextState"],[13,"Ready"],[13,"Pending"],[13,"Initialized"],[13,"Uninizalized"],[13,"Surface"],[13,"Graph"],[13,"Device"],[8,"HasChanged"],[13,"Initialized"],[13,"SlotEdge"],[13,"NodeEdge"],[13,"InvalidSlot"],[13,"MismatchedSlotType"],[13,"Id"],[13,"Name"],[13,"InputSlotError"],[13,"OutputSlotError"],[13,"RunSubGraphError"],[13,"InvalidSlot"],[13,"MismatchedSlotType"],[13,"InvalidNode"],[13,"InvalidOutputNodeSlot"],[13,"InvalidInputNodeSlot"],[13,"EdgeAlreadyExists"],[13,"EdgeDoesNotExist"],[13,"MismatchedNodeSlots"],[13,"UnconnectedNodeInputSlot"],[13,"NodeInputSlotAlreadyOccupied"],[13,"UnconnectedNodeOutputSlot"],[13,"MissingSubGraph"],[13,"SubGraphHasNoInputs"],[13,"MismatchedInputSlotType"],[13,"MissingInput"],[13,"Index"],[13,"Name"],[13,"Buffer"],[13,"TextureView"],[13,"Sampler"],[3,"RenderGraphRunner"],[13,"NodeRunError"],[13,"MismatchedInputSlotType"],[13,"MissingInput"],[13,"EmptyNodeOutputSlot"],[3,"SetViewBindGroup"],[3,"SetMaskPipeline"],[3,"SetTilePipeline"],[3,"DrawMask"],[3,"DrawTile"],[8,"Draw"],[8,"RenderCommand"],[3,"BufferedTextureHead"],[8,"RenderPipeline"],[13,"Headed"],[13,"Headless"],[13,"TextureView"],[13,"SurfaceTexture"],[13,"Astc"],[8,"Shader"],[8,"ColorInterop"],[8,"ColorType"],[13,"Background"],[13,"Line"],[13,"Fill"],[13,"Vector"],[13,"Raster"],[8,"Align"],[8,"SignificantlyDifferent"],[8,"DynHash"],[8,"MapWindowConfig"],[8,"HeadedMapWindow"],[8,"MapWindow"]]}\ }'); if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/docs/api/source-files.js b/docs/api/source-files.js index 0ff20915..a64cc3c9 100644 --- a/docs/api/source-files.js +++ b/docs/api/source-files.js @@ -1,4 +1,4 @@ var sourcesIndex = JSON.parse('{\ -"maplibre":["",[["io",[],["apc.rs","geometry_index.rs","mod.rs","pipeline.rs","scheduler.rs","source_client.rs","tile_pipelines.rs","tile_repository.rs","transferables.rs"]],["platform",[["noweb",[],["http_client.rs","mod.rs","scheduler.rs","trace.rs"]]],["mod.rs"]],["render",[["graph",[],["context.rs","edge.rs","graph.rs","mod.rs","node.rs","node_slot.rs"]],["render_phase",[],["draw.rs","mod.rs"]],["resource",[],["buffer_pool.rs","globals.rs","mod.rs","pipeline.rs","shader.rs","surface.rs","texture.rs","tracked_render_pass.rs"]],["shaders",[],["mod.rs"]],["stages",[],["extract_stage.rs","graph_runner_stage.rs","mod.rs","phase_sort_stage.rs","queue_stage.rs","resource_stage.rs","upload_stage.rs"]]],["camera.rs","eventually.rs","graph_runner.rs","main_pass.rs","mod.rs","render_commands.rs","settings.rs","tile_pipeline.rs","tile_view_pattern.rs"]],["stages",[],["mod.rs","populate_tile_store_stage.rs","request_stage.rs"]],["style",[],["layer.rs","mod.rs","source.rs","style.rs"]],["tessellation",[],["mod.rs","zero_tessellator.rs"]],["util",[],["fps_meter.rs","grid.rs","label.rs","math.rs","mod.rs"]]],["benchmarking.rs","context.rs","coords.rs","environment.rs","error.rs","lib.rs","map_schedule.rs","schedule.rs","window.rs"]]\ +"maplibre":["",[["io",[],["apc.rs","geometry_index.rs","mod.rs","pipeline.rs","scheduler.rs","source_client.rs","tile_pipelines.rs","tile_repository.rs","transferables.rs"]],["platform",[["noweb",[],["http_client.rs","mod.rs","scheduler.rs","trace.rs"]]],["mod.rs"]],["render",[["graph",[],["context.rs","edge.rs","graph.rs","mod.rs","node.rs","node_slot.rs"]],["render_phase",[],["draw.rs","mod.rs"]],["resource",[],["buffer_pool.rs","globals.rs","mod.rs","pipeline.rs","shader.rs","surface.rs","texture.rs","tracked_render_pass.rs"]],["shaders",[],["mod.rs"]],["stages",[],["extract_stage.rs","graph_runner_stage.rs","mod.rs","phase_sort_stage.rs","queue_stage.rs","resource_stage.rs","upload_stage.rs"]]],["builder.rs","camera.rs","error.rs","eventually.rs","graph_runner.rs","main_pass.rs","mod.rs","render_commands.rs","settings.rs","tile_pipeline.rs","tile_view_pattern.rs"]],["stages",[],["mod.rs","populate_tile_store_stage.rs","request_stage.rs"]],["style",[],["layer.rs","mod.rs","source.rs","style.rs"]],["tessellation",[],["mod.rs","zero_tessellator.rs"]],["util",[],["fps_meter.rs","grid.rs","label.rs","math.rs","mod.rs"]]],["benchmarking.rs","context.rs","coords.rs","environment.rs","error.rs","event_loop.rs","kernel.rs","lib.rs","map.rs","schedule.rs","window.rs","world.rs"]]\ }'); createSourceSidebar(); diff --git a/docs/api/src/maplibre/context.rs.html b/docs/api/src/maplibre/context.rs.html index 4ab29f6c..1c4c5693 100644 --- a/docs/api/src/maplibre/context.rs.html +++ b/docs/api/src/maplibre/context.rs.html @@ -17,172 +17,24 @@ 17 18 19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -
    use std::ops::Div;
    -
    -use cgmath::Angle;
    -
    -use crate::{
    -    coords::{LatLon, ViewRegion, WorldCoords, Zoom, ZoomLevel, TILE_SIZE},
    -    io::tile_repository::TileRepository,
    -    render::camera::{Camera, Perspective, ViewProjection},
    -    util::ChangeObserver,
    -    Renderer, Style, WindowSize,
    +
    use crate::{
    +    render::Renderer,
    +    style::Style,
    +    world::{ViewState, World},
     };
     
    -/// Stores the camera configuration.
    -pub struct ViewState {
    -    pub zoom: ChangeObserver<Zoom>,
    -    pub camera: ChangeObserver<Camera>,
    -    pub perspective: Perspective,
    -}
    -
    -impl ViewState {
    -    pub fn new<P: Into<cgmath::Rad<f64>>>(
    -        window_size: &WindowSize,
    -        position: WorldCoords,
    -        zoom: Zoom,
    -        pitch: f64,
    -        fovy: P,
    -    ) -> Self {
    -        let tile_center = TILE_SIZE / 2.0;
    -        let fovy = fovy.into();
    -        let height = tile_center / (fovy / 2.0).tan();
    -
    -        let camera = Camera::new(
    -            (position.x, position.y, height),
    -            cgmath::Deg(-90.0),
    -            cgmath::Deg(pitch),
    -            window_size.width(),
    -            window_size.height(),
    -        );
    -
    -        let perspective = Perspective::new(
    -            window_size.width(),
    -            window_size.height(),
    -            cgmath::Deg(110.0),
    -            // in tile.vertex.wgsl we are setting each layer's final `z` in ndc space to `z_index`.
    -            // This means that regardless of the `znear` value all layers will be rendered as part
    -            // of the near plane.
    -            // These values have been selected experimentally:
    -            // https://www.sjbaker.org/steve/omniv/love_your_z_buffer.html
    -            1024.0,
    -            2048.0,
    -        );
    -
    -        Self {
    -            zoom: ChangeObserver::new(zoom),
    -            camera: ChangeObserver::new(camera),
    -            perspective,
    -        }
    -    }
    -
    -    pub fn create_view_region(&self) -> Option<ViewRegion> {
    -        self.camera
    -            .view_region_bounding_box(&self.view_projection().invert())
    -            .map(|bounding_box| {
    -                ViewRegion::new(bounding_box, 0, 32, *self.zoom, self.visible_level())
    -            })
    -    }
    -
    -    pub fn view_projection(&self) -> ViewProjection {
    -        self.camera.calc_view_proj(&self.perspective)
    -    }
    -
    -    pub fn visible_level(&self) -> ZoomLevel {
    -        self.zoom.level()
    -    }
    -
    -    pub fn zoom(&self) -> Zoom {
    -        *self.zoom
    -    }
    -
    -    pub fn update_zoom(&mut self, new_zoom: Zoom) {
    -        *self.zoom = new_zoom;
    -        log::info!("zoom: {}", new_zoom);
    -    }
    -}
    -
     /// Stores the context of the map.
     pub struct MapContext {
    -    pub view_state: ViewState,
         pub style: Style,
    -
    -    pub tile_repository: TileRepository,
    +    pub world: World,
         pub renderer: Renderer,
     }
    +
    +impl MapContext {
    +    pub fn resize(&mut self, width: u32, height: u32) {
    +        self.world.view_state.resize(width, height);
    +        self.renderer.resize(width, height)
    +    }
    +}
     
    \ No newline at end of file diff --git a/docs/api/src/maplibre/environment.rs.html b/docs/api/src/maplibre/environment.rs.html index da0ec85d..f79582e6 100644 --- a/docs/api/src/maplibre/environment.rs.html +++ b/docs/api/src/maplibre/environment.rs.html @@ -17,24 +17,48 @@ 17 18 19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31
    use crate::{
    +    event_loop::EventLoopConfig,
         io::{
             apc::AsyncProcedureCall,
    +        scheduler::Scheduler,
    +        source_client::{HttpClient, HttpSourceClient, SourceClient},
             transferables::{
                 DefaultTessellatedLayer, DefaultTileTessellated, DefaultUnavailableLayer, Transferables,
             },
         },
    -    HttpClient, MapWindowConfig, Scheduler,
    +    kernel::Kernel,
    +    window::MapWindowConfig,
     };
     
    +/// The environment defines which types must be injected into maplibre at compile time.
    +/// Essentially, this trait implements the
    +/// [dependency injection](https://en.wikipedia.org/wiki/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.
     pub trait Environment: 'static {
         type MapWindowConfig: MapWindowConfig;
     
    -    type AsyncProcedureCall: AsyncProcedureCall<Self::Transferables, Self::HttpClient>;
    -    type Scheduler: Scheduler;
    -    type HttpClient: HttpClient;
    +    type AsyncProcedureCall: AsyncProcedureCall<Self::HttpClient>;
     
    -    type Transferables: Transferables;
    +    type Scheduler: Scheduler;
    +
    +    type HttpClient: HttpClient;
     }
     
    \ No newline at end of file diff --git a/docs/api/src/maplibre/error.rs.html b/docs/api/src/maplibre/error.rs.html index 8141f039..08be6de9 100644 --- a/docs/api/src/maplibre/error.rs.html +++ b/docs/api/src/maplibre/error.rs.html @@ -37,65 +37,31 @@ 37 38 39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56
    //! Errors which can happen in various parts of the library.
     
    -use std::{fmt, fmt::Formatter, sync::mpsc::SendError};
    +use std::{borrow::Cow, fmt, fmt::Formatter, sync::mpsc::SendError};
     
     use lyon::tessellation::TessellationError;
     
    -#[derive(Debug)]
    -pub enum RenderError {
    -    Surface(wgpu::SurfaceError),
    -}
    -
    -impl fmt::Display for RenderError {
    -    fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
    -        match self {
    -            RenderError::Surface(e) => write!(f, "{}", e),
    -        }
    -    }
    -}
    -
    -impl RenderError {
    -    pub fn should_exit(&self) -> bool {
    -        match self {
    -            RenderError::Surface(e) => match e {
    -                wgpu::SurfaceError::OutOfMemory => true,
    -                _ => false,
    -            },
    -        }
    -    }
    -}
    +use crate::render::{error::RenderError, graph::RenderGraphError};
     
     /// Enumeration of errors which can happen during the operation of the library.
     #[derive(Debug)]
     pub enum Error {
    -    Schedule,
    +    APC,
    +    Scheduler,
         Network(String),
         Tesselation(TessellationError),
         Render(RenderError),
    +    Generic(Cow<'static, str>),
     }
     
    -impl From<wgpu::SurfaceError> for Error {
    -    fn from(e: wgpu::SurfaceError) -> Self {
    -        Error::Render(RenderError::Surface(e))
    +impl<E> From<E> for Error
    +where
    +    E: Into<RenderError>,
    +{
    +    fn from(e: E) -> Self {
    +        Error::Render(e.into())
         }
     }
     
    @@ -107,7 +73,7 @@
     
     impl<T> From<SendError<T>> for Error {
         fn from(_e: SendError<T>) -> Self {
    -        Error::Schedule
    +        Error::Scheduler
         }
     }
     
    diff --git a/docs/api/src/maplibre/event_loop.rs.html b/docs/api/src/maplibre/event_loop.rs.html new file mode 100644 index 00000000..07434de4 --- /dev/null +++ b/docs/api/src/maplibre/event_loop.rs.html @@ -0,0 +1,56 @@ +event_loop.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +
    use crate::{
    +    environment::Environment,
    +    map::Map,
    +    window::{HeadedMapWindow, MapWindowConfig},
    +};
    +
    +pub trait EventLoopConfig {
    +    type EventType: 'static;
    +    type EventLoopProxy: EventLoopProxy<Self::EventType>;
    +
    +    fn create_proxy() -> Self::EventLoopProxy;
    +}
    +
    +pub trait EventLoopProxy<T: 'static> {
    +    fn send_event(&self, event: T);
    +}
    +
    +pub trait EventLoop<ET: 'static + PartialEq> {
    +    type EventLoopProxy: EventLoopProxy<ET>;
    +
    +    fn run<E>(self, map: Map<E>, max_frames: Option<u64>)
    +    where
    +        E: Environment,
    +        <E::MapWindowConfig as MapWindowConfig>::MapWindow: HeadedMapWindow;
    +
    +    fn create_proxy(&self) -> Self::EventLoopProxy;
    +}
    +
    +
    \ No newline at end of file diff --git a/docs/api/src/maplibre/io/apc.rs.html b/docs/api/src/maplibre/io/apc.rs.html index 23332269..e6f79e97 100644 --- a/docs/api/src/maplibre/io/apc.rs.html +++ b/docs/api/src/maplibre/io/apc.rs.html @@ -119,6 +119,61 @@ 119 120 121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176
    use std::{
         collections::HashMap,
         future::Future,
    @@ -133,17 +188,21 @@
     
     use crate::{
         coords::WorldTileCoords,
    +    error::Error,
         io::{
    -        source_client::{HttpSourceClient, SourceClient},
    +        scheduler::Scheduler,
    +        source_client::{HttpClient, HttpSourceClient, SourceClient},
             transferables::{DefaultTransferables, Transferables},
             TileRequest,
         },
    -    Environment, HttpClient, Scheduler,
     };
     
    -/// 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. This is sent as a message from a worker to the caller
    +/// of an [`AsyncProcedure`].
    +///
    +/// * `TessellatedLayer` contains the result of the tessellation for a specific layer.
    +/// * `UnavailableLayer` is sent if a requested layer is not found.
    +/// * `TileTessellated` is sent if processing of a tile finished.
     #[derive(Clone)]
     pub enum Message<T: Transferables> {
         TileTessellated(T::TileTessellated),
    @@ -151,30 +210,82 @@
         TessellatedLayer(T::TessellatedLayer),
     }
     
    +/// Inputs for an [`AsyncProcedure`]
     #[derive(Clone, Serialize, Deserialize)]
     pub enum Input {
         TileRequest(TileRequest),
     }
     
    +/// Allows sending messages from workers to back to the caller.
     pub trait Context<T: Transferables, HC: HttpClient>: Send + 'static {
    -    fn send(&self, data: Message<T>);
    +    /// Send a message back to the caller.
    +    // FIXME (wasm-executor): handle results send() calls
    +    fn send(&self, data: Message<T>) -> Result<(), Error>;
     
         fn source_client(&self) -> &SourceClient<HC>;
     }
     
    -#[cfg(not(feature = "no-thread-safe-futures"))]
    +#[cfg(feature = "thread-safe-futures")]
     pub type AsyncProcedureFuture = Pin<Box<(dyn Future<Output = ()> + Send + 'static)>>;
    -#[cfg(feature = "no-thread-safe-futures")]
    +#[cfg(not(feature = "thread-safe-futures"))]
     pub type AsyncProcedureFuture = Pin<Box<(dyn Future<Output = ()> + 'static)>>;
     
    +/// 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.
     pub type AsyncProcedure<C> = fn(input: Input, context: C) -> AsyncProcedureFuture;
     
    -pub trait AsyncProcedureCall<T: Transferables, HC: HttpClient>: 'static {
    -    type Context: Context<T, HC> + Send;
    +/// 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.
    +///
    +/// It is possible to schedule work on a  remote host by calling [`AsyncProcedureCall::call()`]
    +/// and getting the results back by calling the non-blocking function
    +/// [`AsyncProcedureCall::receive()`]. The [`AsyncProcedureCall::receive()`] function returns a
    +/// struct which implements [`Transferables`].
    +///
    +/// ## Transferables
    +///
    +/// 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.
    +///
    +/// ## Message Passing vs APC
    +///
    +/// 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`.
    +///
    +///
    +/// ## Current Implementations
    +///
    +/// 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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer).
    +///
    +///
    +// TODO: Rename to AsyncProcedureCaller?
    +pub trait AsyncProcedureCall<HC: HttpClient>: 'static {
    +    type Context: Context<Self::Transferables, HC> + Send;
    +    type Transferables: Transferables;
     
    -    fn receive(&mut self) -> Option<Message<T>>;
    +    /// Try to receive a message non-blocking.
    +    fn receive(&self) -> Option<Message<Self::Transferables>>;
     
    -    fn schedule(&self, input: Input, procedure: AsyncProcedure<Self::Context>);
    +    /// Call an [`AsyncProcedure`] using some [`Input`]. This function is non-blocking and
    +    /// returns immediately.
    +    fn call(&self, input: Input, procedure: AsyncProcedure<Self::Context>);
     }
     
     #[derive(Clone)]
    @@ -184,8 +295,8 @@
     }
     
     impl<T: Transferables, HC: HttpClient> Context<T, HC> for SchedulerContext<T, HC> {
    -    fn send(&self, data: Message<T>) {
    -        self.sender.send(data).unwrap(); // FIXME (wasm-executor): Remove unwrap
    +    fn send(&self, data: Message<T>) -> Result<(), Error> {
    +        self.sender.send(data).map_err(|e| Error::APC)
         }
     
         fn source_client(&self) -> &SourceClient<HC> {
    @@ -212,19 +323,18 @@
         }
     }
     
    -impl<HC: HttpClient, S: Scheduler> AsyncProcedureCall<DefaultTransferables, HC>
    -    for SchedulerAsyncProcedureCall<HC, S>
    -{
    -    type Context = SchedulerContext<DefaultTransferables, HC>;
    +impl<HC: HttpClient, S: Scheduler> AsyncProcedureCall<HC> for SchedulerAsyncProcedureCall<HC, S> {
    +    type Context = SchedulerContext<Self::Transferables, HC>;
    +    type Transferables = DefaultTransferables;
     
    -    fn receive(&mut self) -> Option<Message<DefaultTransferables>> {
    +    fn receive(&self) -> Option<Message<DefaultTransferables>> {
             let transferred = self.channel.1.try_recv().ok()?;
             Some(transferred)
         }
     
    -    fn schedule(&self, input: Input, procedure: AsyncProcedure<Self::Context>) {
    +    fn call(&self, input: Input, procedure: AsyncProcedure<Self::Context>) {
             let sender = self.channel.0.clone();
    -        let client = self.http_client.clone(); // FIXME (wasm-executor): do not clone each time
    +        let client = self.http_client.clone(); // TODO (perf): do not clone each time
     
             self.scheduler
                 .schedule(move || async move {
    @@ -232,7 +342,7 @@
                         input,
                         SchedulerContext {
                             sender,
    -                        source_client: SourceClient::Http(HttpSourceClient::new(client)),
    +                        source_client: SourceClient::new(HttpSourceClient::new(client)),
                         },
                     )
                     .await;
    diff --git a/docs/api/src/maplibre/io/pipeline.rs.html b/docs/api/src/maplibre/io/pipeline.rs.html
    index 075b0d0b..72a7563f 100644
    --- a/docs/api/src/maplibre/io/pipeline.rs.html
    +++ b/docs/api/src/maplibre/io/pipeline.rs.html
    @@ -237,6 +237,18 @@
     237
     238
     239
    +240
    +241
    +242
    +243
    +244
    +245
    +246
    +247
    +248
    +249
    +250
    +251
     
    use std::marker::PhantomData;
     
     use downcast_rs::{impl_downcast, Downcast};
    @@ -244,28 +256,40 @@
     
     use crate::{
         coords::WorldTileCoords,
    +    error::Error,
         io::geometry_index::IndexedGeometry,
         render::ShaderVertex,
         tessellation::{IndexDataType, OverAlignedVertexBuffer},
     };
     
     /// Processes events which happen during the pipeline execution
    +// FIXME (wasm-executor): handle results for messages below
     pub trait PipelineProcessor: Downcast {
    -    fn tile_finished(&mut self, _coords: &WorldTileCoords) {}
    -    fn layer_unavailable(&mut self, _coords: &WorldTileCoords, _layer_name: &str) {}
    +    fn tile_finished(&mut self, _coords: &WorldTileCoords) -> Result<(), Error> {
    +        Ok(())
    +    }
    +    fn layer_unavailable(
    +        &mut self,
    +        _coords: &WorldTileCoords,
    +        _layer_name: &str,
    +    ) -> Result<(), Error> {
    +        Ok(())
    +    }
         fn layer_tesselation_finished(
             &mut self,
             _coords: &WorldTileCoords,
             _buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
             _feature_indices: Vec<u32>,
             _layer_data: tile::Layer,
    -    ) {
    +    ) -> Result<(), Error> {
    +        Ok(())
         }
         fn layer_indexing_finished(
             &mut self,
             _coords: &WorldTileCoords,
             _geometries: Vec<IndexedGeometry<f64>>,
    -    ) {
    +    ) -> Result<(), Error> {
    +        Ok(())
         }
     }
     
    diff --git a/docs/api/src/maplibre/io/scheduler.rs.html b/docs/api/src/maplibre/io/scheduler.rs.html
    index 5e614832..933e61c8 100644
    --- a/docs/api/src/maplibre/io/scheduler.rs.html
    +++ b/docs/api/src/maplibre/io/scheduler.rs.html
    @@ -43,7 +43,7 @@
     /// Async/await scheduler.
     /// Can schedule a task from a future factory and a shared state.
     pub trait Scheduler: 'static {
    -    #[cfg(not(feature = "no-thread-safe-futures"))]
    +    #[cfg(feature = "thread-safe-futures")]
         fn schedule<T>(
             &self,
             future_factory: impl (FnOnce() -> T) + Send + 'static,
    @@ -51,7 +51,7 @@
         where
             T: Future<Output = ()> + Send + 'static;
     
    -    #[cfg(feature = "no-thread-safe-futures")]
    +    #[cfg(not(feature = "thread-safe-futures"))]
         fn schedule<T>(
             &self,
             future_factory: impl (FnOnce() -> T) + Send + 'static,
    @@ -67,7 +67,7 @@
         where
             T: Future<Output = ()> + 'static,
         {
    -        Err(Error::Schedule)
    +        Err(Error::Scheduler)
         }
     }
     
    diff --git a/docs/api/src/maplibre/io/source_client.rs.html b/docs/api/src/maplibre/io/source_client.rs.html index 1d48c4f3..586aaf44 100644 --- a/docs/api/src/maplibre/io/source_client.rs.html +++ b/docs/api/src/maplibre/io/source_client.rs.html @@ -77,8 +77,6 @@ 77 78 79 -80 -81
    //! HTTP client.
     
     use async_trait::async_trait;
    @@ -93,9 +91,9 @@
     /// [https://github.com/dtolnay/async-trait/blob/b70720c4c1cc0d810b7446efda44f81310ee7bf2/README.md#non-threadsafe-futures](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.
    -#[cfg_attr(feature = "no-thread-safe-futures", async_trait(?Send))]
    -#[cfg_attr(not(feature = "no-thread-safe-futures"), async_trait)]
    +/// the future "thread-safe-futures". Tokio futures are thread-safe.
    +#[cfg_attr(not(feature = "thread-safe-futures"), async_trait(?Send))]
    +#[cfg_attr(feature = "thread-safe-futures", async_trait)]
     pub trait HttpClient: Clone + Sync + Send + 'static {
         async fn fetch(&self, url: &str) -> Result<Vec<u8>, Error>;
     }
    @@ -113,25 +111,23 @@
     /// 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.
     #[derive(Clone)]
    -pub enum SourceClient<HC>
    +pub struct SourceClient<HC>
     where
         HC: HttpClient,
     {
    -    Http(HttpSourceClient<HC>),
    -    Mbtiles {
    -        // TODO
    -    },
    +    http: HttpSourceClient<HC>, // TODO: mbtiles: Mbtiles
     }
     
     impl<HC> SourceClient<HC>
     where
         HC: HttpClient,
     {
    +    pub fn new(http: HttpSourceClient<HC>) -> Self {
    +        Self { http }
    +    }
    +
         pub async fn fetch(&self, coords: &WorldTileCoords) -> Result<Vec<u8>, Error> {
    -        match self {
    -            SourceClient::Http(client) => client.fetch(coords).await,
    -            SourceClient::Mbtiles { .. } => unimplemented!(),
    -        }
    +        self.http.fetch(coords).await
         }
     }
     
    diff --git a/docs/api/src/maplibre/io/tile_pipelines.rs.html b/docs/api/src/maplibre/io/tile_pipelines.rs.html
    index 1a9b2ab8..a6d8b7c4 100644
    --- a/docs/api/src/maplibre/io/tile_pipelines.rs.html
    +++ b/docs/api/src/maplibre/io/tile_pipelines.rs.html
    @@ -163,6 +163,11 @@
     163
     164
     165
    +166
    +167
    +168
    +169
    +170
     
    use std::collections::HashSet;
     
     use geozero::GeozeroDatasource;
    @@ -210,6 +215,7 @@
         ) -> Self::Output {
             let index = IndexProcessor::new();
     
    +        // FIXME: Handle result
             context
                 .processor_mut()
                 .layer_indexing_finished(&tile_request.coords, index.get_geometries());
    @@ -243,6 +249,7 @@
     
                 let mut tessellator = ZeroTessellator::<IndexDataType>::default();
                 if let Err(e) = layer.process(&mut tessellator) {
    +                // FIXME: Handle result
                     context
                         .processor_mut()
                         .layer_unavailable(coords, layer_name);
    @@ -254,12 +261,13 @@
                         e
                     );
                 } else {
    +                // FIXME: Handle result
                     context.processor_mut().layer_tesselation_finished(
                         coords,
                         tessellator.buffer.into(),
                         tessellator.feature_indices,
                         cloned_layer,
    -                )
    +                );
                 }
             }
     
    @@ -270,6 +278,7 @@
                 .collect::<HashSet<_>>();
     
             for missing_layer in tile_request.layers.difference(&available_layers) {
    +            // FIXME: Handle result
                 context
                     .processor_mut()
                     .layer_unavailable(coords, missing_layer);
    @@ -283,6 +292,7 @@
     
             tracing::info!("tile tessellated at {} finished", &tile_request.coords);
     
    +        // FIXME: Handle result
             context.processor_mut().tile_finished(&tile_request.coords);
     
             (tile_request, tile)
    diff --git a/docs/api/src/maplibre/io/tile_repository.rs.html b/docs/api/src/maplibre/io/tile_repository.rs.html
    index 3d610198..d009790b 100644
    --- a/docs/api/src/maplibre/io/tile_repository.rs.html
    +++ b/docs/api/src/maplibre/io/tile_repository.rs.html
    @@ -180,18 +180,6 @@
     180
     181
     182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
     
    //! Tile cache.
     
     use std::collections::{btree_map, BTreeMap, HashSet};
    @@ -205,6 +193,7 @@
     };
     
     /// A layer which is stored for future use.
    +#[derive(Clone)]
     pub enum StoredLayer {
         UnavailableLayer {
             coords: WorldTileCoords,
    @@ -235,7 +224,7 @@
         }
     }
     
    -#[derive(Eq, PartialEq)]
    +#[derive(Clone, Copy, Eq, PartialEq)]
     pub enum TileStatus {
         Pending,
         Failed,
    @@ -243,18 +232,37 @@
     }
     
     /// Stores multiple [StoredLayers](StoredLayer).
    +#[derive(Clone)]
     pub struct StoredTile {
    +    coords: WorldTileCoords,
         layers: Vec<StoredLayer>,
         status: TileStatus,
     }
     
     impl StoredTile {
    -    pub fn new() -> Self {
    +    pub fn pending(coords: WorldTileCoords) -> Self {
             Self {
    +            coords,
                 layers: vec![],
                 status: TileStatus::Pending,
             }
         }
    +
    +    pub fn success(coords: WorldTileCoords, layers: Vec<StoredLayer>) -> Self {
    +        Self {
    +            coords,
    +            layers,
    +            status: TileStatus::Success,
    +        }
    +    }
    +
    +    pub fn failed(coords: WorldTileCoords) -> Self {
    +        Self {
    +            coords,
    +            layers: vec![],
    +            status: TileStatus::Failed,
    +        }
    +    }
     }
     
     /// Stores and provides access to a quad tree of cached tiles with world tile coords.
    @@ -276,10 +284,10 @@
     
         /// Inserts a tessellated layer into the quad tree at its world tile coords.
         /// If the space is vacant, the tessellated layer is inserted into a new
    -    /// [crate::io::tile_repository::CachedTile].
    +    /// [crate::io::tile_repository::StoredLayer].
         /// If the space is occupied, the tessellated layer is added to the current
    -    /// [crate::io::tile_repository::CachedTile].
    -    pub fn put_tessellated_layer(&mut self, layer: StoredLayer) {
    +    /// [crate::io::tile_repository::StoredLayer].
    +    pub fn put_layer(&mut self, layer: StoredLayer) {
             if let Some(entry) = layer
                 .get_coords()
                 .build_quad_key()
    @@ -296,9 +304,15 @@
             }
         }
     
    +    pub fn put_tile(&mut self, tile: StoredTile) {
    +        if let Some(key) = tile.coords.build_quad_key() {
    +            self.tree.insert(key, tile);
    +        }
    +    }
    +
         /// Returns the list of tessellated layers at the given world tile coords. None if tile is
         /// missing from the cache.
    -    pub fn iter_tessellated_layers_at(
    +    pub fn iter_layers_at(
             &self,
             coords: &WorldTileCoords,
         ) -> Option<impl Iterator<Item = &StoredLayer> + '_> {
    @@ -309,11 +323,11 @@
         }
     
         /// Create a new tile.
    -    pub fn create_tile(&mut self, coords: &WorldTileCoords) -> bool {
    +    pub fn create_tile(&mut self, coords: WorldTileCoords) -> bool {
             if let Some(entry) = coords.build_quad_key().map(|key| self.tree.entry(key)) {
                 match entry {
                     btree_map::Entry::Vacant(entry) => {
    -                    entry.insert(StoredTile::new());
    +                    entry.insert(StoredTile::pending(coords));
                     }
                     _ => {}
                 }
    @@ -322,14 +336,14 @@
         }
     
         /// Checks if a layer has been fetched.
    -    pub fn needs_fetching(&self, coords: &WorldTileCoords) -> bool {
    +    pub fn has_tile(&self, coords: &WorldTileCoords) -> bool {
             if let Some(_) = coords.build_quad_key().and_then(|key| self.tree.get(&key)) {
                 return false;
             }
             true
         }
     
    -    pub fn success(&mut self, coords: &WorldTileCoords) {
    +    pub fn mark_tile_succeeded(&mut self, coords: &WorldTileCoords) {
             if let Some(cached_tile) = coords
                 .build_quad_key()
                 .and_then(|key| self.tree.get_mut(&key))
    @@ -339,7 +353,7 @@
         }
     
         /// Checks if a layer has been fetched.
    -    pub fn fail(&mut self, coords: &WorldTileCoords) {
    +    pub fn mark_tile_failed(&mut self, coords: &WorldTileCoords) {
             if let Some(cached_tile) = coords
                 .build_quad_key()
                 .and_then(|key| self.tree.get_mut(&key))
    @@ -347,44 +361,6 @@
                 cached_tile.status = TileStatus::Failed;
             }
         }
    -
    -    /// Removes all the cached tessellate layers that are not contained within the given
    -    /// layers hashset.
    -    pub fn retain_missing_layer_names(
    -        &self,
    -        coords: &WorldTileCoords,
    -        layers: &mut HashSet<String>,
    -    ) {
    -        if let Some(cached_tile) = coords.build_quad_key().and_then(|key| self.tree.get(&key)) {
    -            let tessellated_set: HashSet<String> = cached_tile
    -                .layers
    -                .iter()
    -                .map(|tessellated_layer| tessellated_layer.layer_name().to_string())
    -                .collect();
    -
    -            layers.retain(|layer| !tessellated_set.contains(layer));
    -        }
    -    }
    -
    -    /// Checks if a layer is missing from the given layers set at the given coords.
    -    pub fn is_layers_missing(&self, coords: &WorldTileCoords, layers: &HashSet<String>) -> bool {
    -        if let Some(cached_tile) = coords.build_quad_key().and_then(|key| self.tree.get(&key)) {
    -            let tessellated_set: HashSet<&str> = cached_tile
    -                .layers
    -                .iter()
    -                .map(|tessellated_layer| tessellated_layer.layer_name())
    -                .collect();
    -
    -            for layer in layers {
    -                if !tessellated_set.contains(layer.as_str()) {
    -                    return true;
    -                }
    -            }
    -
    -            return false;
    -        }
    -        true
    -    }
     }
     
    \ No newline at end of file diff --git a/docs/api/src/maplibre/io/transferables.rs.html b/docs/api/src/maplibre/io/transferables.rs.html index 96400fd7..ddb746c1 100644 --- a/docs/api/src/maplibre/io/transferables.rs.html +++ b/docs/api/src/maplibre/io/transferables.rs.html @@ -176,7 +176,7 @@ pub buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>, /// Holds for each feature the count of indices. pub feature_indices: Vec<u32>, - pub layer_data: Layer, // FIXME (wasm-executor): Introduce a better structure for this + pub layer_data: Layer, // FIXME (perf): Introduce a better structure for this } impl TessellatedLayer for DefaultTessellatedLayer { diff --git a/docs/api/src/maplibre/kernel.rs.html b/docs/api/src/maplibre/kernel.rs.html new file mode 100644 index 00000000..370f1b60 --- /dev/null +++ b/docs/api/src/maplibre/kernel.rs.html @@ -0,0 +1,172 @@ +kernel.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +
    use crate::{
    +    environment::Environment,
    +    io::source_client::{HttpSourceClient, SourceClient},
    +};
    +
    +/// Holds references to core constructs of maplibre. Based on the compile-time initialization
    +/// different implementations for handling windows, asynchronous work, or data sources are provided
    +/// through a [`Kernel`].
    +///
    +/// An [`Environment`] defines the types which are used.
    +///
    +/// A Kernel lives as long as a [Map](crate::map::Map) usually. It is shared through out various
    +/// components of the maplibre library.
    +pub struct Kernel<E: Environment> {
    +    map_window_config: E::MapWindowConfig,
    +    apc: E::AsyncProcedureCall,
    +    scheduler: E::Scheduler,
    +    source_client: SourceClient<E::HttpClient>,
    +}
    +
    +impl<E: Environment> Kernel<E> {
    +    pub fn map_window_config(&self) -> &E::MapWindowConfig {
    +        &self.map_window_config
    +    }
    +
    +    pub fn apc(&self) -> &E::AsyncProcedureCall {
    +        &self.apc
    +    }
    +
    +    pub fn scheduler(&self) -> &E::Scheduler {
    +        &self.scheduler
    +    }
    +
    +    pub fn source_client(&self) -> &SourceClient<E::HttpClient> {
    +        &self.source_client
    +    }
    +}
    +
    +/// A convenient builder for [Kernels](Kernel).
    +pub struct KernelBuilder<E: Environment> {
    +    map_window_config: Option<E::MapWindowConfig>,
    +    apc: Option<E::AsyncProcedureCall>,
    +    scheduler: Option<E::Scheduler>,
    +    http_client: Option<E::HttpClient>,
    +}
    +
    +impl<E: Environment> KernelBuilder<E> {
    +    pub fn new() -> Self {
    +        Self {
    +            scheduler: None,
    +            apc: None,
    +            http_client: None,
    +            map_window_config: None,
    +        }
    +    }
    +
    +    pub fn with_map_window_config(mut self, map_window_config: E::MapWindowConfig) -> Self {
    +        self.map_window_config = Some(map_window_config);
    +        self
    +    }
    +
    +    pub fn with_scheduler(mut self, scheduler: E::Scheduler) -> Self {
    +        self.scheduler = Some(scheduler);
    +        self
    +    }
    +
    +    pub fn with_apc(mut self, apc: E::AsyncProcedureCall) -> Self {
    +        self.apc = Some(apc);
    +        self
    +    }
    +
    +    pub fn with_http_client(mut self, http_client: E::HttpClient) -> Self {
    +        self.http_client = Some(http_client);
    +        self
    +    }
    +
    +    pub fn build(self) -> Kernel<E> {
    +        Kernel {
    +            scheduler: self.scheduler.unwrap(), // TODO: Remove unwrap
    +            apc: self.apc.unwrap(),             // TODO: Remove unwrap
    +            source_client: SourceClient::new(HttpSourceClient::new(self.http_client.unwrap())), // TODO: Remove unwrap
    +            map_window_config: self.map_window_config.unwrap(), // TODO: Remove unwrap
    +        }
    +    }
    +}
    +
    +
    \ No newline at end of file diff --git a/docs/api/src/maplibre/lib.rs.html b/docs/api/src/maplibre/lib.rs.html index 5f3d9f0b..2939d359 100644 --- a/docs/api/src/maplibre/lib.rs.html +++ b/docs/api/src/maplibre/lib.rs.html @@ -49,217 +49,6 @@ 49 50 51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262
    //! # Maplibre-rs
     //!
     //! A multi-platform library for rendering vector tile maps with WebGPU.
    @@ -278,23 +67,8 @@
     //! maplibre = "0.0.2"
     //! ```
     
    -use std::{
    -    borrow::{Borrow, BorrowMut},
    -    cell::RefCell,
    -    rc::Rc,
    -};
    -
    -use crate::{
    -    environment::Environment,
    -    io::{scheduler::Scheduler, source_client::HttpClient},
    -    map_schedule::InteractiveMapSchedule,
    -    render::{
    -        settings::{RendererSettings, WgpuSettings},
    -        RenderState, Renderer,
    -    },
    -    style::Style,
    -    window::{EventLoop, HeadedMapWindow, MapWindow, MapWindowConfig, WindowSize},
    -};
    +// Internal modules
    +pub(crate) mod tessellation;
     
     pub mod context;
     pub mod coords;
    @@ -302,10 +76,8 @@
     #[cfg(feature = "headless")]
     pub mod headless;
     pub mod io;
    -// Exposed because of input handlers in maplibre-winit
    -pub mod map_schedule;
     pub mod platform;
    -// Exposed because of camera
    +// TODO: Exposed because of camera
     pub mod render;
     pub mod style;
     pub mod util;
    @@ -316,211 +88,17 @@
     // Exposed because of SharedThreadState
     pub mod stages;
     
    +pub mod environment;
    +
     // Used for benchmarking
     pub mod benchmarking;
     
    -// Internal modules
    -pub(crate) mod tessellation;
    -
    -pub mod environment;
    +pub mod event_loop;
    +pub mod kernel;
    +pub mod map;
    +pub mod world;
     
    +// Export tile format
     pub use geozero::mvt::tile;
    -
    -/// The [`Map`] defines the public interface of the map renderer.
    -// DO NOT IMPLEMENT INTERNALS ON THIS STRUCT.
    -pub struct Map<E: Environment> {
    -    // FIXME (wasm-executor): Avoid RefCell, change ownership model!
    -    map_schedule: Rc<RefCell<InteractiveMapSchedule<E>>>,
    -    window: RefCell<Option<<E::MapWindowConfig as MapWindowConfig>::MapWindow>>,
    -}
    -
    -impl<E: Environment> Map<E>
    -where
    -    <E::MapWindowConfig as MapWindowConfig>::MapWindow: EventLoop<E>,
    -{
    -    /// Starts the [`crate::map_schedule::MapState`] Runnable with the configured event loop.
    -    pub fn run(&self) {
    -        self.run_with_optionally_max_frames(None);
    -    }
    -
    -    /// Starts the [`crate::map_schedule::MapState`] Runnable with the configured event loop.
    -    ///
    -    /// # Arguments
    -    ///
    -    /// * `max_frames` - Maximum number of frames per second.
    -    pub fn run_with_max_frames(&self, max_frames: u64) {
    -        self.run_with_optionally_max_frames(Some(max_frames));
    -    }
    -
    -    /// Starts the MapState Runnable with the configured event loop.
    -    ///
    -    /// # Arguments
    -    ///
    -    /// * `max_frames` - Optional maximum number of frames per second.
    -    pub fn run_with_optionally_max_frames(&self, max_frames: Option<u64>) {
    -        self.window
    -            .borrow_mut()
    -            .take()
    -            .unwrap() // FIXME (wasm-executor): Remove unwrap
    -            .run(self.map_schedule.clone(), max_frames);
    -    }
    -
    -    pub fn map_schedule(&self) -> Rc<RefCell<InteractiveMapSchedule<E>>> {
    -        self.map_schedule.clone()
    -    }
    -
    -    /*    pub fn map_schedule_mut(&mut self) -> &mut InteractiveMapSchedule<E> {
    -        &mut self.map_schedule
    -    }*/
    -}
    -
    -/// Stores the map configuration before the map's state has been fully initialized.
    -pub struct UninitializedMap<E: Environment> {
    -    scheduler: E::Scheduler,
    -    apc: E::AsyncProcedureCall,
    -    http_client: E::HttpClient,
    -    style: Style,
    -
    -    wgpu_settings: WgpuSettings,
    -    renderer_settings: RendererSettings,
    -    map_window_config: E::MapWindowConfig,
    -}
    -
    -impl<E: Environment> UninitializedMap<E>
    -where
    -    <E::MapWindowConfig as MapWindowConfig>::MapWindow: HeadedMapWindow,
    -{
    -    /// Initializes the whole rendering pipeline for the given configuration.
    -    /// Returns the initialized map, ready to be run.
    -    pub async fn initialize(self) -> Map<E> {
    -        let window = self.map_window_config.create();
    -        let window_size = window.size();
    -
    -        #[cfg(target_os = "android")]
    -        let renderer = None;
    -        #[cfg(not(target_os = "android"))]
    -        let renderer = Renderer::initialize(
    -            &window,
    -            self.wgpu_settings.clone(),
    -            self.renderer_settings.clone(),
    -        )
    -        .await
    -        .ok();
    -        Map {
    -            map_schedule: Rc::new(RefCell::new(InteractiveMapSchedule::new(
    -                self.map_window_config,
    -                window_size,
    -                renderer,
    -                self.scheduler,
    -                self.apc,
    -                self.http_client,
    -                self.style,
    -                self.wgpu_settings,
    -                self.renderer_settings,
    -            ))),
    -            window: RefCell::new(Some(window)),
    -        }
    -    }
    -}
    -
    -#[cfg(feature = "headless")]
    -impl<E: Environment> UninitializedMap<E> {
    -    pub async fn initialize_headless(self) -> headless::HeadlessMap<E> {
    -        let window = self.map_window_config.create();
    -        let window_size = window.size();
    -
    -        let renderer = Renderer::initialize_headless(
    -            &window,
    -            self.wgpu_settings.clone(),
    -            self.renderer_settings.clone(),
    -        )
    -        .await
    -        .expect("Failed to initialize renderer");
    -        headless::HeadlessMap {
    -            map_schedule: headless::HeadlessMapSchedule::new(
    -                self.map_window_config,
    -                window_size,
    -                renderer,
    -                self.scheduler,
    -                self.http_client,
    -                self.style,
    -            ),
    -            window,
    -        }
    -    }
    -}
    -
    -pub struct MapBuilder<E: Environment> {
    -    scheduler: Option<E::Scheduler>,
    -    apc: Option<E::AsyncProcedureCall>,
    -    http_client: Option<E::HttpClient>,
    -    style: Option<Style>,
    -
    -    map_window_config: Option<E::MapWindowConfig>,
    -    wgpu_settings: Option<WgpuSettings>,
    -    renderer_settings: Option<RendererSettings>,
    -}
    -
    -impl<E: Environment> MapBuilder<E> {
    -    pub fn new() -> Self {
    -        Self {
    -            scheduler: None,
    -            apc: None,
    -            http_client: None,
    -            style: None,
    -            map_window_config: None,
    -            wgpu_settings: None,
    -            renderer_settings: None,
    -        }
    -    }
    -
    -    pub fn with_map_window_config(mut self, map_window_config: E::MapWindowConfig) -> Self {
    -        self.map_window_config = Some(map_window_config);
    -        self
    -    }
    -
    -    pub fn with_renderer_settings(mut self, renderer_settings: RendererSettings) -> Self {
    -        self.renderer_settings = Some(renderer_settings);
    -        self
    -    }
    -
    -    pub fn with_wgpu_settings(mut self, wgpu_settings: WgpuSettings) -> Self {
    -        self.wgpu_settings = Some(wgpu_settings);
    -        self
    -    }
    -
    -    pub fn with_scheduler(mut self, scheduler: E::Scheduler) -> Self {
    -        self.scheduler = Some(scheduler);
    -        self
    -    }
    -
    -    pub fn with_apc(mut self, apc: E::AsyncProcedureCall) -> Self {
    -        self.apc = Some(apc);
    -        self
    -    }
    -
    -    pub fn with_http_client(mut self, http_client: E::HttpClient) -> Self {
    -        self.http_client = Some(http_client);
    -        self
    -    }
    -
    -    pub fn with_style(mut self, style: Style) -> Self {
    -        self.style = Some(style);
    -        self
    -    }
    -
    -    /// Builds the UninitializedMap with the given configuration.
    -    pub fn build(self) -> UninitializedMap<E> {
    -        UninitializedMap {
    -            scheduler: self.scheduler.unwrap(),     // TODO: Remove unwrap
    -            apc: self.apc.unwrap(),                 // TODO: Remove unwrap
    -            http_client: self.http_client.unwrap(), // TODO: Remove unwrap
    -            style: self.style.unwrap_or_default(),
    -            wgpu_settings: self.wgpu_settings.unwrap_or_default(),
    -            renderer_settings: self.renderer_settings.unwrap_or_default(),
    -            map_window_config: self.map_window_config.unwrap(), // TODO: Remove unwrap
    -        }
    -    }
    -}
     
    \ No newline at end of file diff --git a/docs/api/src/maplibre/map.rs.html b/docs/api/src/maplibre/map.rs.html new file mode 100644 index 00000000..862e40df --- /dev/null +++ b/docs/api/src/maplibre/map.rs.html @@ -0,0 +1,300 @@ +map.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +
    use std::rc::Rc;
    +
    +use crate::{
    +    context::MapContext,
    +    coords::{LatLon, WorldCoords, Zoom, TILE_SIZE},
    +    environment::Environment,
    +    error::Error,
    +    kernel::Kernel,
    +    render::{
    +        builder::{
    +            InitializationResult, InitializedRenderer, RendererBuilder, UninitializedRenderer,
    +        },
    +        create_default_render_graph, register_default_render_stages,
    +        settings::{RendererSettings, WgpuSettings},
    +        Renderer,
    +    },
    +    schedule::{Schedule, Stage},
    +    stages::register_stages,
    +    style::Style,
    +    window::{HeadedMapWindow, MapWindow, MapWindowConfig, WindowSize},
    +    world::World,
    +};
    +
    +pub enum MapContextState {
    +    Ready(MapContext),
    +    Pending { style: Style },
    +}
    +
    +pub struct Map<E: Environment> {
    +    kernel: Rc<Kernel<E>>,
    +    schedule: Schedule,
    +    map_context: MapContextState,
    +    window: <E::MapWindowConfig as MapWindowConfig>::MapWindow,
    +}
    +
    +impl<E: Environment> Map<E>
    +where
    +    <<E as Environment>::MapWindowConfig as MapWindowConfig>::MapWindow: HeadedMapWindow,
    +{
    +    pub fn new(style: Style, kernel: Kernel<E>) -> Result<Self, Error> {
    +        let mut schedule = Schedule::default();
    +
    +        let graph = create_default_render_graph().unwrap(); // TODO: Remove unwrap
    +        register_default_render_stages(graph, &mut schedule);
    +
    +        let kernel = Rc::new(kernel);
    +
    +        register_stages::<E>(&mut schedule, kernel.clone());
    +
    +        let mut window = kernel.map_window_config().create();
    +
    +        let map = Self {
    +            kernel,
    +            map_context: MapContextState::Pending { style },
    +            schedule,
    +            window,
    +        };
    +        Ok(map)
    +    }
    +
    +    pub async fn initialize_renderer(
    +        &mut self,
    +        render_builder: RendererBuilder,
    +    ) -> Result<(), Error> {
    +        let result = render_builder
    +            .build()
    +            .initialize_renderer::<E::MapWindowConfig>(&self.window)
    +            .await
    +            .expect("Failed to initialize renderer");
    +
    +        match &mut self.map_context {
    +            MapContextState::Ready(_) => Err(Error::Generic("Renderer is already set".into())),
    +            MapContextState::Pending { style } => {
    +                let window_size = self.window.size();
    +
    +                let center = style.center.unwrap_or_default();
    +
    +                let world = World::new_at(
    +                    window_size,
    +                    LatLon::new(center[0], center[1]),
    +                    style.zoom.map(|zoom| Zoom::new(zoom)).unwrap_or_default(),
    +                    cgmath::Deg::<f64>(style.pitch.unwrap_or_default()),
    +                );
    +
    +                match result {
    +                    InitializationResult::Initialized(InitializedRenderer { renderer, .. }) => {
    +                        *&mut self.map_context = MapContextState::Ready(MapContext {
    +                            world,
    +                            style: std::mem::take(style),
    +                            renderer,
    +                        });
    +                    }
    +                    InitializationResult::Uninizalized(UninitializedRenderer { .. }) => {}
    +                    _ => panic!("Rendering context gone"),
    +                };
    +                Ok(())
    +            }
    +        }
    +    }
    +
    +    pub fn window_mut(&mut self) -> &mut <E::MapWindowConfig as MapWindowConfig>::MapWindow {
    +        &mut self.window
    +    }
    +    pub fn window(&self) -> &<E::MapWindowConfig as MapWindowConfig>::MapWindow {
    +        &self.window
    +    }
    +
    +    pub fn has_renderer(&self) -> bool {
    +        match &self.map_context {
    +            MapContextState::Ready(_) => true,
    +            MapContextState::Pending { .. } => false,
    +        }
    +    }
    +
    +    #[tracing::instrument(name = "update_and_redraw", skip_all)]
    +    pub fn run_schedule(&mut self) -> Result<(), Error> {
    +        match &mut self.map_context {
    +            MapContextState::Ready(map_context) => {
    +                self.schedule.run(map_context);
    +                Ok(())
    +            }
    +            MapContextState::Pending { .. } => {
    +                Err(Error::Generic("Renderer is already set".into()))
    +            }
    +        }
    +    }
    +
    +    pub fn context(&self) -> Result<&MapContext, Error> {
    +        match &self.map_context {
    +            MapContextState::Ready(map_context) => Ok(map_context),
    +            MapContextState::Pending { .. } => {
    +                Err(Error::Generic("Renderer is already set".into()))
    +            }
    +        }
    +    }
    +
    +    pub fn context_mut(&mut self) -> Result<&mut MapContext, Error> {
    +        match &mut self.map_context {
    +            MapContextState::Ready(map_context) => Ok(map_context),
    +            MapContextState::Pending { .. } => {
    +                Err(Error::Generic("Renderer is already set".into()))
    +            }
    +        }
    +    }
    +
    +    pub fn kernel(&self) -> &Rc<Kernel<E>> {
    +        &self.kernel
    +    }
    +}
    +
    +
    \ No newline at end of file diff --git a/docs/api/src/maplibre/map_schedule.rs.html b/docs/api/src/maplibre/map_schedule.rs.html deleted file mode 100644 index 1838e99e..00000000 --- a/docs/api/src/maplibre/map_schedule.rs.html +++ /dev/null @@ -1,416 +0,0 @@ -map_schedule.rs - source
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -
    use std::{cell::RefCell, marker::PhantomData, mem, rc::Rc};
    -
    -use crate::{
    -    context::{MapContext, ViewState},
    -    coords::{LatLon, WorldCoords, Zoom, TILE_SIZE},
    -    error::Error,
    -    io::{
    -        scheduler::Scheduler,
    -        source_client::{HttpClient, HttpSourceClient},
    -        tile_repository::TileRepository,
    -    },
    -    render::{create_default_render_graph, register_default_render_stages},
    -    schedule::{Schedule, Stage},
    -    stages::register_stages,
    -    style::Style,
    -    Environment, HeadedMapWindow, MapWindowConfig, Renderer, RendererSettings, WgpuSettings,
    -    WindowSize,
    -};
    -
    -/// Stores the state of the map, dispatches tile fetching and caching, tessellation and drawing.
    -pub struct InteractiveMapSchedule<E: Environment> {
    -    map_window_config: E::MapWindowConfig,
    -
    -    // FIXME (wasm-executor): avoid RefCell, change ownership model
    -    pub apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -
    -    map_context: EventuallyMapContext,
    -
    -    schedule: Schedule,
    -
    -    suspended: bool,
    -}
    -
    -impl<E: Environment> InteractiveMapSchedule<E> {
    -    pub fn new(
    -        map_window_config: E::MapWindowConfig,
    -        window_size: WindowSize,
    -        renderer: Option<Renderer>,
    -        scheduler: E::Scheduler, // TODO: unused
    -        apc: E::AsyncProcedureCall,
    -        http_client: E::HttpClient,
    -        style: Style,
    -        wgpu_settings: WgpuSettings,
    -        renderer_settings: RendererSettings,
    -    ) -> Self {
    -        let zoom = style.zoom.map(|zoom| Zoom::new(zoom)).unwrap_or_default();
    -        let position = style
    -            .center
    -            .map(|center| WorldCoords::from_lat_lon(LatLon::new(center[0], center[1]), zoom))
    -            .unwrap_or_default();
    -        let pitch = style.pitch.unwrap_or_default();
    -        let view_state = ViewState::new(&window_size, position, zoom, pitch, cgmath::Deg(110.0));
    -
    -        let tile_repository = TileRepository::new();
    -        let mut schedule = Schedule::default();
    -
    -        let apc = Rc::new(RefCell::new(apc));
    -
    -        let http_source_client: HttpSourceClient<E::HttpClient> =
    -            HttpSourceClient::new(http_client);
    -        register_stages::<E>(&mut schedule, http_source_client, apc.clone());
    -
    -        let graph = create_default_render_graph().unwrap(); // TODO: Remove unwrap
    -        register_default_render_stages(graph, &mut schedule);
    -
    -        Self {
    -            apc,
    -            map_window_config,
    -            map_context: match renderer {
    -                None => EventuallyMapContext::Premature(PrematureMapContext {
    -                    view_state,
    -                    style,
    -                    tile_repository,
    -                    wgpu_settings,
    -                    renderer_settings,
    -                }),
    -                Some(renderer) => EventuallyMapContext::Full(MapContext {
    -                    view_state,
    -                    style,
    -                    tile_repository,
    -                    renderer,
    -                }),
    -            },
    -            schedule,
    -            suspended: false,
    -        }
    -    }
    -
    -    #[tracing::instrument(name = "update_and_redraw", skip_all)]
    -    pub fn update_and_redraw(&mut self) -> Result<(), Error> {
    -        if self.suspended {
    -            return Ok(());
    -        }
    -
    -        if let EventuallyMapContext::Full(map_context) = &mut self.map_context {
    -            self.schedule.run(map_context)
    -        }
    -
    -        Ok(())
    -    }
    -
    -    pub fn resize(&mut self, width: u32, height: u32) {
    -        if let EventuallyMapContext::Full(map_context) = &mut self.map_context {
    -            let view_state = &mut map_context.view_state;
    -            view_state.perspective.resize(width, height);
    -            view_state.camera.resize(width, height);
    -
    -            map_context.renderer.resize(width, height)
    -        }
    -    }
    -
    -    pub fn is_initialized(&self) -> bool {
    -        match &self.map_context {
    -            EventuallyMapContext::Full(_) => true,
    -            _ => false,
    -        }
    -    }
    -
    -    pub fn view_state_mut(&mut self) -> &mut ViewState {
    -        match &mut self.map_context {
    -            EventuallyMapContext::Full(MapContext { view_state, .. }) => view_state,
    -            EventuallyMapContext::Premature(PrematureMapContext { view_state, .. }) => view_state,
    -            _ => panic!("should not happen"),
    -        }
    -    }
    -
    -    pub fn apc(&self) -> &Rc<RefCell<E::AsyncProcedureCall>> {
    -        &self.apc
    -    }
    -}
    -
    -impl<E: Environment> InteractiveMapSchedule<E>
    -where
    -    <E::MapWindowConfig as MapWindowConfig>::MapWindow: HeadedMapWindow,
    -{
    -    pub fn suspend(&mut self) {
    -        self.suspended = true;
    -    }
    -
    -    pub fn resume(&mut self, window: &<E::MapWindowConfig as MapWindowConfig>::MapWindow) {
    -        if let EventuallyMapContext::Full(map_context) = &mut self.map_context {
    -            let renderer = &mut map_context.renderer;
    -            renderer.state.recreate_surface(window, &renderer.instance);
    -            self.suspended = false;
    -        }
    -    }
    -
    -    pub async fn late_init(&mut self) -> bool {
    -        match &self.map_context {
    -            EventuallyMapContext::Full(_) => false,
    -            EventuallyMapContext::Premature(PrematureMapContext {
    -                wgpu_settings,
    -                renderer_settings,
    -                ..
    -            }) => {
    -                let window = self.map_window_config.create();
    -                let renderer =
    -                    Renderer::initialize(&window, wgpu_settings.clone(), renderer_settings.clone())
    -                        .await
    -                        .unwrap(); // TODO: Remove unwrap
    -                self.map_context.make_full(renderer);
    -                true
    -            }
    -            EventuallyMapContext::_Uninitialized => false,
    -        }
    -    }
    -}
    -
    -pub struct PrematureMapContext {
    -    view_state: ViewState,
    -    style: Style,
    -
    -    tile_repository: TileRepository,
    -
    -    wgpu_settings: WgpuSettings,
    -    renderer_settings: RendererSettings,
    -}
    -
    -pub enum EventuallyMapContext {
    -    Full(MapContext),
    -    Premature(PrematureMapContext),
    -    _Uninitialized,
    -}
    -
    -impl EventuallyMapContext {
    -    pub fn make_full(&mut self, renderer: Renderer) {
    -        let context = mem::replace(self, EventuallyMapContext::_Uninitialized);
    -
    -        match context {
    -            EventuallyMapContext::Full(_) => {}
    -            EventuallyMapContext::Premature(PrematureMapContext {
    -                view_state,
    -                style,
    -                tile_repository,
    -                ..
    -            }) => {
    -                *self = EventuallyMapContext::Full(MapContext {
    -                    view_state,
    -                    style,
    -                    tile_repository,
    -                    renderer,
    -                });
    -            }
    -            EventuallyMapContext::_Uninitialized => {}
    -        }
    -    }
    -}
    -
    -
    \ No newline at end of file diff --git a/docs/api/src/maplibre/platform/noweb/http_client.rs.html b/docs/api/src/maplibre/platform/noweb/http_client.rs.html index bc5e1754..9d364c63 100644 --- a/docs/api/src/maplibre/platform/noweb/http_client.rs.html +++ b/docs/api/src/maplibre/platform/noweb/http_client.rs.html @@ -56,12 +56,13 @@ 56 57 58 +59
    use async_trait::async_trait;
     use reqwest::{Client, StatusCode};
     use reqwest_middleware::ClientWithMiddleware;
     use reqwest_middleware_cache::{managers::CACacheManager, Cache, CacheMode};
     
    -use crate::{error::Error, HttpClient};
    +use crate::{error::Error, io::source_client::HttpClient};
     
     #[derive(Clone)]
     pub struct ReqwestHttpClient {
    @@ -81,6 +82,7 @@
     
     impl ReqwestHttpClient {
         /// cache_path: Under which path should we cache requests.
    +    // TODO: Use Into<Path> instead of String
         pub fn new(cache_path: Option<String>) -> Self {
             let mut builder = reqwest_middleware::ClientBuilder::new(Client::new());
     
    diff --git a/docs/api/src/maplibre/platform/noweb/scheduler.rs.html b/docs/api/src/maplibre/platform/noweb/scheduler.rs.html
    index ac928da1..c37f2852 100644
    --- a/docs/api/src/maplibre/platform/noweb/scheduler.rs.html
    +++ b/docs/api/src/maplibre/platform/noweb/scheduler.rs.html
    @@ -22,7 +22,7 @@
     22
     
    use std::future::Future;
     
    -use crate::{error::Error, Scheduler};
    +use crate::{error::Error, io::scheduler::Scheduler};
     
     /// Multi-threading with Tokio.
     pub struct TokioScheduler;
    diff --git a/docs/api/src/maplibre/render/builder.rs.html b/docs/api/src/maplibre/render/builder.rs.html
    new file mode 100644
    index 00000000..e3cd80ca
    --- /dev/null
    +++ b/docs/api/src/maplibre/render/builder.rs.html
    @@ -0,0 +1,254 @@
    +builder.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +
    use std::marker::PhantomData;
    +
    +use crate::{
    +    environment::Environment,
    +    error::Error,
    +    kernel::Kernel,
    +    render::{
    +        settings::{RendererSettings, WgpuSettings},
    +        Renderer,
    +    },
    +    style::Style,
    +    window::{HeadedMapWindow, MapWindow, MapWindowConfig},
    +};
    +
    +pub struct RendererBuilder {
    +    wgpu_settings: Option<WgpuSettings>,
    +    renderer_settings: Option<RendererSettings>,
    +}
    +
    +impl RendererBuilder {
    +    pub fn new() -> Self {
    +        Self {
    +            wgpu_settings: None,
    +            renderer_settings: None,
    +        }
    +    }
    +
    +    pub fn with_renderer_settings(mut self, renderer_settings: RendererSettings) -> Self {
    +        self.renderer_settings = Some(renderer_settings);
    +        self
    +    }
    +
    +    pub fn with_wgpu_settings(mut self, wgpu_settings: WgpuSettings) -> Self {
    +        self.wgpu_settings = Some(wgpu_settings);
    +        self
    +    }
    +
    +    pub fn build(self) -> UninitializedRenderer {
    +        UninitializedRenderer {
    +            wgpu_settings: self.wgpu_settings.unwrap_or_default(),
    +            renderer_settings: self.renderer_settings.unwrap_or_default(),
    +        }
    +    }
    +}
    +
    +pub enum InitializationResult {
    +    Initialized(InitializedRenderer),
    +    Uninizalized(UninitializedRenderer),
    +    Gone,
    +}
    +
    +impl Default for InitializationResult {
    +    fn default() -> Self {
    +        Self::Gone
    +    }
    +}
    +
    +impl InitializationResult {
    +    pub fn unwarp_renderer(self) -> InitializedRenderer {
    +        match self {
    +            InitializationResult::Initialized(renderer) => renderer,
    +            InitializationResult::Uninizalized(_) => panic!("Renderer is not initialized"),
    +            InitializationResult::Gone => panic!("Initialization context is gone"),
    +        }
    +    }
    +
    +    pub fn into_option(self) -> Option<Renderer> {
    +        match self {
    +            InitializationResult::Initialized(InitializedRenderer { renderer, .. }) => {
    +                Some(renderer)
    +            }
    +            InitializationResult::Uninizalized(_) => None,
    +            InitializationResult::Gone => panic!("Initialization context is gone"),
    +        }
    +    }
    +}
    +
    +pub struct UninitializedRenderer {
    +    pub wgpu_settings: WgpuSettings,
    +    pub renderer_settings: RendererSettings,
    +}
    +
    +impl UninitializedRenderer {
    +    /// Initializes the whole rendering pipeline for the given configuration.
    +    /// Returns the initialized map, ready to be run.
    +    pub async fn initialize_renderer<MWC>(
    +        self,
    +        existing_window: &MWC::MapWindow,
    +    ) -> Result<InitializationResult, Error>
    +    where
    +        MWC: MapWindowConfig,
    +        <MWC as MapWindowConfig>::MapWindow: HeadedMapWindow,
    +    {
    +        let renderer = Renderer::initialize(
    +            existing_window,
    +            self.wgpu_settings.clone(),
    +            self.renderer_settings.clone(),
    +        )
    +        .await?;
    +        Ok(InitializationResult::Initialized(InitializedRenderer {
    +            renderer,
    +        }))
    +    }
    +}
    +
    +#[cfg(feature = "headless")]
    +impl UninitializedRenderer {
    +    pub(crate) async fn initialize_headless<MWC>(
    +        self,
    +        existing_window: &MWC::MapWindow,
    +    ) -> Result<Renderer, Error>
    +    where
    +        MWC: MapWindowConfig,
    +    {
    +        Ok(Renderer::initialize_headless(
    +            existing_window,
    +            self.wgpu_settings.clone(),
    +            self.renderer_settings.clone(),
    +        )
    +        .await?)
    +    }
    +}
    +
    +pub struct InitializedRenderer {
    +    pub renderer: Renderer,
    +}
    +
    +
    \ No newline at end of file diff --git a/docs/api/src/maplibre/render/camera.rs.html b/docs/api/src/maplibre/render/camera.rs.html index 17b01f79..1b6b1159 100644 --- a/docs/api/src/maplibre/render/camera.rs.html +++ b/docs/api/src/maplibre/render/camera.rs.html @@ -487,9 +487,37 @@ 487 488 489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517
    //! Main camera
     
    -use cgmath::{prelude::*, AbsDiffEq, Matrix4, Point2, Point3, Vector2, Vector3, Vector4};
    +use cgmath::{prelude::*, AbsDiffEq, Matrix4, Point2, Point3, Rad, Vector2, Vector3, Vector4};
     
     use crate::util::{
         math::{bounds_from_points, Aabb2, Aabb3, Plane},
    @@ -557,12 +585,12 @@
     
     #[derive(Debug, Clone)]
     pub struct Camera {
    -    pub position: Point3<f64>, // The z axis never changes, the zoom is used instead
    -    pub yaw: cgmath::Rad<f64>,
    -    pub pitch: cgmath::Rad<f64>,
    +    position: Point3<f64>, // The z axis never changes, the zoom is used instead
    +    yaw: cgmath::Rad<f64>,
    +    pitch: cgmath::Rad<f64>,
     
    -    pub width: f64,
    -    pub height: f64,
    +    width: f64,
    +    height: f64,
     }
     
     impl SignificantlyDifferent for Camera {
    @@ -592,6 +620,14 @@
             }
         }
     
    +    pub fn move_to(&mut self, point: Point3<f64>) {
    +        self.position = point;
    +    }
    +
    +    pub fn move_relative(&mut self, delta: Vector3<f64>) {
    +        self.position += delta;
    +    }
    +
         pub fn resize(&mut self, width: u32, height: u32) {
             self.width = width as f64;
             self.height = height as f64;
    @@ -836,6 +872,26 @@
                 Point2::new(max_x, max_y),
             ))
         }
    +
    +    pub fn position(&self) -> Point3<f64> {
    +        self.position
    +    }
    +
    +    pub fn yaw(&self) -> cgmath::Rad<f64> {
    +        self.yaw
    +    }
    +
    +    pub fn yaw_self<P: Into<Rad<f64>>>(&mut self, delta: P) {
    +        self.yaw += delta.into();
    +    }
    +
    +    pub fn pitch(&self) -> cgmath::Rad<f64> {
    +        self.pitch
    +    }
    +
    +    pub fn pitch_self<P: Into<Rad<f64>>>(&mut self, delta: P) {
    +        self.pitch += delta.into();
    +    }
     }
     
     pub struct Perspective {
    diff --git a/docs/api/src/maplibre/render/error.rs.html b/docs/api/src/maplibre/render/error.rs.html
    new file mode 100644
    index 00000000..bf7cb53c
    --- /dev/null
    +++ b/docs/api/src/maplibre/render/error.rs.html
    @@ -0,0 +1,102 @@
    +error.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +
    use std::fmt;
    +
    +use crate::{error::Error, render::graph::RenderGraphError};
    +
    +#[derive(Debug)]
    +pub enum RenderError {
    +    Surface(wgpu::SurfaceError),
    +    Graph(RenderGraphError),
    +    Device(wgpu::RequestDeviceError),
    +}
    +
    +impl fmt::Display for RenderError {
    +    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
    +        match self {
    +            RenderError::Surface(e) => write!(f, "{}", e),
    +            RenderError::Graph(e) => write!(f, "{:?}", e),
    +            RenderError::Device(e) => write!(f, "{}", e),
    +        }
    +    }
    +}
    +
    +impl RenderError {
    +    pub fn should_exit(&self) -> bool {
    +        match self {
    +            RenderError::Surface(e) => match e {
    +                wgpu::SurfaceError::OutOfMemory => true,
    +                _ => false,
    +            },
    +            _ => true,
    +        }
    +    }
    +}
    +
    +impl From<RenderGraphError> for RenderError {
    +    fn from(e: RenderGraphError) -> Self {
    +        RenderError::Graph(e)
    +    }
    +}
    +
    +impl From<wgpu::SurfaceError> for Error {
    +    fn from(e: wgpu::SurfaceError) -> Self {
    +        Error::Render(RenderError::Surface(e))
    +    }
    +}
    +
    +impl From<wgpu::RequestDeviceError> for Error {
    +    fn from(e: wgpu::RequestDeviceError) -> Self {
    +        Error::Render(RenderError::Device(e))
    +    }
    +}
    +
    +
    \ No newline at end of file diff --git a/docs/api/src/maplibre/render/graph/graph.rs.html b/docs/api/src/maplibre/render/graph/graph.rs.html index 284efefb..713af937 100644 --- a/docs/api/src/maplibre/render/graph/graph.rs.html +++ b/docs/api/src/maplibre/render/graph/graph.rs.html @@ -1321,8 +1321,8 @@ Edge, Node, NodeId, NodeRunError, RenderGraph, RenderGraphContext, RenderGraphError, SlotInfo, }; - use crate::{ - render::graph::{RenderContext, SlotType}, + use crate::render::{ + graph::{RenderContext, SlotType}, RenderState, }; diff --git a/docs/api/src/maplibre/render/mod.rs.html b/docs/api/src/maplibre/render/mod.rs.html index e6984b42..95f67a77 100644 --- a/docs/api/src/maplibre/render/mod.rs.html +++ b/docs/api/src/maplibre/render/mod.rs.html @@ -527,6 +527,12 @@ 527 528 529 +530 +531 +532 +533 +534 +535
    //! This module implements the rendering algorithm of maplibre-rs. It manages the whole
     //! communication with the GPU.
     //!
    @@ -561,7 +567,6 @@
             tile_view_pattern::{TileInView, TileShape, TileViewPattern},
         },
         tessellation::IndexDataType,
    -    HeadedMapWindow, MapWindow,
     };
     
     pub mod graph;
    @@ -578,19 +583,24 @@
     mod tile_view_pattern;
     
     // Public API
    +pub mod builder;
     pub mod camera;
    +pub mod error;
     pub mod eventually;
     pub mod settings;
     
     pub use shaders::ShaderVertex;
     pub use stages::register_default_render_stages;
     
    -use crate::render::{
    -    graph::{EmptyNode, RenderGraph, RenderGraphError},
    -    main_pass::{MainPassDriverNode, MainPassNode},
    +use crate::{
    +    render::{
    +        graph::{EmptyNode, RenderGraph, RenderGraphError},
    +        main_pass::{MainPassDriverNode, MainPassNode},
    +    },
    +    window::{HeadedMapWindow, MapWindow},
     };
     
    -pub const INDEX_FORMAT: wgpu::IndexFormat = wgpu::IndexFormat::Uint32; // Must match IndexDataType
    +const INDEX_FORMAT: wgpu::IndexFormat = wgpu::IndexFormat::Uint32; // Must match IndexDataType
     
     pub struct RenderState {
         render_target: Eventually<TextureView>,
    @@ -940,7 +950,10 @@
     
     #[cfg(test)]
     mod tests {
    -    use crate::{MapWindow, MapWindowConfig, WindowSize};
    +    use crate::{
    +        render::{settings::RendererSettings, RenderState},
    +        window::{MapWindow, MapWindowConfig, WindowSize},
    +    };
     
         pub struct HeadlessMapWindowConfig {
             size: WindowSize,
    @@ -969,9 +982,8 @@
         async fn test_render() {
             use log::LevelFilter;
     
    -        use crate::{
    -            render::{graph::RenderGraph, graph_runner::RenderGraphRunner, resource::Surface},
    -            RenderState, RendererSettings,
    +        use crate::render::{
    +            graph::RenderGraph, graph_runner::RenderGraphRunner, resource::Surface,
             };
     
             let _ = env_logger::builder()
    diff --git a/docs/api/src/maplibre/render/render_commands.rs.html b/docs/api/src/maplibre/render/render_commands.rs.html
    index 864efe20..c3cc4cdb 100644
    --- a/docs/api/src/maplibre/render/render_commands.rs.html
    +++ b/docs/api/src/maplibre/render/render_commands.rs.html
    @@ -153,21 +153,15 @@
     153
     154
     155
    -156
    -157
    -158
     
    //! Specifies the instructions which are going to be sent to the GPU. Render commands can be concatenated
     //! into a new render command which executes multiple instruction sets.
     
    -use crate::{
    -    render::{
    -        eventually::Eventually::Initialized,
    -        render_phase::{PhaseItem, RenderCommand, RenderCommandResult},
    -        resource::{Globals, IndexEntry, TrackedRenderPass},
    -        tile_view_pattern::{TileInView, TileShape},
    -        INDEX_FORMAT,
    -    },
    -    RenderState,
    +use crate::render::{
    +    eventually::Eventually::Initialized,
    +    render_phase::{PhaseItem, RenderCommand, RenderCommandResult},
    +    resource::{Globals, IndexEntry, TrackedRenderPass},
    +    tile_view_pattern::{TileInView, TileShape},
    +    RenderState, INDEX_FORMAT,
     };
     
     impl PhaseItem for TileInView {
    diff --git a/docs/api/src/maplibre/render/render_phase/draw.rs.html b/docs/api/src/maplibre/render/render_phase/draw.rs.html
    index c1b5c279..71a4e030 100644
    --- a/docs/api/src/maplibre/render/render_phase/draw.rs.html
    +++ b/docs/api/src/maplibre/render/render_phase/draw.rs.html
    @@ -88,7 +88,7 @@
     88
     89
     90
    -
    use crate::{render::resource::TrackedRenderPass, RenderState};
    +
    use crate::render::{resource::TrackedRenderPass, RenderState};
     
     /// A draw function which is used to draw a specific [`PhaseItem`].
     ///
    diff --git a/docs/api/src/maplibre/render/resource/surface.rs.html b/docs/api/src/maplibre/render/resource/surface.rs.html
    index 403b820a..aec6f2aa 100644
    --- a/docs/api/src/maplibre/render/resource/surface.rs.html
    +++ b/docs/api/src/maplibre/render/resource/surface.rs.html
    @@ -273,7 +273,6 @@
     273
     274
     275
    -276
     
    //! Utilities for handling surfaces which can be either headless or headed. A headed surface has
     //! a handle to a window. A headless surface renders to a texture.
     
    @@ -283,8 +282,7 @@
     
     use crate::{
         render::{eventually::HasChanged, resource::texture::TextureView, settings::RendererSettings},
    -    window::HeadedMapWindow,
    -    MapWindow, WindowSize,
    +    window::{HeadedMapWindow, MapWindow, WindowSize},
     };
     
     pub struct BufferDimensions {
    @@ -329,7 +327,7 @@
         where
             MW: MapWindow + HeadedMapWindow,
         {
    -        self.surface = unsafe { instance.create_surface(window.inner()) };
    +        self.surface = unsafe { instance.create_surface(window.raw()) };
         }
         pub fn surface(&self) -> &wgpu::Surface {
             &self.surface
    @@ -420,7 +418,7 @@
                 present_mode: wgpu::PresentMode::Fifo, // VSync
             };
     
    -        let surface = unsafe { instance.create_surface(window.inner()) };
    +        let surface = unsafe { instance.create_surface(window.raw()) };
     
             Self {
                 size,
    diff --git a/docs/api/src/maplibre/render/stages/extract_stage.rs.html b/docs/api/src/maplibre/render/stages/extract_stage.rs.html
    index 280afd65..e7ddf62e 100644
    --- a/docs/api/src/maplibre/render/stages/extract_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/extract_stage.rs.html
    @@ -40,11 +40,17 @@
     40
     41
     42
    +43
    +44
    +45
     
    //! Extracts data from the current state.
     
     use crate::{
    -    context::MapContext, coords::ViewRegion, render::eventually::Eventually::Initialized,
    -    schedule::Stage, RenderState, Renderer,
    +    context::MapContext,
    +    coords::ViewRegion,
    +    render::{eventually::Eventually::Initialized, RenderState, Renderer},
    +    schedule::Stage,
    +    world::World,
     };
     
     #[derive(Default)]
    @@ -54,7 +60,7 @@
         fn run(
             &mut self,
             MapContext {
    -            view_state,
    +            world: World { view_state, .. },
                 renderer:
                     Renderer {
                         state:
    diff --git a/docs/api/src/maplibre/render/stages/graph_runner_stage.rs.html b/docs/api/src/maplibre/render/stages/graph_runner_stage.rs.html
    index 4081caa4..6002b31f 100644
    --- a/docs/api/src/maplibre/render/stages/graph_runner_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/graph_runner_stage.rs.html
    @@ -80,9 +80,9 @@
         context::MapContext,
         render::{
             eventually::Eventually::Initialized, graph::RenderGraph, graph_runner::RenderGraphRunner,
    +        Renderer,
         },
         schedule::Stage,
    -    Renderer,
     };
     
     /// Updates the [`RenderGraph`] with all of its nodes and then runs it to render the entire frame.
    diff --git a/docs/api/src/maplibre/render/stages/phase_sort_stage.rs.html b/docs/api/src/maplibre/render/stages/phase_sort_stage.rs.html
    index 0de4154b..799f75b6 100644
    --- a/docs/api/src/maplibre/render/stages/phase_sort_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/phase_sort_stage.rs.html
    @@ -19,9 +19,17 @@
     19
     20
     21
    +22
    +23
    +24
    +25
     
    //! Sorts items of the [RenderPhases](RenderPhase).
     
    -use crate::{context::MapContext, render::render_phase::RenderPhase, schedule::Stage, Renderer};
    +use crate::{
    +    context::MapContext,
    +    render::{render_phase::RenderPhase, Renderer},
    +    schedule::Stage,
    +};
     
     #[derive(Default)]
     pub struct PhaseSortStage;
    diff --git a/docs/api/src/maplibre/render/stages/queue_stage.rs.html b/docs/api/src/maplibre/render/stages/queue_stage.rs.html
    index 9472396e..651fba46 100644
    --- a/docs/api/src/maplibre/render/stages/queue_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/queue_stage.rs.html
    @@ -65,16 +65,15 @@
     65
     66
     67
    -68
     
    //! Queues [PhaseItems](crate::render::render_phase::PhaseItem) for rendering.
     
     use crate::{
         context::MapContext,
         render::{
             eventually::Eventually::Initialized, resource::IndexEntry, tile_view_pattern::TileInView,
    +        RenderState, Renderer,
         },
         schedule::Stage,
    -    RenderState, Renderer,
     };
     
     #[derive(Default)]
    @@ -85,7 +84,6 @@
         fn run(
             &mut self,
             MapContext {
    -            view_state: _,
                 renderer:
                     Renderer {
                         state:
    diff --git a/docs/api/src/maplibre/render/stages/resource_stage.rs.html b/docs/api/src/maplibre/render/stages/resource_stage.rs.html
    index 7ae90c60..15f3083e 100644
    --- a/docs/api/src/maplibre/render/stages/resource_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/resource_stage.rs.html
    @@ -150,9 +150,9 @@
             shaders::{Shader, ShaderTileMetadata},
             tile_pipeline::TilePipeline,
             tile_view_pattern::{TileViewPattern, DEFAULT_TILE_VIEW_SIZE},
    +        Renderer,
         },
         schedule::Stage,
    -    Renderer,
     };
     
     #[derive(Default)]
    diff --git a/docs/api/src/maplibre/render/stages/upload_stage.rs.html b/docs/api/src/maplibre/render/stages/upload_stage.rs.html
    index eccd041c..0975a388 100644
    --- a/docs/api/src/maplibre/render/stages/upload_stage.rs.html
    +++ b/docs/api/src/maplibre/render/stages/upload_stage.rs.html
    @@ -226,6 +226,10 @@
     226
     227
     228
    +229
    +230
    +231
    +232
     
    //! Uploads data to the GPU which is needed for rendering.
     
     use std::iter;
    @@ -238,9 +242,11 @@
             camera::ViewProjection,
             eventually::Eventually::Initialized,
             shaders::{ShaderCamera, ShaderFeatureStyle, ShaderGlobals, ShaderLayerMetadata, Vec4f32},
    +        RenderState, Renderer,
         },
         schedule::Stage,
    -    RenderState, Renderer, Style,
    +    style::Style,
    +    world::World,
     };
     
     #[derive(Default)]
    @@ -251,9 +257,12 @@
         fn run(
             &mut self,
             MapContext {
    -            view_state,
    +            world:
    +                World {
    +                    tile_repository,
    +                    view_state,
    +                },
                 style,
    -            tile_repository,
                 renderer: Renderer { queue, state, .. },
                 ..
             }: &mut MapContext,
    @@ -268,8 +277,8 @@
                     bytemuck::cast_slice(&[ShaderGlobals::new(ShaderCamera::new(
                         view_proj.downcast().into(),
                         view_state
    -                        .camera
    -                        .position
    +                        .camera()
    +                        .position()
                             .to_homogeneous()
                             .cast::<f32>()
                             .unwrap() // TODO: Remove unwrap
    @@ -387,9 +396,8 @@
                     let loaded_layers = buffer_pool
                         .get_loaded_layers_at(&world_coords)
                         .unwrap_or_default();
    -                if let Some(available_layers) = tile_repository
    -                    .iter_tessellated_layers_at(&world_coords)
    -                    .map(|layers| {
    +                if let Some(available_layers) =
    +                    tile_repository.iter_layers_at(&world_coords).map(|layers| {
                             layers
                                 .filter(|result| !loaded_layers.contains(&result.layer_name()))
                                 .collect::<Vec<_>>()
    diff --git a/docs/api/src/maplibre/render/tile_pipeline.rs.html b/docs/api/src/maplibre/render/tile_pipeline.rs.html
    index 962378a3..3488a4b4 100644
    --- a/docs/api/src/maplibre/render/tile_pipeline.rs.html
    +++ b/docs/api/src/maplibre/render/tile_pipeline.rs.html
    @@ -124,7 +124,6 @@
     124
     125
     126
    -127
     
    //! Utility for declaring pipelines.
     
     use std::cmp;
    @@ -133,10 +132,9 @@
         platform::MIN_WEBGL_BUFFER_SIZE,
         render::{
             resource::{FragmentState, RenderPipeline, RenderPipelineDescriptor, VertexState},
    -        settings::Msaa,
    +        settings::{Msaa, RendererSettings},
             shaders::ShaderGlobals,
         },
    -    RendererSettings,
     };
     
     pub struct TilePipeline {
    diff --git a/docs/api/src/maplibre/stages/mod.rs.html b/docs/api/src/maplibre/stages/mod.rs.html
    index cf4755ac..3b4c5218 100644
    --- a/docs/api/src/maplibre/stages/mod.rs.html
    +++ b/docs/api/src/maplibre/stages/mod.rs.html
    @@ -120,7 +120,6 @@
     120
     121
     122
    -123
     
    //! [Stages](Stage) for requesting and preparing data
     
     use std::{
    @@ -135,12 +134,13 @@
     
     use crate::{
         coords::{WorldCoords, WorldTileCoords, Zoom, ZoomLevel},
    +    environment::Environment,
         error::Error,
         io::{
             apc::{AsyncProcedureCall, Context, Message},
             geometry_index::{GeometryIndex, IndexedGeometry, TileIndex},
             pipeline::{PipelineContext, PipelineProcessor, Processable},
    -        source_client::HttpSourceClient,
    +        source_client::{HttpClient, HttpSourceClient},
             tile_pipelines::build_vector_tile_pipeline,
             transferables::{
                 DefaultTessellatedLayer, DefaultTileTessellated, DefaultTransferables,
    @@ -149,27 +149,20 @@
             },
             TileRequest,
         },
    +    kernel::Kernel,
         render::ShaderVertex,
         schedule::Schedule,
         stages::populate_tile_store_stage::PopulateTileStore,
         tessellation::{IndexDataType, OverAlignedVertexBuffer},
    -    Environment, HttpClient, Scheduler,
     };
     
     mod populate_tile_store_stage;
     mod request_stage;
     
     /// Register stages required for requesting and preparing new tiles.
    -pub fn register_stages<E: Environment>(
    -    schedule: &mut Schedule,
    -    http_source_client: HttpSourceClient<E::HttpClient>,
    -    apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -) {
    -    schedule.add_stage(
    -        "request",
    -        RequestStage::<E>::new(http_source_client, apc.clone()),
    -    );
    -    schedule.add_stage("populate_tile_store", PopulateTileStore::<E>::new(apc));
    +pub fn register_stages<E: Environment>(schedule: &mut Schedule, kernel: Rc<Kernel<E>>) {
    +    schedule.add_stage("request", RequestStage::<E>::new(kernel.clone()));
    +    schedule.add_stage("populate_tile_store", PopulateTileStore::<E>::new(kernel));
     }
     
     pub struct HeadedPipelineProcessor<T: Transferables, HC: HttpClient, C: Context<T, HC>> {
    @@ -181,12 +174,16 @@
     impl<'c, T: Transferables, HC: HttpClient, C: Context<T, HC>> PipelineProcessor
         for HeadedPipelineProcessor<T, HC, C>
     {
    -    fn tile_finished(&mut self, coords: &WorldTileCoords) {
    +    fn tile_finished(&mut self, coords: &WorldTileCoords) -> Result<(), Error> {
             self.context
                 .send(Message::TileTessellated(T::TileTessellated::new(*coords)))
         }
     
    -    fn layer_unavailable(&mut self, coords: &WorldTileCoords, layer_name: &str) {
    +    fn layer_unavailable(
    +        &mut self,
    +        coords: &WorldTileCoords,
    +        layer_name: &str,
    +    ) -> Result<(), Error> {
             self.context
                 .send(Message::UnavailableLayer(T::UnavailableLayer::new(
                     *coords,
    @@ -200,7 +197,7 @@
             buffer: OverAlignedVertexBuffer<ShaderVertex, IndexDataType>,
             feature_indices: Vec<u32>,
             layer_data: tile::Layer,
    -    ) {
    +    ) -> Result<(), Error> {
             self.context
                 .send(Message::TessellatedLayer(T::TessellatedLayer::new(
                     *coords,
    @@ -214,11 +211,12 @@
             &mut self,
             coords: &WorldTileCoords,
             geometries: Vec<IndexedGeometry<f64>>,
    -    ) {
    +    ) -> Result<(), Error> {
             // FIXME (wasm-executor): Readd
             /*        if let Ok(mut geometry_index) = self.state.geometry_index.lock() {
                 geometry_index.index_tile(coords, TileIndex::Linear { list: geometries })
             }*/
    +        Ok(())
         }
     }
     
    diff --git a/docs/api/src/maplibre/stages/populate_tile_store_stage.rs.html b/docs/api/src/maplibre/stages/populate_tile_store_stage.rs.html
    index 117a6285..0e2d68f7 100644
    --- a/docs/api/src/maplibre/stages/populate_tile_store_stage.rs.html
    +++ b/docs/api/src/maplibre/stages/populate_tile_store_stage.rs.html
    @@ -68,28 +68,33 @@
     68
     69
     70
    +71
    +72
    +73
     
    //! Receives data from async threads and populates the [`crate::io::tile_repository::TileRepository`].
     
     use std::{borrow::BorrowMut, cell::RefCell, ops::Deref, rc::Rc};
     
     use crate::{
         context::MapContext,
    +    environment::Environment,
         io::{
             apc::{AsyncProcedureCall, Message},
             tile_repository::StoredLayer,
             transferables::{TessellatedLayer, TileTessellated, UnavailableLayer},
         },
    +    kernel::Kernel,
         schedule::Stage,
    -    Environment,
    +    world::World,
     };
     
     pub struct PopulateTileStore<E: Environment> {
    -    apc: Rc<RefCell<E::AsyncProcedureCall>>,
    +    kernel: Rc<Kernel<E>>,
     }
     
     impl<E: Environment> PopulateTileStore<E> {
    -    pub fn new(apc: Rc<RefCell<E::AsyncProcedureCall>>) -> Self {
    -        Self { apc }
    +    pub fn new(kernel: Rc<Kernel<E>>) -> Self {
    +        Self { kernel }
         }
     }
     
    @@ -97,42 +102,43 @@
         fn run(
             &mut self,
             MapContext {
    -            tile_repository, ..
    +            world: World {
    +                tile_repository, ..
    +            },
    +            ..
             }: &mut MapContext,
         ) {
    -        if let Ok(mut apc) = self.apc.deref().try_borrow_mut() {
    -            if let Some(result) = apc.receive() {
    -                match result {
    -                    Message::TileTessellated(tranferred) => {
    -                        let coords = tranferred.coords();
    -                        tile_repository.success(coords);
    -                        tracing::trace!("Tile at {} finished loading", coords);
    -                        log::warn!("Tile at {} finished loading", coords);
    -                    }
    -                    // FIXME: deduplicate
    -                    Message::UnavailableLayer(tranferred) => {
    -                        let layer: StoredLayer = tranferred.to_stored_layer();
    -                        tracing::debug!(
    -                            "Layer {} at {} reached main thread",
    -                            layer.layer_name(),
    -                            layer.get_coords()
    -                        );
    -                        tile_repository.put_tessellated_layer(layer);
    -                    }
    -                    Message::TessellatedLayer(data) => {
    -                        let layer: StoredLayer = data.to_stored_layer();
    -                        tracing::debug!(
    -                            "Layer {} at {} reached main thread",
    -                            layer.layer_name(),
    -                            layer.get_coords()
    -                        );
    -                        log::warn!(
    -                            "Layer {} at {} reached main thread",
    -                            layer.layer_name(),
    -                            layer.get_coords()
    -                        );
    -                        tile_repository.put_tessellated_layer(layer);
    -                    }
    +        if let Some(result) = self.kernel.apc().receive() {
    +            match result {
    +                Message::TileTessellated(tranferred) => {
    +                    let coords = tranferred.coords();
    +                    tile_repository.mark_tile_succeeded(coords);
    +                    tracing::trace!("Tile at {} finished loading", coords);
    +                    log::warn!("Tile at {} finished loading", coords);
    +                }
    +                // FIXME: deduplicate
    +                Message::UnavailableLayer(tranferred) => {
    +                    let layer: StoredLayer = tranferred.to_stored_layer();
    +                    tracing::debug!(
    +                        "Layer {} at {} reached main thread",
    +                        layer.layer_name(),
    +                        layer.get_coords()
    +                    );
    +                    tile_repository.put_layer(layer);
    +                }
    +                Message::TessellatedLayer(data) => {
    +                    let layer: StoredLayer = data.to_stored_layer();
    +                    tracing::debug!(
    +                        "Layer {} at {} reached main thread",
    +                        layer.layer_name(),
    +                        layer.get_coords()
    +                    );
    +                    log::warn!(
    +                        "Layer {} at {} reached main thread",
    +                        layer.layer_name(),
    +                        layer.get_coords()
    +                    );
    +                    tile_repository.put_layer(layer);
                     }
                 }
             }
    diff --git a/docs/api/src/maplibre/stages/request_stage.rs.html b/docs/api/src/maplibre/stages/request_stage.rs.html
    index 03eb70e6..2550b849 100644
    --- a/docs/api/src/maplibre/stages/request_stage.rs.html
    +++ b/docs/api/src/maplibre/stages/request_stage.rs.html
    @@ -170,6 +170,13 @@
     170
     171
     172
    +173
    +174
    +175
    +176
    +177
    +178
    +179
     
    //! Requests tiles which are currently in view
     
     use std::{
    @@ -187,6 +194,7 @@
     use crate::{
         context::MapContext,
         coords::{ViewRegion, WorldTileCoords, ZoomLevel},
    +    environment::Environment,
         error::Error,
         io::{
             apc::{AsyncProcedureCall, AsyncProcedureFuture, Context, Input, Message},
    @@ -197,25 +205,20 @@
             transferables::{Transferables, UnavailableLayer},
             TileRequest,
         },
    +    kernel::Kernel,
         schedule::Stage,
         stages::HeadedPipelineProcessor,
    -    Environment, HttpClient, Scheduler, Style,
    +    style::Style,
    +    world::World,
     };
     
     pub struct RequestStage<E: Environment> {
    -    apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -    http_source_client: HttpSourceClient<E::HttpClient>,
    +    kernel: Rc<Kernel<E>>,
     }
     
     impl<E: Environment> RequestStage<E> {
    -    pub fn new(
    -        http_source_client: HttpSourceClient<E::HttpClient>,
    -        apc: Rc<RefCell<E::AsyncProcedureCall>>,
    -    ) -> Self {
    -        Self {
    -            apc,
    -            http_source_client,
    -        }
    +    pub fn new(kernel: Rc<Kernel<E>>) -> Self {
    +        Self { kernel }
         }
     }
     
    @@ -223,27 +226,35 @@
         fn run(
             &mut self,
             MapContext {
    -            view_state,
    +            world:
    +                World {
    +                    tile_repository,
    +                    view_state,
    +                },
                 style,
    -            tile_repository,
                 ..
             }: &mut MapContext,
         ) {
             let view_region = view_state.create_view_region();
     
    -        if view_state.camera.did_change(0.05) || view_state.zoom.did_change(0.05) {
    +        if view_state.did_camera_change() || view_state.did_zoom_change() {
                 if let Some(view_region) = &view_region {
                     // FIXME: We also need to request tiles from layers above if we are over the maximum zoom level
                     self.request_tiles_in_view(tile_repository, style, view_region);
                 }
             }
     
    -        view_state.camera.update_reference();
    -        view_state.zoom.update_reference();
    +        view_state.update_references();
         }
     }
     
    -pub fn schedule<E: Environment, C: Context<E::Transferables, E::HttpClient>>(
    +pub fn schedule<
    +    E: Environment,
    +    C: Context<
    +        <E::AsyncProcedureCall as AsyncProcedureCall<E::HttpClient>>::Transferables,
    +        E::HttpClient,
    +    >,
    +>(
         input: Input,
         context: C,
     ) -> AsyncProcedureFuture {
    @@ -274,12 +285,15 @@
                     log::error!("{:?}", &e);
                     for to_load in &input.layers {
                         tracing::warn!("layer {} at {} unavailable", to_load, coords);
    -                    context.send(Message::UnavailableLayer(
    -                        <E::Transferables as Transferables>::UnavailableLayer::new(
    +                    // FIXME: Handle result
    +                    context.send(
    +                        Message::UnavailableLayer(<<E::AsyncProcedureCall as AsyncProcedureCall<
    +                            E::HttpClient,
    +                        >>::Transferables as Transferables>::UnavailableLayer::new(
                                 input.coords,
                                 to_load.to_string(),
    -                        ),
    -                    ));
    +                        )),
    +                    );
                     }
                 }
             }
    @@ -304,7 +318,7 @@
             for coords in view_region.iter() {
                 if coords.build_quad_key().is_some() {
                     // TODO: Make tesselation depend on style?
    -                self.request_tile(tile_repository, &coords, &source_layers)
    +                self.request_tile(tile_repository, coords, &source_layers)
                         .unwrap(); // TODO: Remove unwrap
                 }
             }
    @@ -313,26 +327,26 @@
         fn request_tile(
             &self,
             tile_repository: &mut TileRepository,
    -        coords: &WorldTileCoords,
    +        coords: WorldTileCoords,
             layers: &HashSet<String>,
         ) -> Result<(), Error> {
    -        /*        if !tile_repository.is_layers_missing(coords, layers) {
    +        /* TODO: is this still required?
    +        if !tile_repository.is_layers_missing(coords, layers) {
                 return Ok(false);
             }*/
     
    -        if tile_repository.needs_fetching(&coords) {
    +        if tile_repository.has_tile(&coords) {
                 tile_repository.create_tile(coords);
     
                 tracing::info!("new tile request: {}", &coords);
    -            self.apc.deref().borrow().schedule(
    +            self.kernel.apc().call(
                     Input::TileRequest(TileRequest {
    -                    coords: *coords,
    +                    coords,
                         layers: layers.clone(),
                     }),
                     schedule::<
                         E,
                         <E::AsyncProcedureCall as AsyncProcedureCall<
    -                        E::Transferables,
                             E::HttpClient,
                         >>::Context,
                     >,
    diff --git a/docs/api/src/maplibre/tessellation/mod.rs.html b/docs/api/src/maplibre/tessellation/mod.rs.html
    index e8f32f7e..76132b1e 100644
    --- a/docs/api/src/maplibre/tessellation/mod.rs.html
    +++ b/docs/api/src/maplibre/tessellation/mod.rs.html
    @@ -116,7 +116,6 @@
     116
     117
     118
    -119
     
    //! Tessellation for lines and polygons is implemented here.
     
     use std::ops::Add;
    @@ -181,7 +180,6 @@
             V: Copy,
             I: Copy,
         {
    -        // FIXME (wasm-executor), make this fn not needed
             let mut buffers = VertexBuffers::with_capacity(0, 0);
             buffers.vertices = Vec::from(vertices);
             buffers.indices = Vec::from(indices);
    diff --git a/docs/api/src/maplibre/window.rs.html b/docs/api/src/maplibre/window.rs.html
    index 27f14493..d25c0ac9 100644
    --- a/docs/api/src/maplibre/window.rs.html
    +++ b/docs/api/src/maplibre/window.rs.html
    @@ -55,15 +55,13 @@
     55
     56
     57
    -58
    -59
     
    //! Utilities for the window system.
     
     use std::{cell::RefCell, rc::Rc};
     
     use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle};
     
    -use crate::{Environment, HttpClient, InteractiveMapSchedule};
    +use crate::environment::Environment;
     
     /// Window of a certain [`WindowSize`]. This can either be a proper window or a headless one.
     pub trait MapWindow {
    @@ -75,7 +73,12 @@
     pub trait HeadedMapWindow: MapWindow {
         type RawWindow: HasRawWindowHandle + HasRawDisplayHandle;
     
    -    fn inner(&self) -> &Self::RawWindow;
    +    fn raw(&self) -> &Self::RawWindow;
    +
    +    // TODO: Can we avoid this?
    +    fn request_redraw(&self);
    +
    +    fn id(&self) -> u64;
     }
     
     /// A configuration for a window which determines the corresponding implementation of a
    @@ -86,13 +89,6 @@
         fn create(&self) -> Self::MapWindow;
     }
     
    -/// The event loop is responsible for processing events and propagating them to the map renderer.
    -/// Only non-headless windows use an [`EventLoop`].
    -pub trait EventLoop<E: Environment> {
    -    // FIXME (wasm-executor): Avoid Rc, change ownership model
    -    fn run(self, map_schedule: Rc<RefCell<InteractiveMapSchedule<E>>>, max_frames: Option<u64>);
    -}
    -
     /// Window size with a width and an height in pixels.
     #[derive(Clone, Copy, Eq, PartialEq)]
     pub struct WindowSize {
    diff --git a/docs/api/src/maplibre/world.rs.html b/docs/api/src/maplibre/world.rs.html
    new file mode 100644
    index 00000000..90070199
    --- /dev/null
    +++ b/docs/api/src/maplibre/world.rs.html
    @@ -0,0 +1,328 @@
    +world.rs - source
    1
    +2
    +3
    +4
    +5
    +6
    +7
    +8
    +9
    +10
    +11
    +12
    +13
    +14
    +15
    +16
    +17
    +18
    +19
    +20
    +21
    +22
    +23
    +24
    +25
    +26
    +27
    +28
    +29
    +30
    +31
    +32
    +33
    +34
    +35
    +36
    +37
    +38
    +39
    +40
    +41
    +42
    +43
    +44
    +45
    +46
    +47
    +48
    +49
    +50
    +51
    +52
    +53
    +54
    +55
    +56
    +57
    +58
    +59
    +60
    +61
    +62
    +63
    +64
    +65
    +66
    +67
    +68
    +69
    +70
    +71
    +72
    +73
    +74
    +75
    +76
    +77
    +78
    +79
    +80
    +81
    +82
    +83
    +84
    +85
    +86
    +87
    +88
    +89
    +90
    +91
    +92
    +93
    +94
    +95
    +96
    +97
    +98
    +99
    +100
    +101
    +102
    +103
    +104
    +105
    +106
    +107
    +108
    +109
    +110
    +111
    +112
    +113
    +114
    +115
    +116
    +117
    +118
    +119
    +120
    +121
    +122
    +123
    +124
    +125
    +126
    +127
    +128
    +129
    +130
    +131
    +132
    +133
    +134
    +135
    +136
    +137
    +138
    +139
    +140
    +141
    +142
    +143
    +144
    +145
    +146
    +147
    +148
    +149
    +150
    +151
    +152
    +153
    +154
    +155
    +156
    +157
    +158
    +159
    +160
    +161
    +162
    +163
    +
    use std::ops::{Deref, DerefMut};
    +
    +use cgmath::{Angle, Point3};
    +
    +use crate::{
    +    context::MapContext,
    +    coords::{LatLon, ViewRegion, WorldCoords, Zoom, ZoomLevel, TILE_SIZE},
    +    io::tile_repository::TileRepository,
    +    render::camera::{Camera, Perspective, ViewProjection},
    +    util::ChangeObserver,
    +    window::WindowSize,
    +};
    +
    +pub struct World {
    +    pub view_state: ViewState,
    +    pub tile_repository: TileRepository,
    +}
    +
    +impl World {
    +    pub fn new_at<P: Into<cgmath::Deg<f64>>>(
    +        window_size: WindowSize,
    +        initial_center: LatLon,
    +        initial_zoom: Zoom,
    +        pitch: P,
    +    ) -> Self {
    +        Self::new(
    +            window_size,
    +            WorldCoords::from_lat_lon(initial_center, initial_zoom),
    +            initial_zoom,
    +            pitch,
    +        )
    +    }
    +
    +    pub fn new<P: Into<cgmath::Deg<f64>>>(
    +        window_size: WindowSize,
    +        initial_center: WorldCoords,
    +        initial_zoom: Zoom,
    +        pitch: P,
    +    ) -> Self {
    +        let position = initial_center;
    +        let view_state = ViewState::new(
    +            window_size,
    +            position,
    +            initial_zoom,
    +            pitch,
    +            cgmath::Deg(110.0),
    +        );
    +
    +        let tile_repository = TileRepository::new();
    +
    +        World {
    +            view_state,
    +            tile_repository,
    +        }
    +    }
    +
    +    pub fn view_state(&self) -> &ViewState {
    +        &self.view_state
    +    }
    +
    +    pub fn view_state_mut(&mut self) -> &mut ViewState {
    +        &mut self.view_state
    +    }
    +}
    +
    +/// Stores the camera configuration.
    +pub struct ViewState {
    +    zoom: ChangeObserver<Zoom>,
    +    camera: ChangeObserver<Camera>,
    +    perspective: Perspective,
    +}
    +
    +impl ViewState {
    +    pub fn new<F: Into<cgmath::Rad<f64>>, P: Into<cgmath::Deg<f64>>>(
    +        window_size: WindowSize,
    +        position: WorldCoords,
    +        zoom: Zoom,
    +        pitch: P,
    +        fovy: F,
    +    ) -> Self {
    +        let tile_center = TILE_SIZE / 2.0;
    +        let fovy = fovy.into();
    +        let height = tile_center / (fovy / 2.0).tan();
    +
    +        let camera = Camera::new(
    +            (position.x, position.y, height),
    +            cgmath::Deg(-90.0),
    +            pitch.into(),
    +            window_size.width(),
    +            window_size.height(),
    +        );
    +
    +        let perspective = Perspective::new(
    +            window_size.width(),
    +            window_size.height(),
    +            cgmath::Deg(110.0),
    +            // in tile.vertex.wgsl we are setting each layer's final `z` in ndc space to `z_index`.
    +            // This means that regardless of the `znear` value all layers will be rendered as part
    +            // of the near plane.
    +            // These values have been selected experimentally:
    +            // https://www.sjbaker.org/steve/omniv/love_your_z_buffer.html
    +            1024.0,
    +            2048.0,
    +        );
    +
    +        Self {
    +            zoom: ChangeObserver::new(zoom),
    +            camera: ChangeObserver::new(camera),
    +            perspective,
    +        }
    +    }
    +
    +    pub fn resize(&mut self, width: u32, height: u32) {
    +        self.perspective.resize(width, height);
    +        self.camera.resize(width, height);
    +    }
    +
    +    pub fn create_view_region(&self) -> Option<ViewRegion> {
    +        self.camera
    +            .view_region_bounding_box(&self.view_projection().invert())
    +            .map(|bounding_box| {
    +                ViewRegion::new(bounding_box, 0, 32, *self.zoom, self.visible_level())
    +            })
    +    }
    +
    +    pub fn view_projection(&self) -> ViewProjection {
    +        self.camera.calc_view_proj(&self.perspective)
    +    }
    +
    +    pub fn visible_level(&self) -> ZoomLevel {
    +        self.zoom.level()
    +    }
    +
    +    pub fn zoom(&self) -> Zoom {
    +        *self.zoom
    +    }
    +
    +    pub fn did_zoom_change(&self) -> bool {
    +        self.zoom.did_change(0.05)
    +    }
    +
    +    pub fn update_zoom(&mut self, new_zoom: Zoom) {
    +        *self.zoom = new_zoom;
    +        log::info!("zoom: {}", new_zoom);
    +    }
    +
    +    pub fn camera(&self) -> &Camera {
    +        self.camera.deref()
    +    }
    +
    +    pub fn camera_mut(&mut self) -> &mut Camera {
    +        self.camera.deref_mut()
    +    }
    +
    +    pub fn did_camera_change(&self) -> bool {
    +        self.camera.did_change(0.05)
    +    }
    +
    +    pub fn update_references(&mut self) {
    +        self.camera.update_reference();
    +        self.zoom.update_reference();
    +    }
    +}
    +
    +
    \ No newline at end of file