Skip to main content

dioxus_maplibre/options/
queries.rs

1//! Query and feature-state option models.
2
3use serde::{Deserialize, Serialize};
4/// Options for querying rendered or source features
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
6#[serde(rename_all = "camelCase")]
7pub struct QueryOptions {
8    /// Restrict query to specific layer IDs
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub layers: Option<Vec<String>>,
11
12    /// Filter expression to apply
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub filter: Option<serde_json::Value>,
15}
16
17/// Identifies a feature for feature state operations
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct FeatureIdentifier {
21    /// Source ID
22    pub source: String,
23
24    /// Feature ID (must be numeric for MapLibre feature state)
25    pub id: i64,
26
27    /// Source layer (required for vector tile sources)
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub source_layer: Option<String>,
30}