wgsl_bindgen 0.22.1

Type safe Rust bindings workflow for wgsl shaders in wgpu
Documentation
---
source: wgsl_bindgen/src/generate/consts.rs
---
pub struct OverrideConstants {
  pub b1: Option<bool>,
  pub b2: Option<bool>,
  pub b3: bool,
  pub f1: Option<f32>,
  pub f2: f32,
  pub i1: Option<i32>,
  pub i2: i32,
  pub i3: Option<i32>,
  pub a: Option<f32>,
  pub b: Option<f32>,
}
impl OverrideConstants {
  pub fn constants(&self) -> Vec<(&'static str, f64)> {
    let mut entries = vec![
      ("b3".to_owned(), if self.b3 { 1.0 } else { 0.0 }),
      ("f2".to_owned(), self.f2 as f64),
      ("i2".to_owned(), self.i2 as f64),
    ];
    if let Some(value) = self.b1 {
      entries.insert("b1".to_owned(), if value { 1.0 } else { 0.0 });
    };
    if let Some(value) = self.b2 {
      entries.insert("b2".to_owned(), if value { 1.0 } else { 0.0 });
    };
    if let Some(value) = self.f1 {
      entries.insert("f1".to_owned(), value as f64);
    };
    if let Some(value) = self.i1 {
      entries.insert("i1".to_owned(), value as f64);
    };
    if let Some(value) = self.i3 {
      entries.insert("i3".to_owned(), value as f64);
    };
    if let Some(value) = self.a {
      entries.insert("0".to_owned(), value as f64);
    };
    if let Some(value) = self.b {
      entries.insert("35".to_owned(), value as f64);
    }
    entries
  }
}