📄 src/DltReaderOptions.cs
using System.Text;

namespace SharpDlt;

/// <summary>Options controlling how DLT data is parsed.</summary>
public sealed record DltReaderOptions
{
    /// <summary>Gets the default options.</summary>
    public static DltReaderOptions Default { get; } = new();

    /// <summary>
    /// Gets a value indicating whether every message is preceded by a Storage Header,
    /// which is the case for messages stored in a DLT file. Defaults to <see langword="true"/>.
    /// </summary>
    public bool HasStorageHeader { get; init; } = true;

    /// <summary>
    /// Gets the encoding used to decode 8 bit coded string arguments. Defaults to ASCII.
    /// </summary>
    /// <remarks>
    /// The DLT specification only supports ASCII and UTF-8 explicitly. Some implementations
    /// however store strings in a local 8 bit encoding such as Latin-1.
    /// </remarks>
    public Encoding? StringEncoding { get; init; }
}