pub struct QueryBuilder { /* private fields */ }
Expand description
Query builder for database operations
Implementations§
Source§impl QueryBuilder
impl QueryBuilder
Sourcepub fn max_rows(self, max_rows: u64) -> Self
pub fn max_rows(self, max_rows: u64) -> Self
Set maximum number of rows to return
§Arguments
max_rows
- Maximum number of rows
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let result = client.databases()
.query("my-app-db")
.max_rows(100)
.execute("SELECT * FROM users")
.await?;
Ok(())
}
Sourcepub fn timeout(self, timeout_ms: u64) -> Self
pub fn timeout(self, timeout_ms: u64) -> Self
Set query timeout
§Arguments
timeout_ms
- Timeout in milliseconds
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let result = client.databases()
.query("my-app-db")
.timeout(30000) // 30 seconds
.execute("SELECT * FROM large_table")
.await?;
Ok(())
}
Sourcepub fn include_meta(self) -> Self
pub fn include_meta(self) -> Self
Include execution metadata in the response
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let result = client.databases()
.query("my-app-db")
.include_meta()
.execute("SELECT * FROM users")
.await?;
if let Some(execution_time) = result.meta.execution_time_ms {
println!("Query executed in {}ms", execution_time);
}
Ok(())
}
Sourcepub async fn execute<S: AsRef<str>>(self, sql: S) -> Result<QueryResult>
pub async fn execute<S: AsRef<str>>(self, sql: S) -> Result<QueryResult>
Execute a SQL query
§Arguments
sql
- SQL query string
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let result = client.databases()
.query("my-app-db")
.execute("SELECT name, email FROM users WHERE active = true")
.await?;
for row in result.data.rows {
println!("User: {} - {}", row[0], row[1]);
}
Ok(())
}
Sourcepub async fn batch<S: AsRef<str>>(
self,
queries: Vec<S>,
) -> Result<Vec<QueryResult>>
pub async fn batch<S: AsRef<str>>( self, queries: Vec<S>, ) -> Result<Vec<QueryResult>>
Execute multiple queries in a batch
§Arguments
queries
- Vector of SQL query strings
§Examples
use zero_trust_sdk::{ZeroTrustClient, Config};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::new("https://api.zerotrust.com")?
.with_token("your-jwt-token");
let client = ZeroTrustClient::new(config).await?;
let queries = vec![
"SELECT COUNT(*) FROM users",
"SELECT COUNT(*) FROM products",
"SELECT COUNT(*) FROM orders"
];
let results = client.databases()
.query("my-app-db")
.batch(queries)
.await?;
for result in results {
println!("Query returned {} rows", result.meta.row_count);
}
Ok(())
}
Trait Implementations§
Auto Trait Implementations§
impl Freeze for QueryBuilder
impl !RefUnwindSafe for QueryBuilder
impl Send for QueryBuilder
impl Sync for QueryBuilder
impl Unpin for QueryBuilder
impl !UnwindSafe for QueryBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more