2024-01-30 17:19:34 +01:00
|
|
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
2023-11-13 22:20:50 +01:00
|
|
|
use chorus::instance::Instance;
|
|
|
|
use chorus::types::LoginSchema;
|
|
|
|
|
2023-11-18 18:39:01 +01:00
|
|
|
#[tokio::main(flavor = "current_thread")]
|
2023-11-13 22:20:50 +01:00
|
|
|
async fn main() {
|
2023-12-15 00:10:33 +01:00
|
|
|
let mut instance = Instance::new("https://example.com/")
|
2023-11-13 22:20:50 +01:00
|
|
|
.await
|
|
|
|
.expect("Failed to connect to the Spacebar server");
|
|
|
|
// Assume, you already have an account created on this instance. Registering an account works
|
|
|
|
// the same way, but you'd use the Register-specific Structs and methods instead.
|
|
|
|
let login_schema = LoginSchema {
|
|
|
|
login: "user@example.com".to_string(),
|
|
|
|
password: "Correct-Horse-Battery-Staple".to_string(),
|
|
|
|
..Default::default()
|
|
|
|
};
|
|
|
|
// Each user connects to the Gateway. The Gateway connection lives on a seperate thread. Depending on
|
|
|
|
// the runtime feature you choose, this can potentially take advantage of all of your computers' threads.
|
|
|
|
let user = instance
|
|
|
|
.login_account(login_schema)
|
|
|
|
.await
|
|
|
|
.expect("An error occurred during the login process");
|
|
|
|
dbg!(user.belongs_to);
|
|
|
|
dbg!(&user.object.read().unwrap().username);
|
|
|
|
}
|