1+ import * from "@apexlang/core"
2+
3+ namespace "iota.testing"
4+
5+ # UUID is an alias that is mapped to a custom data type
6+ alias UUID = string
7+ alias MyAlias = string
8+
9+ func someCalc(rhs: i64, lhs: i64): i64
10+
11+ interface MyStreamer @service {
12+ requestStreamI64(): stream i64
13+ requestStreamF64(): stream f64
14+ requestStreamType(): stream MyType
15+ requestStreamEnum(): stream MyEnum
16+ requestStreamUUID(): stream UUID
17+ requestStreamAlias(): stream MyAlias
18+ requestStreamString(): stream string
19+ requestStreamBool(): stream bool
20+ requestStreamDatetime(): stream datetime
21+ requestStreamList(): stream [string]
22+ requestStreamMap(): stream { string : string }
23+ requestStreamArgsI64(value: i64): stream i64
24+ requestStreamArgsF64(value: f64): stream f64
25+ requestStreamArgsType(value: MyType): stream MyType
26+ requestStreamArgsEnum(value: MyEnum): stream MyEnum
27+ requestStreamArgsUUID(value: UUID): stream UUID
28+ requestStreamArgsAlias(value: MyAlias): stream MyAlias
29+ requestStreamArgsString(value: string): stream string
30+ requestStreamArgsBool(value: bool): stream bool
31+ requestStreamArgsDatetime(value: datetime): stream datetime
32+ requestStreamArgsList(value: [string]): stream [string]
33+ requestStreamArgsMap(value: { string : string }): stream { string : string }
34+
35+ requestChannelI64(in: stream i64): stream i64
36+ requestChannelF64(in: stream f64): stream f64
37+ requestChannelType(in: stream MyType): stream MyType
38+ requestChannelEnum(in: stream MyEnum): stream MyEnum
39+ requestChannelAlias(in: stream UUID): stream UUID
40+ requestChannelString(in: stream string): stream string
41+ requestChannelBool(in: stream bool): stream bool
42+ requestChannelDatetime(in: stream datetime): stream datetime
43+ requestChannelList(in: stream [string]): stream [string]
44+ requestChannelMap(in: stream { string : string }): stream { string : string }
45+ requestChannelArgsI64(value: i64, in: stream i64): stream i64
46+ requestChannelArgsF64(value: f64, in: stream f64): stream f64
47+ requestChannelArgsType(value: MyType, in: stream MyType): stream MyType
48+ requestChannelArgsEnum(value: MyEnum, in: stream MyEnum): stream MyEnum
49+ requestChannelArgsAlias(value: UUID, in: stream UUID): stream UUID
50+ requestChannelArgsString(value: string, in: stream string): stream string
51+ requestChannelArgsBool(value: bool, in: stream bool): stream bool
52+ requestChannelArgsDatetime(value: datetime, in: stream datetime): stream datetime
53+ requestChannelArgsList(value: [string], in: stream [string]): stream [string]
54+ requestChannelArgsMap(value: { string : string }, in: stream { string : string }): stream { string : string }
55+ }
56+
57+ interface MyService @service @uses(["Repository"]) {
58+ emptyVoid(): void
59+ unaryType[value: MyType]: MyType
60+ unaryEnum[value : MyEnum]: MyEnum
61+ unaryUUID[value : UUID]: UUID
62+ unaryAlias[value : MyAlias]: MyAlias
63+ unaryString[value : string]: string
64+ unaryI64[value : i64]: i64
65+ unaryI32[value : i32]: i32
66+ unaryI16[value : i16]: i16
67+ unaryI8[value : i8]: i8
68+ unaryU64[value : u64]: u64
69+ unaryU32[value : u32]: u32
70+ unaryU16[value : u16]: u16
71+ unaryU8[value : u8]: u8
72+ unaryF64[value : f64]: f64
73+ unaryF32[value : f32]: f32
74+ unaryBytes[value : bytes]: bytes
75+ unaryDatetime[value : datetime]: datetime
76+ unaryList[value: [string]]: [string]
77+ unaryMap[value: { string : string }]: { string : string }
78+
79+ funcType(value: MyType, optional: MyType?): MyType
80+ funcEnum(value: MyEnum, optional: MyEnum?): MyEnum
81+ funcUUID(value: UUID, optional: UUID?): UUID
82+ funcAlias(value: MyAlias, optional: MyAlias?): MyAlias
83+ funcString(value: string, optional: string?): string
84+ funcI64(value: i64, optional: i64?): i64
85+ funcI32(value: i32, optional: i32?): i32
86+ funcI16(value: i16, optional: i16?): i16
87+ funcI8(value: i8, optional: i8?): i8
88+ funcU64(value: u64, optional: u64?): u64
89+ funcU32(value: u32, optional: u32?): u32
90+ funcU16(value: u16, optional: u16?): u16
91+ funcU8(value: u8, optional: u8?): u8
92+ funcF64(value: f64, optional: f64?): f64
93+ funcF32(value: f32, optional: f32?): f32
94+ funcBytes(value: bytes, optional: bytes?): bytes
95+ funcDatetime(value: datetime, optional: datetime?): datetime
96+ funcList(value: [string], optional: [string]?): [string]
97+ funcMap(value: { string : string }, optional: { string : string }?): { string : string }
98+ }
99+
100+ interface Repository @dependency {
101+ getData(): MyType
102+ }
103+
104+ union MyUnion = MyType | MyEnum | string
105+
106+ "MyType is a class"
107+ type MyType {
108+ "same type value"
109+ sameValue: MyType?
110+ "type value"
111+ typeValue: MyOtherType
112+ "string value"
113+ stringValue: string
114+ "string option"
115+ stringOption: string?
116+ "i64 value"
117+ i64Value: i64
118+ "i64 option"
119+ i64Option: i64?
120+ "i32 value"
121+ i32Value: i32
122+ "i32 option"
123+ i32Option: i32?
124+ "i16 value"
125+ i16Value: i16
126+ "i16 option"
127+ i16Option: i16? @n(10)
128+ "i8 value"
129+ i8Value: i8 @n(11)
130+ "i8 option"
131+ i8Option: i8? @n(12)
132+ "u64 value"
133+ u64Value: u64 @n(13)
134+ "u64 option"
135+ u64Option: u64? @n(14)
136+ "u32 value"
137+ u32Value: u32 @n(15)
138+ "u32 option"
139+ u32Option: u32? @n(16)
140+ "u16 value"
141+ u16Value: u16 @n(17)
142+ "u16 option"
143+ u16Option: u16? @n(18)
144+ "u8 value"
145+ u8Value: u8 @n(19)
146+ "u8 option"
147+ u8Option: u8? @n(20)
148+ "f64 value"
149+ f64Value: f64 @n(21)
150+ "f64 option"
151+ f64Option: f64? @n(22)
152+ "f32 value"
153+ f32Value: f32 @n(23)
154+ "f32 option"
155+ f32Option: f32? @n(24)
156+ "datetime value"
157+ datetimeValue: datetime @n(25)
158+ "datetime option"
159+ datetimeOption: datetime? @n(26)
160+ "bytes value"
161+ bytesValue: bytes @n(27)
162+ "bytes option"
163+ bytesOption: bytes? @n(28)
164+ "map value"
165+ mapValue: { string: i64 } @n(29)
166+ "map of types"
167+ mapOfTypes: { string: MyType } @n(30)
168+ "array value"
169+ arrayValue: [string] @n(31)
170+ "array of types"
171+ arrayOfTypes: [MyType] @n(32)
172+ "union value"
173+ unionValue: MyUnion @n(33)
174+ "union option"
175+ unionOption: MyUnion? @n(34)
176+ "enum value"
177+ enumValue: MyEnum @n(35)
178+ "enum option"
179+ enumOption: MyEnum? @n(36)
180+ "enum value"
181+ aliasValue: UUID @n(37)
182+ "enum option"
183+ aliasOption: UUID? @n(38)
184+ # "any value"
185+ # anyValue: any @n(999)
186+ }
187+
188+ type MyOtherType {
189+ foo: string
190+ bar: string
191+ }
192+
193+ "MyEnum is an emuneration"
194+ enum MyEnum {
195+ "ONE value"
196+ ONE = 0 as "one"
197+ "TWO value"
198+ TWO = 1
199+ "THREE value"
200+ THREE = 2 as "three"
201+ }
0 commit comments