1    type Rectangle
2        let material : ControlMaterial @auto
3    
4        let size = get_size_atom self
5        val memory@atom = size
6            |> map { w, h -> if w == 0 || h == 0
7                             then None
8                             else Some (w, h) }
9    
10           |> option_map_discard { w, h ->
11               let quad = Quad.create
12                   up_left = Vector3.new
13                   up_right = Vector3 w.as<f32> 0 0
14                   down_left = Vector3 0 h.as<f32> 0
15                   down_right = Vector3 w.as<f32> h.as<f32> 0
16                   color = Vector3.gray 1
17   
18               MeshMemory.from_quad quad }
19   
20       val drawable = Drawable
21           mesh = Mesh.from_memory memory@atom
22           material = material.unwrap
23   
24       maybe_drawable = drawable
25   
26       color@atom.bind { drawable.color = _ } |> push_token
27