You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DiscordChatExporter/DiscordChatExporter.Core/Exporting/Writers/MessageWriter.cs

36 lines
962 B

using System;
using System.IO;
using System.Threading.Tasks;
using DiscordChatExporter.Core.Discord.Data;
namespace DiscordChatExporter.Core.Exporting.Writers
{
internal abstract class MessageWriter : IAsyncDisposable
{
protected Stream Stream { get; }
protected ExportContext Context { get; }
public long MessagesWritten { get; private set; }
public long BytesWritten => Stream.Length;
protected MessageWriter(Stream stream, ExportContext context)
{
Stream = stream;
Context = context;
}
public virtual ValueTask WritePreambleAsync() => default;
public virtual ValueTask WriteMessageAsync(Message message)
{
MessagesWritten++;
return default;
}
public virtual ValueTask WritePostambleAsync() => default;
public virtual async ValueTask DisposeAsync() => await Stream.DisposeAsync();
}
}