1 type Resource = 2 | t@ Image 3 | ImageName String 4 | t@ VkSampler 5 | ImageSampler Image * VkSampler 6 | ImageNameSampler String * VkSampler 7 | t@ StorageBuffer 8 | t@ UniformBuffer 9 10 def image : Image = case self of 11 is Image -> self 12 else -> fail 13 14 def sampler : VkSampler = case self of 15 is VkSampler -> self 16 else -> fail 17 18 def image_sampler : (Image, VkSampler) = case self of 19 ImageSampler image sampler -> (image, sampler) 20 else -> fail 21 22 def storage_buffer : StorageBuffer = case self of 23 is StorageBuffer -> self 24 else -> fail 25 26 def uniform_buffer : UniformBuffer = case self of 27 is UniformBuffer -> self 28 else -> fail 29 30 def buffer : Buffer = case self of 31 is UniformBuffer -> self 32 is StorageBuffer -> self 33 else -> fail 34