Table of contents
Services
Create service instance (Singleton) in one step
use wildbird::prelude::*;
#[service(construct = "init")]
struct HelloService {
component_name: String,
}
impl HelloService {
fn init() -> HelloService {
HelloService {
component_name: "Hello penguins 🐧".to_string(),
}
}
fn say_hello(&self) {
println!("Hello! 👋")
}
}
fn main() {
HelloService.say_hello();
}
use wildbird::derive::*;
#[service(construct = "async init")]
struct AsyncService {}
impl AsyncService {
async fn init() -> AsyncService {
AsyncService {}
}
fn greeting(&self) {
println!("Hello 🗼")
}
}
fn main() {
AsyncService.greeting();
}
use wildbird::derive::*;
#[service]
struct HelloService {
component_name: String,
}
#[service(construct)]
async fn hello_init() -> HelloService {
HelloService {
component_name: "Hello 🚀".to_string(),
}
}
Globals
Create global
use wildbird::derive::*;
#[var]
pub fn my_name() -> String {
String::from("Hawk 🦅")
}
fn main() {
println!("Hello from 🇵🇱, {}", &*MY_NAME);
}
use wildbird::derive::*;
#[var(name = "HOME")]
fn custom_name() -> String {
std::env::var("HOME").expect("env:HOME not found")
}
fn main() {
println!("Home: {}", &*HOME);
}
use std::time::Duration;
use wildbird::derive::*;
use std::thread::sleep;
#[var(name = "USERS")]
async fn http_fetch_users() -> String {
sleep(Duration::from_millis(200));
String::from("⏱️")
}
use std::time::Duration;
use wildbird::derive::*;
use std::thread::sleep;
#[var(name = "PORT")]
async fn init_http_service(callback: wildbird::Callback<String>) {
sleep(Duration::from_millis(200));
println!("Server started");
callback.call("8080".to_string());
}
Get started
Add dependency
Cargo.toml
[dependencies]
wildbird = "^0.0.10"
Feature flags
Optional features
- tokio - Use to support tokio async environment
[dependencies]
tokio = "1.28.2"
wildbird = {version = "^0.0.10", features = ["tokio"]}
Project status
Project is in early state of development. Each release is prior tested but api changes will most likely to happen in the future as the project progress.
Created By
License
MIT
BACK TO TOP ⬆️