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