pub struct Query { /* private fields */ }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;
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");Important: You should use the RawString type if you’re willing to directly add things like
Vec<u8> to your query.
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
sourceimpl Query
impl Query
sourcepub fn arg(self, arg: impl IntoSkyhashAction) -> Self
pub fn arg(self, arg: impl IntoSkyhashAction) -> Self
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
sourcepub fn push(&mut self, arg: impl IntoSkyhashAction)
pub fn push(&mut self, arg: impl IntoSkyhashAction)
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
sourcepub fn into_raw_query(self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
Available on crate feature dbg only.
pub fn into_raw_query(self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
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
sourceimpl<T> From<T> for Query where
T: IntoSkyhashAction,
impl<T> From<T> for Query where
T: IntoSkyhashAction,
impl StructuralPartialEq for Query
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more