1///|
2type Range
3
4///|
5pub impl trait Show {
output(Self, &Logger) -> Unit
to_string(Self) -> String
}
Show for type Range FixedArray[UInt]
Range with (self : Range, logger : &Logger) -> Unit
output(Range
self : type Range FixedArray[UInt]
Range, &Logger
logger : &trait Logger {
write_string(Self, String) -> Unit
write_substring(Self, String, Int, Int) -> Unit
write_char(Self, Char) -> Unit
}
Trait for a logger, where debug logs can be written into
@builtin.Logger) -> Unit
Unit {
6 &Logger
logger.(self : &Logger, obj : Point) -> Unit
write_object(Range
self.(self : Range) -> Point
start_point())
7 &Logger
logger.(&Logger, String) -> Unit
write_string(" - ")
8 &Logger
logger.(self : &Logger, obj : Point) -> Unit
write_object(Range
self.(self : Range) -> Point
end_point())
9}
10
11///|
12extern "js" fn ts_range_new(
13 start_point : type Point
Point,
14 end_point : type Point
Point,
15 start_byte : UInt
UInt,
16 end_byte : UInt
UInt
17) -> type Range FixedArray[UInt]
Range =
18 #|(start_point, end_point, start_byte, end_byte) => {
19 #| return {
20 #| startPosition: start_point,
21 #| endPosition: end_point,
22 #| startIndex: start_byte,
23 #| endIndex: end_byte,
24 #| }
25 #|}
26
27///|
28pub fn type Range FixedArray[UInt]
Range::(start_pointer : Point, end_pointer : Point, start_byte : Int, end_byte : Int) -> Range
new(
29 Point
start_pointer : type Point
Point,
30 Point
end_pointer : type Point
Point,
31 Int
start_byte : Int
Int,
32 Int
end_byte : Int
Int
33) -> type Range FixedArray[UInt]
Range {
34 let UInt
start_byte = (value : Int) -> UInt
int_to_uint(Int
start_byte)
35 let UInt
end_byte = (value : Int) -> UInt
int_to_uint(Int
end_byte)
36 (start_point : Point, end_point : Point, start_byte : UInt, end_byte : UInt) -> Range
ts_range_new(Point
start_pointer, Point
end_pointer, UInt
start_byte, UInt
end_byte)
37}
38
39///|
40pub extern "js" fn type Range FixedArray[UInt]
Range::start_point(self : type Range FixedArray[UInt]
Range) -> type Point
Point =
41 #|(range) => {
42 #| return range.startPosition;
43 #|}
44
45///|
46pub extern "js" fn type Range FixedArray[UInt]
Range::end_point(self : type Range FixedArray[UInt]
Range) -> type Point
Point =
47 #|(range) => {
48 #| return range.endPosition;
49 #|}
50
51///|
52pub extern "js" fn type Range FixedArray[UInt]
Range::start_byte(self : type Range FixedArray[UInt]
Range) -> Int
Int =
53 #|(range) => {
54 #| return range.startIndex;
55 #|}
56
57///|
58pub extern "js" fn type Range FixedArray[UInt]
Range::end_byte(self : type Range FixedArray[UInt]
Range) -> Int
Int =
59 #|(range) => {
60 #| return range.endIndex;
61 #|}
62