add cangjie binding (#117)
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import ruapu.*
|
||||
main(): Int64 {
|
||||
ruapu_init()
|
||||
let neon_supported = ruapu_supports("neon")
|
||||
println("supports neon: ${neon_supported}")
|
||||
let d = ruapu_rua()
|
||||
for (i in d) {
|
||||
println(i)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package ruapu
|
||||
|
||||
from std import collection.ArrayList
|
||||
|
||||
foreign func ruapu_init_c(): Unit
|
||||
|
||||
foreign func ruapu_supports_c(s: CString): Int32
|
||||
|
||||
foreign func ruapu_rua_c(): CPointer<CString>
|
||||
|
||||
public func ruapu_init(): Unit {
|
||||
unsafe{ ruapu_init_c() }
|
||||
}
|
||||
|
||||
public func ruapu_supports(isa: String): Bool {
|
||||
var isa_c = unsafe { LibC.mallocCString(isa) }
|
||||
let result_c = unsafe { ruapu_supports_c(isa_c) }
|
||||
return result_c == 1
|
||||
}
|
||||
|
||||
public func ruapu_rua(): Array<String> {
|
||||
var ruaList = ArrayList<String>()
|
||||
var sp = unsafe { ruapu_rua_c() }
|
||||
while(!unsafe { sp.read().isNull() }) {
|
||||
let temp = unsafe { sp.read() }
|
||||
ruaList.append(temp.toString())
|
||||
sp = unsafe { sp + 1 }
|
||||
}
|
||||
return Array<String>(ruaList)
|
||||
}
|
||||
Reference in New Issue
Block a user