1 // =================================
  2 // Copyright (c) 2022 Seppo Laakko
  3 // Distributed under the MIT license
  4 // =================================
  5 
  6 using System;
  7 
  8 namespace System.IO
  9 {
 10     public abstract class TextWriter
 11     {
 12         public virtual default ~TextWriter();
 13         public abstract void Write(const string& x);
 14         public abstract void Write(const wstring& x);
 15         public abstract void Write(const ustring& x);
 16         public abstract void Write(bool x);
 17         public abstract void Write(char x);
 18         public abstract void Write(wchar x);
 19         public abstract void Write(uchar x);
 20         public abstract void Write(sbyte x);
 21         public abstract void Write(byte x);
 22         public abstract void Write(short x);
 23         public abstract void Write(ushort x);
 24         public abstract void Write(int x);
 25         public abstract void Write(uint x);
 26         public abstract void Write(long x);
 27         public abstract void Write(ulong x);
 28         public abstract void Write(float x);
 29         public abstract void Write(double x);
 30         public abstract void Write(const Date& date);
 31         public abstract void Write(const DateTime& dateTime);
 32         public abstract void WriteLine();
 33         public abstract void WriteLine(const string& x);
 34         public abstract void WriteLine(const wstring& x);
 35         public abstract void WriteLine(const ustring& x);
 36         public abstract void WriteLine(bool x);
 37         public abstract void WriteLine(char x);
 38         public abstract void WriteLine(wchar x);
 39         public abstract void WriteLine(uchar x);
 40         public abstract void WriteLine(sbyte x);
 41         public abstract void WriteLine(byte x);
 42         public abstract void WriteLine(short x);
 43         public abstract void WriteLine(ushort x);
 44         public abstract void WriteLine(int x);
 45         public abstract void WriteLine(uint x);
 46         public abstract void WriteLine(long x);
 47         public abstract void WriteLine(ulong x);
 48         public abstract void WriteLine(float x);
 49         public abstract void WriteLine(double x);
 50         public abstract void WriteLine(const Date& date);
 51         public abstract void WriteLine(const DateTime& dateTime);
 52     }
 53 
 54     public TextWriter& operator<<(TextWriter& writerconst char* x)
 55     {
 56         writer.Write(x);
 57         return writer;
 58     }
 59 
 60     public TextWriter& operator<<(TextWriter& writerconst wchar* x)
 61     {
 62         writer.Write(x);
 63         return writer;
 64     }
 65 
 66     public TextWriter& operator<<(TextWriter& writerconst uchar* x)
 67     {
 68         writer.Write(x);
 69         return writer;
 70     }
 71 
 72     public TextWriter& operator<<(TextWriter& writerconst string& x)
 73     {
 74         writer.Write(x);
 75         return writer;
 76     }
 77 
 78     public TextWriter& operator<<(TextWriter& writerconst wstring& x)
 79     {
 80         writer.Write(x);
 81         return writer;
 82     }
 83 
 84     public TextWriter& operator<<(TextWriter& writerconst ustring& x)
 85     {
 86         writer.Write(x);
 87         return writer;
 88     }
 89 
 90     public TextWriter& operator<<(TextWriter& writerbool x)
 91     {
 92         writer.Write(x);
 93         return writer;
 94     }
 95 
 96     public TextWriter& operator<<(TextWriter& writersbyte x)
 97     {
 98         writer.Write(x);
 99         return writer;
100     }
101 
102     public TextWriter& operator<<(TextWriter& writerbyte x)
103     {
104         writer.Write(x);
105         return writer;
106     }
107 
108     public TextWriter& operator<<(TextWriter& writershort x)
109     {
110         writer.Write(x);
111         return writer;
112     }
113 
114     public TextWriter& operator<<(TextWriter& writerushort x)
115     {
116         writer.Write(x);
117         return writer;
118     }
119 
120     public TextWriter& operator<<(TextWriter& writerint x)
121     {
122         writer.Write(x);
123         return writer;
124     }
125 
126     public TextWriter& operator<<(TextWriter& writeruint x)
127     {
128         writer.Write(x);
129         return writer;
130     }
131 
132     public TextWriter& operator<<(TextWriter& writerlong x)
133     {
134         writer.Write(x);
135         return writer;
136     }
137 
138     public TextWriter& operator<<(TextWriter& writerulong x)
139     {
140         writer.Write(x);
141         return writer;
142     }
143 
144     public TextWriter& operator<<(TextWriter& writerfloat x)
145     {
146         writer.Write(x);
147         return writer;
148     }
149 
150     public TextWriter& operator<<(TextWriter& writerdouble x)
151     {
152         writer.Write(x);
153         return writer;
154     }
155     
156     public TextWriter& operator<<(TextWriter& writerconst Date& date)
157     {
158         writer.Write(date);
159         return writer;
160     }
161     
162     public TextWriter& operator<<(TextWriter& writerconst DateTime& dateTime)
163     {
164         writer.Write(dateTime);
165         return writer;
166     }
167 
168     public TextWriter& operator<<(TextWriter& writerchar x)
169     {
170         writer.Write(x);
171         return writer;
172     }
173     
174     public TextWriter& operator<<(TextWriter& writerwchar x)
175     {
176         writer.Write(x);
177         return writer;
178     }
179     
180     public TextWriter& operator<<(TextWriter& writeruchar x)
181     {
182         writer.Write(x);
183         return writer;
184     }
185 
186     public TextWriter& operator<<(TextWriter& writerconst Endl&)
187     {
188         writer.WriteLine();
189         return writer;
190     }
191 }