1
2
3
4
5
6 using System.IO;
7
8 namespace System
9 {
10 public static class Console
11 {
12 static Console()
13 {
14 FileStream* inStream = new FileStream(stdin);
15 in.SetStream(inStream);
16 in.Own(inStream);
17 if (in.Error())
18 {
19 SetErrorId(in.GetErrorId());
20 return;
21 }
22 FileStream* outStream = new FileStream(stdout);
23 out.SetStream(outStream);
24 out.Own(outStream);
25 if (out.Error())
26 {
27 SetErrorId(out.GetErrorId());
28 return;
29 }
30 FileStream* errStream = new FileStream(stderr);
31 err.SetStream(errStream);
32 err.Own(errStream);
33 if (err.Error())
34 {
35 SetErrorId(err.GetErrorId());
36 return;
37 }
38 }
39 public static void Write(const char* s)
40 {
41 auto result = out.Write(s);
42 if (result.Error())
43 {
44 SetErrorId(result.GetErrorId());
45 return;
46 }
47 }
48 public static void Write(const wchar* s)
49 {
50 auto result = out.Write(s);
51 if (result.Error())
52 {
53 SetErrorId(result.GetErrorId());
54 return;
55 }
56 }
57 public static void Write(const uchar* s)
58 {
59 auto result = out.Write(s);
60 if (result.Error())
61 {
62 SetErrorId(result.GetErrorId());
63 return;
64 }
65 }
66 public static void Write(const string& s)
67 {
68 auto result = out.Write(s);
69 if (result.Error())
70 {
71 SetErrorId(result.GetErrorId());
72 return;
73 }
74 }
75 public static void Write(const wstring& s)
76 {
77 auto result = out.Write(s);
78 if (result.Error())
79 {
80 SetErrorId(result.GetErrorId());
81 return;
82 }
83 }
84 public static void Write(const ustring& s)
85 {
86 auto result = out.Write(s);
87 if (result.Error())
88 {
89 SetErrorId(result.GetErrorId());
90 return;
91 }
92 }
93 public static void Write(bool b)
94 {
95 auto result = out.Write(b);
96 if (result.Error())
97 {
98 SetErrorId(result.GetErrorId());
99 return;
100 }
101 }
102 public static void Write(sbyte s)
103 {
104 auto result = out.Write(s);
105 if (result.Error())
106 {
107 SetErrorId(result.GetErrorId());
108 return;
109 }
110 }
111 public static void Write(byte b)
112 {
113 auto result = out.Write(b);
114 if (result.Error())
115 {
116 SetErrorId(result.GetErrorId());
117 return;
118 }
119 }
120 public static void Write(short s)
121 {
122 auto result = out.Write(s);
123 if (result.Error())
124 {
125 SetErrorId(result.GetErrorId());
126 return;
127 }
128 }
129 public static void Write(ushort u)
130 {
131 auto result = out.Write(u);
132 if (result.Error())
133 {
134 SetErrorId(result.GetErrorId());
135 return;
136 }
137 }
138 public static void Write(int i)
139 {
140 auto result = out.Write(i);
141 if (result.Error())
142 {
143 SetErrorId(result.GetErrorId());
144 return;
145 }
146 }
147 public static void Write(uint u)
148 {
149 auto result = out.Write(u);
150 if (result.Error())
151 {
152 SetErrorId(result.GetErrorId());
153 return;
154 }
155 }
156 public static void Write(long l)
157 {
158 auto result = out.Write(l);
159 if (result.Error())
160 {
161 SetErrorId(result.GetErrorId());
162 return;
163 }
164 }
165 public static void Write(ulong u)
166 {
167 auto result = out.Write(u);
168 if (result.Error())
169 {
170 SetErrorId(result.GetErrorId());
171 return;
172 }
173 }
174 public static void Write(float f)
175 {
176 auto result = out.Write(f);
177 if (result.Error())
178 {
179 SetErrorId(result.GetErrorId());
180 return;
181 }
182 }
183 public static void Write(double d)
184 {
185 auto result = out.Write(d);
186 if (result.Error())
187 {
188 SetErrorId(result.GetErrorId());
189 return;
190 }
191 }
192 public static void Write(char c)
193 {
194 auto result = out.Write(c);
195 if (result.Error())
196 {
197 SetErrorId(result.GetErrorId());
198 return;
199 }
200 }
201 public static void Write(wchar w)
202 {
203 auto result = out.Write(w);
204 if (result.Error())
205 {
206 SetErrorId(result.GetErrorId());
207 return;
208 }
209 }
210 public static void Write(uchar u)
211 {
212 auto result = out.Write(u);
213 if (result.Error())
214 {
215 SetErrorId(result.GetErrorId());
216 return;
217 }
218 }
219 public static void Write(const Date& date)
220 {
221 auto result = out.Write(date);
222 if (result.Error())
223 {
224 SetErrorId(result.GetErrorId());
225 return;
226 }
227 }
228 public static void Write(const DateTime& dateTime)
229 {
230 auto result = out.Write(dateTime);
231 if (result.Error())
232 {
233 SetErrorId(result.GetErrorId());
234 return;
235 }
236 }
237 public static void WriteLine()
238 {
239 auto result = out.WriteLine();
240 if (result.Error())
241 {
242 SetErrorId(result.GetErrorId());
243 return;
244 }
245 }
246 public static void WriteLine(const char* s)
247 {
248 auto result = out.WriteLine(s);
249 if (result.Error())
250 {
251 SetErrorId(result.GetErrorId());
252 return;
253 }
254 }
255 public static void WriteLine(const wchar* s)
256 {
257 auto result = out.WriteLine(s);
258 if (result.Error())
259 {
260 SetErrorId(result.GetErrorId());
261 return;
262 }
263 }
264 public static void WriteLine(const uchar* s)
265 {
266 auto result = out.WriteLine(s);
267 if (result.Error())
268 {
269 SetErrorId(result.GetErrorId());
270 return;
271 }
272 }
273 public static void WriteLine(const string& s)
274 {
275 auto result = out.WriteLine(s);
276 if (result.Error())
277 {
278 SetErrorId(result.GetErrorId());
279 return;
280 }
281 }
282 public static void WriteLine(const wstring& s)
283 {
284 auto result = out.WriteLine(s);
285 if (result.Error())
286 {
287 SetErrorId(result.GetErrorId());
288 return;
289 }
290 }
291 public static void WriteLine(const ustring& s)
292 {
293 auto result = out.WriteLine(s);
294 if (result.Error())
295 {
296 SetErrorId(result.GetErrorId());
297 return;
298 }
299 }
300 public static void WriteLine(bool b)
301 {
302 auto result = out.WriteLine(b);
303 if (result.Error())
304 {
305 SetErrorId(result.GetErrorId());
306 return;
307 }
308 }
309 public static void WriteLine(sbyte s)
310 {
311 auto result = out.WriteLine(s);
312 if (result.Error())
313 {
314 SetErrorId(result.GetErrorId());
315 return;
316 }
317 }
318 public static void WriteLine(byte b)
319 {
320 auto result = out.WriteLine(b);
321 if (result.Error())
322 {
323 SetErrorId(result.GetErrorId());
324 return;
325 }
326 }
327 public static void WriteLine(short s)
328 {
329 auto result = out.WriteLine(s);
330 if (result.Error())
331 {
332 SetErrorId(result.GetErrorId());
333 return;
334 }
335 }
336 public static void WriteLine(ushort u)
337 {
338 auto result = out.WriteLine(u);
339 if (result.Error())
340 {
341 SetErrorId(result.GetErrorId());
342 return;
343 }
344 }
345 public static void WriteLine(int i)
346 {
347 auto result = out.WriteLine(i);
348 if (result.Error())
349 {
350 SetErrorId(result.GetErrorId());
351 return;
352 }
353 }
354 public static void WriteLine(uint u)
355 {
356 auto result = out.WriteLine(u);
357 if (result.Error())
358 {
359 SetErrorId(result.GetErrorId());
360 return;
361 }
362 }
363 public static void WriteLine(long l)
364 {
365 auto result = out.WriteLine(l);
366 if (result.Error())
367 {
368 SetErrorId(result.GetErrorId());
369 return;
370 }
371 }
372 public static void WriteLine(ulong u)
373 {
374 auto result = out.WriteLine(u);
375 if (result.Error())
376 {
377 SetErrorId(result.GetErrorId());
378 return;
379 }
380 }
381 public static void WriteLine(float f)
382 {
383 auto result = out.WriteLine(f);
384 if (result.Error())
385 {
386 SetErrorId(result.GetErrorId());
387 return;
388 }
389 }
390 public static void WriteLine(double d)
391 {
392 auto result = out.WriteLine(d);
393 if (result.Error())
394 {
395 SetErrorId(result.GetErrorId());
396 return;
397 }
398 }
399 public static void WriteLine(char c)
400 {
401 auto result = out.WriteLine(c);
402 if (result.Error())
403 {
404 SetErrorId(result.GetErrorId());
405 return;
406 }
407 }
408 public static void WriteLine(wchar w)
409 {
410 auto result = out.WriteLine(w);
411 if (result.Error())
412 {
413 SetErrorId(result.GetErrorId());
414 return;
415 }
416 }
417 public static void WriteLine(uchar u)
418 {
419 auto result = out.WriteLine(u);
420 if (result.Error())
421 {
422 SetErrorId(result.GetErrorId());
423 return;
424 }
425 }
426 public static void WriteLine(const Date& date)
427 {
428 auto result = out.WriteLine(date);
429 if (result.Error())
430 {
431 SetErrorId(result.GetErrorId());
432 return;
433 }
434 }
435 public static void WriteLine(const DateTime& dateTime)
436 {
437 auto result = out.WriteLine(dateTime);
438 if (result.Error())
439 {
440 SetErrorId(result.GetErrorId());
441 return;
442 }
443 }
444 [nodiscard]
445 public static Result<int> Read()
446 {
447 return in.Read();
448 }
449 [nodiscard]
450 public static Result<string> ReadLine()
451 {
452 return in.ReadLine();
453 }
454 [nodiscard]
455 public static Result<string> ReadToEnd()
456 {
457 return in.ReadToEnd();
458 }
459 public static StreamReader& In()
460 {
461 return in;
462 }
463 public static StreamWriter& Out()
464 {
465 return out;
466 }
467 public static StreamWriter& Error()
468 {
469 return err;
470 }
471 public static void SetIn(StreamReader&& in_)
472 {
473 in = in_;
474 }
475 public static void SetOut(StreamWriter&& out_)
476 {
477 out = out_;
478 }
479 public static void SetError(StreamWriter&& err_)
480 {
481 err = err_;
482 }
483 public static bool HasError()
484 {
485 return errorId != 0;
486 }
487 public static int ErrorId() const
488 {
489 return errorId;
490 }
491 public static void SetErrorId(int errorId_)
492 {
493 errorId = errorId_;
494 }
495 private static StreamReader in;
496 private static StreamWriter out;
497 private static StreamWriter err;
498 private static int errorId;
499 }