internal static SourceText Create(Stream stream, Lazy <Encoding> getEncoding, Encoding defaultEncoding, SourceHashAlgorithm checksumAlgorithm, bool canBeEmbedded) => EncodedStringText.Create(stream, getEncoding, defaultEncoding, checksumAlgorithm, canBeEmbedded);
internal static SourceText Decode(Stream data, Encoding encoding, SourceHashAlgorithm checksumAlgorithm, bool throwIfBinaryDetected, bool canBeEmbedded) => EncodedStringText.Decode(data, encoding, checksumAlgorithm, throwIfBinaryDetected, canBeEmbedded);
internal async Task<ValueTuple<SourceText, string>> ReadFileContentAsync(CommandLineSourceFile file, IList<DiagnosticInfo> diagnostics, Encoding encoding) { try { using (var data = new FileStream(file.Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, bufferSize:4096, useAsync: true)) { MemoryStream stream = memoryStreamPool.Allocate(); stream.SetLength(0); await data.CopyToAsync(stream).ConfigureAwait(false); var normalizedFilePath = data.Name; var text = new EncodedStringText(stream, encoding); memoryStreamPool.Free(stream); return ValueTuple.Create<SourceText, string>(text, normalizedFilePath); } } catch (Exception e) { diagnostics.Add(ToFileReadDiagostics(e, file)); return default(ValueTuple<SourceText, string>); } }