Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrainLeftoverDataForGetByteCount()

int System.Text.EncoderNLS.DrainLeftoverDataForGetByteCount ( ReadOnlySpan< char > chars,
out int charsConsumed )
inlinepackageinherited

Definition at line 190 of file EncoderNLS.cs.

191 {
192 if (_fallbackBuffer != null && _fallbackBuffer.Remaining > 0)
193 {
194 throw new ArgumentException(SR.Format(SR.Argument_EncoderFallbackNotEmpty, Encoding.EncodingName, _fallbackBuffer.GetType()));
195 }
196 charsConsumed = 0;
197 if (_charLeftOver == '\0')
198 {
199 return 0;
200 }
201 char c = '\0';
202 if (chars.IsEmpty)
203 {
204 if (!MustFlush)
205 {
206 return 0;
207 }
208 }
209 else
210 {
211 c = chars[0];
212 }
213 if (Rune.TryCreate(_charLeftOver, c, out var result))
214 {
215 charsConsumed = 1;
216 if (_encoding.TryGetByteCount(result, out var byteCount))
217 {
218 return byteCount;
219 }
220 bool flag = base.FallbackBuffer.Fallback(_charLeftOver, c, -1);
221 }
222 else
223 {
224 bool flag = base.FallbackBuffer.Fallback(_charLeftOver, -1);
225 }
227 }
readonly Encoding _encoding
Definition EncoderNLS.cs:10
EncoderFallbackBuffer _fallbackBuffer
Definition Encoder.cs:9
virtual bool TryGetByteCount(Rune value, out int byteCount)
Definition Encoding.cs:1119

References System.Text.EncoderNLS._charLeftOver, System.Text.EncoderNLS._encoding, System.Text.Encoder._fallbackBuffer, System.SR.Argument_EncoderFallbackNotEmpty, System.byteCount, System.chars, System.Text.EncoderFallbackBuffer.DrainRemainingDataForGetByteCount(), System.Text.Encoding.EncodingName, System.SR.Format(), System.Text.EncoderNLS.MustFlush, System.Text.EncoderFallbackBuffer.Remaining, System.Text.Rune.TryCreate(), and System.Text.Encoding.TryGetByteCount().

Referenced by System.Text.Encoding.GetByteCountWithFallback().