use super::query::QueryCollection;
use super::types::*;
use crate::ast::{FilterExpr, Value};
use alloc::string::String;
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ScrollOrderBy {
pub field: String,
pub direction: OrderDirection,
pub start_from: Option<Value>,
}
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ScrollStmt {
pub collection: String,
pub limit: u64,
pub filter: Option<Box<FilterExpr>>,
pub after: Option<PointId>,
pub order_by: Option<ScrollOrderBy>,
pub shard_key: Option<super::ShardKey>,
pub with_payload: Option<PayloadSelector>,
pub with_vector: Option<VectorSelector>,
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
pub limit_param: Option<String>,
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
pub limit_span: Option<crate::error::Span>,
}
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct CountStmt {
pub collection: QueryCollection,
pub filter: Option<Box<FilterExpr>>,
pub shard_key: Option<super::ShardKey>,
pub exact: Option<bool>,
}
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct FacetStmt {
pub key: String,
pub collection: QueryCollection,
pub filter: Option<Box<FilterExpr>>,
pub limit: Option<u64>,
pub exact: Option<bool>,
pub shard_key: Option<super::ShardKey>,
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
pub limit_param: Option<String>,
#[cfg_attr(
feature = "serde",
serde(default, skip_serializing_if = "Option::is_none")
)]
pub limit_span: Option<crate::error::Span>,
}