Struct skytable::syncio::TcpConnection
source · pub struct TcpConnection<C: Write + Read> { /* private fields */ }
Expand description
The underlying connection type
This can’t be constructed directly!
Implementations§
source§impl<C: Write + Read> TcpConnection<C>
impl<C: Write + Read> TcpConnection<C>
sourcepub fn query(&mut self, q: &Query) -> ClientResult<Response>
pub fn query(&mut self, q: &Query) -> ClientResult<Response>
Run a query and return a raw Response
sourcepub fn query_parse<T: FromResponse>(&mut self, q: &Query) -> ClientResult<T>
pub fn query_parse<T: FromResponse>(&mut self, q: &Query) -> ClientResult<T>
Run and parse a query into the indicated type. The type must implement FromResponse
Examples found in repository?
examples/custom_types.rs (line 50)
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
fn main() {
let mut db = Config::new_default("username", "password")
.connect()
.unwrap();
// set up schema
// create space
db.query_parse::<()>(&query!("create space myspace"))
.unwrap();
// create model
db.query_parse::<()>(&query!(
"create model myspace.mymodel(username: string, password: string, followers: uint64, null email: string"
))
.unwrap();
// insert data
let our_user = User::new("myuser".into(), "pass123".into(), 0, None);
db.query_parse::<()>(&query!(
"insert into myspace.mymodel(?, ?, ?, ?)",
our_user.clone()
))
.unwrap();
// select data
let ret_user: User = db
.query_parse(&query!(
"select * from myspace.mymodel WHERE username = ?",
&our_user.username
))
.unwrap();
assert_eq!(our_user, ret_user);
}
More examples
examples/simple.rs (line 17)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
fn main() {
let mut db = Config::new_default("username", "password")
.connect()
.unwrap();
// set up schema
// create space
db.query_parse::<()>(&query!("create space myspace"))
.unwrap();
// create model
db.query_parse::<()>(&query!(
"create model myspace.mymodel(username: string, password: string, followers: uint64"
))
.unwrap();
// manipulate data
let (form_username, form_pass) = dummy_web_fetch_username_password();
// insert some data
db.query_parse::<()>(&query!(
"insert into myspace.mymodel(?, ?, ?)",
&form_username,
form_pass,
100_000_000u64
))
.unwrap();
// get it back
let (password, followers): (String, u64) = db
.query_parse(&query!(
"select password, followers FROM myspace.mymodel WHERE username = ?",
&form_username
))
.unwrap();
assert_eq!(password, "rick123", "password changed!");
// send to our client
dummy_respond_to_request(followers);
// update followers to account for huge numbers who were angry after being rickrolled
db.query_parse::<()>(&query!(
"update myspace.mymodel SET followers -= ? WHERE username = ?",
50_000_000u64,
&form_username
))
.unwrap();
// alright, everyone is tired from being rickrolled so we'll have to ban rick's account
db.query_parse::<()>(&query!(
"delete from myspace.mymodel where username = ?",
&form_username
))
.unwrap();
}
sourcepub fn reset_buffer(&mut self)
pub fn reset_buffer(&mut self)
Call this if the internally allocated buffer is growing too large and impacting your performance. However, normally you will not need to call this
Trait Implementations§
Auto Trait Implementations§
impl<C> RefUnwindSafe for TcpConnection<C>where
C: RefUnwindSafe,
impl<C> Send for TcpConnection<C>where
C: Send,
impl<C> Sync for TcpConnection<C>where
C: Sync,
impl<C> Unpin for TcpConnection<C>where
C: Unpin,
impl<C> UnwindSafe for TcpConnection<C>where
C: UnwindSafe,
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