Struct skytable::config::Config

source ·
pub struct Config { /* private fields */ }
Expand description

Configuration for a Skytable connection

Implementations§

source§

impl Config

source

pub async fn connect_async(&self) -> ClientResult<ConnectionAsync>

Establish an async connection to the database using the current configuration

source

pub async fn connect_tls_async( &self, cert: &str ) -> ClientResult<ConnectionTlsAsync>

Establish an async TLS connection to the database using the current configuration. Pass the certificate in PEM format.

source§

impl Config

source

pub fn new_default(username: &str, password: &str) -> Self

Create a new Config using the default connection settings and using the provided username and password

Examples found in repository?
examples/custom_types.rs (line 44)
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
Hide additional examples
examples/simple.rs (line 11)
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();
}
source

pub fn new(host: &str, port: u16, username: &str, password: &str) -> Self

Create a new Config using the given settings

source

pub fn host(&self) -> &str

Returns the host setting for this this configuration

source

pub fn port(&self) -> u16

Returns the port setting for this this configuration

source

pub fn username(&self) -> &str

Returns the username setting for this this configuration

source

pub fn password(&self) -> &str

Returns the password set using this configuration

source§

impl Config

source

pub fn connect(&self) -> ClientResult<Connection>

Establish a connection to the database using the current configuration

Examples found in repository?
examples/custom_types.rs (line 45)
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
Hide additional examples
examples/simple.rs (line 12)
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();
}
source

pub fn connect_tls(&self, cert: &str) -> ClientResult<ConnectionTls>

Establish a TLS connection to the database using the current configuration. Pass the certificate in PEM format.

Trait Implementations§

source§

impl Clone for Config

source§

fn clone(&self) -> Config

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Config

source§

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

Formats the value using the given formatter. Read more
source§

impl PartialEq for Config

source§

fn eq(&self, other: &Config) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for Config

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.