struct struct_base {
  data : i32;
  leftIndex : i32;
  rightIndex : i32;
};

[[block]]
struct buf0 {
  injectionSwitch : vec2<f32>;
};

var<private> struct_array : array<struct_base, 3>;

[[group(0), binding(0)]] var<uniform> x_8 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var index : i32;
  struct_array = array<struct_base, 3>(struct_base(1, 1, 1), struct_base(1, 1, 1), struct_base(1, 1, 1));
  index = 1;
  struct_array[1].rightIndex = 1;
  let x_39 : i32 = struct_array[1].leftIndex;
  if ((x_39 == 1)) {
    let x_45 : f32 = x_8.injectionSwitch.x;
    let x_48 : i32 = struct_array[i32(x_45)].rightIndex;
    index = x_48;
  } else {
    let x_50 : f32 = x_8.injectionSwitch.y;
    let x_53 : i32 = struct_array[i32(x_50)].leftIndex;
    index = x_53;
  }
  let x_55 : i32 = struct_array[1].leftIndex;
  if ((x_55 == 1)) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
  }
  return;
}

struct main_out {
  [[location(0)]]
  x_GLF_color_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}