///|
fn main {
  let config = {
    ..@qc.RuleConfig::default(),
    range_min: Some(-2.0),
    range_max: Some(35.0),
    max_delta: Some(3.0),
    processing_time: 20260811,
  }
  let observations = [
    @qc.Observation::new(
      id="demo-001",
      timestamp=0,
      latitude=30.0,
      longitude=122.0,
      variable="temperature",
      value=Some(18.4),
      unit="degC",
      platform="demo-buoy",
    ),
    @qc.Observation::new(
      id="demo-002",
      timestamp=600,
      latitude=30.01,
      longitude=122.01,
      variable="temperature",
      value=Some(23.9),
      unit="degC",
      platform="demo-buoy",
    ),
    @qc.Observation::new(
      id="demo-003",
      timestamp=1200,
      latitude=30.02,
      longitude=122.02,
      variable="temperature",
      value=None,
      unit="degC",
      platform="demo-buoy",
    ),
  ]
  println(@qc.render_report(@qc.inspect(observations, config)))
}