mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
samples: add Terra samples
source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
25
samples/Terra/selectoverload.t
Normal file
25
samples/Terra/selectoverload.t
Normal file
@@ -0,0 +1,25 @@
|
||||
struct Vec { data : float[3] }
|
||||
|
||||
|
||||
local get = {}
|
||||
get.x = terra(self : &Vec)
|
||||
return self.data[0]
|
||||
end
|
||||
get.y = macro(function(self)
|
||||
return `self.data[1]
|
||||
end)
|
||||
|
||||
Vec.metamethods.__entrymissing = macro(function(name,self)
|
||||
return `[get[name]](&self)
|
||||
end)
|
||||
|
||||
terra bar()
|
||||
var a = Vec { array(1.f,2.f,3.f) }
|
||||
a.y = a.y + 1
|
||||
var pa = &a
|
||||
return a.x + a.y + pa.x
|
||||
end
|
||||
|
||||
local test = require("test")
|
||||
test.eq(bar(),5)
|
||||
|
||||
Reference in New Issue
Block a user