# gluex-rcdb
Rust bindings for the GlueX Run Condition Database (RCDB). This crate provides a simple interface for loading run conditions from RCDB which match the given context (run numbers and filters). It also provides common aliases used to determine production data.
## Installation
```bash
cargo add gluex-rcdb
```
## Example
```rust
use gluex_core::run_periods::RunPeriod;
use gluex_rcdb::{conditions, RCDBContext, RCDB};
fn main() -> gluex_rcdb::RCDBResult<()> {
// Uses RCDB_CONNECTION by default; use RCDB::open(...) for explicit paths.
let rcdb = RCDB::new()?;
let filters = conditions::aliases::approved_production(RunPeriod::RP2018_08);
let ctx = RCDBContext::default().with_run_range(55_000..=55_050).filter(filters);
let rows = rcdb.fetch(["polarization_angle", "polarization_direction"], &ctx)?;
for (run, values) in rows {
if let Some(angle) = values
.get("polarization_angle")
.and_then(|v| v.as_float())
{
println!("run {run}: angle = {angle:.2}");
}
}
Ok(())
}
```
## License
Dual-licensed under Apache-2.0 or MIT.