charybdis 1.1.0

High-Performance ORM for ScyllaDB
Documentation
use crate::errors::CharybdisError;
use crate::scylla::PagingState;
use scylla::client::caching_session::CachingSession;
use scylla::client::pager::QueryPager;
use scylla::response::query_result::QueryResult;
use scylla::response::PagingStateResponse;
use scylla::serialize::row::SerializeRow;

pub async fn execute_unpaged(
    session: &CachingSession,
    query: &'static str,
    values: impl SerializeRow,
) -> Result<QueryResult, CharybdisError> {
    let res = session
        .execute_unpaged(query, values)
        .await
        .map_err(|e| CharybdisError::ExecutionError(query, e))?;

    Ok(res)
}

pub async fn execute_iter(
    session: &CachingSession,
    query: &'static str,
    values: impl SerializeRow,
) -> Result<QueryPager, CharybdisError> {
    let res = session
        .execute_iter(query, values)
        .await
        .map_err(|e| CharybdisError::PagerExecutionError(query, e))?;

    Ok(res)
}

pub async fn execute_single_page(
    session: &CachingSession,
    query: &'static str,
    values: impl SerializeRow,
    paging_state: PagingState,
) -> Result<(QueryResult, PagingStateResponse), CharybdisError> {
    let res = session
        .execute_single_page(query, values, paging_state)
        .await
        .map_err(|e| CharybdisError::ExecutionError(query, e))?;

    Ok(res)
}