// Generated by tools/service-contracts/rust.py. Do not edit.
#![doc="Transport-independent service interface for local and remote calls."]useasync_trait::async_trait;usespiral_contract::auth::AuthHeader;usespiral_contract::call::CallError;usespiral_contract::stream::ByteStream;usecrate::api::sql::objects::*;/// Service implementations authenticate Authorization headers and enforce resource permissions.
#[async_trait]pubtraitSqlApi: Send + Sync + 'static {/// Execute one query and stream its complete result. There is no implicit preview row limit;
/// use SQL LIMIT when a bounded result is intended. The response starts with the Arrow schema,
/// including for zero rows, followed by record batches as they become available. Consumption
/// applies backpressure; clients can process batches without collecting the whole response.
/// Only an explicit Arrow end-of-stream marker establishes success. Named errors use the
/// standard contract envelope before output starts. After output starts, any failure terminates
/// the response without that marker and the partial result must not be treated as complete.
/// Closing the response cancels execution and releases admission and memory. Queries cannot be
/// resumed; rerunning requires an explicit new request.
async fnquery(&self,
auth_header: AuthHeader,
request: Query,
)->Result<ByteStream, CallError<SqlError>>;}