use crate::{
SnowflakeError,
driver::{Protocol, primitives::row::Row, query::Query},
http::client::SnowflakeHttpClient,
};
pub trait Executor<C: SnowflakeHttpClient, T: Protocol>
where
T::Query<C>: Query<C>,
{
fn query(
&mut self,
query: impl ToString,
) -> impl Future<Output = Result<T::Query<C>, SnowflakeError>>;
fn fetch_all(
&mut self,
query: impl ToString,
) -> impl Future<Output = Result<Vec<Row>, SnowflakeError>>;
fn ping(&mut self) -> impl Future<Output = Result<(), SnowflakeError>>;
}