Crates.io | worker-bindings |
lib.rs | worker-bindings |
version | |
source | src |
created_at | 2024-06-25 09:33:05.024211 |
updated_at | 2024-11-08 20:07:07.275327 |
description | Bindings in wrangler.toml to Rust struct |
homepage | https://crates.io/crates/worker-bindings |
repository | https://github.com/ohkami-rs/worker-bindings |
max_upload_size | |
id | 1283152 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Automatically detect bindings in wrangler.toml
and bind them to a Rust struct
wrangler.toml
[vars]
MY_VAR = "my-variable"
[[kv_namespaces]]
binding = "MY_KV"
id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
lib.rs
use worker::*;
use worker_bindings::bindings;
/* This knows all your bindings in wrangler.toml */
#[bindings]
struct Bindings;
#[event(fetch)]
pub async fn main(req: Request, env: Env, _ctx: worker::Context) -> Result<Response> {
/* load bindings from env */
let b = Bindings::from(&env);
let var: &'static str = b.MY_VAR;
let data = b.MY_KV.get("data").text().await?;
//...
}
#[bindings]
works in a cargo workspace but has a limitation that it can't resolve wrangler.toml
if more than one members have wrangler.toml
s.worker-bindings
is licensed under the MIT License (LICENSE or https://opensource.org/licenses/MIT).