Struct skytable::Query[][src]

pub struct Query { /* fields omitted */ }
Expand description

This struct represents a single simple query as defined by the Skyhash protocol

A simple query is serialized into a flat string array which is nothing but a Skyhash serialized equivalent of an array of String items. To construct a query like SET x 100, one needs to:

use skytable::Query;
fn main() {
    let q = Query::new().arg("set").arg("x").arg("100");
}

You can now run this with a Connection or an AsyncConnection. You can also created queries From objects that can be turned into actions. For example, these are completely valid constructions:

use skytable::Query;

let q1 = Query::from(["mget", "x", "y", "z"]);
let q2 = Query::from(vec!["mset", "x", "100", "y", "200", "z", "300"]);
let q3 = Query::from("get").arg("x");

Finally, queries can also be created by taking references. For example:

use skytable::Query;

let my_keys = vec!["key1", "key2", "key3"];
let mut q = Query::new();
for key in my_keys {
    q.push(key);
}

Implementations

impl Query[src]

pub fn new() -> Self[src]

Create a new empty query with no arguments

pub fn arg(self, arg: impl IntoSkyhashAction) -> Self[src]

Add an argument to a query returning a Query. This can be used for queries built using the builder pattern. If you need to add items, by reference, consider using Query::push

Panics

This method will panic if the passed arg is empty

pub fn push(&mut self, arg: impl IntoSkyhashAction)[src]

Add an argument to a query taking a reference to it

This is useful if you are adding queries in a loop than building it using the builder pattern (to use the builder-pattern, use Query::arg)

Panics

This method will panic if the passed arg is empty

pub fn into_raw_query(&self) -> Vec<u8>[src]

This is supported on crate feature dbg only.

Get the raw bytes of a query

This is a function that is not intended for daily use but is for developers working to improve/debug or extend the Skyhash protocol. Skytable itself uses this function to generate raw queries. Once you’re done passing the arguments to a query, running this function will return the raw query that would be written to the stream, serialized using the Skyhash serialization protocol

Trait Implementations

impl Debug for Query[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<T> From<T> for Query where
    T: IntoSkyhashAction, 
[src]

fn from(action: T) -> Self[src]

Performs the conversion.

impl PartialEq<Query> for Query[src]

fn eq(&self, other: &Query) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Query) -> bool[src]

This method tests for !=.

impl StructuralPartialEq for Query[src]

Auto Trait Implementations

impl RefUnwindSafe for Query

impl Send for Query

impl Sync for Query

impl Unpin for Query

impl UnwindSafe for Query

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.