Table of Contents

Namespace ModernLrc

Namespaces

ModernLrc.Diagnostics
ModernLrc.Model

Classes

LrcDocument

Root model: metadata block + sorted-by-timestamp lines. The parser and LrcDocumentBuilder maintain the sort guarantee; the type itself does not validate ordering on assignment.

LrcDocumentBuilder

Mutable builder for LrcDocument. Maintains insertion order; Build() sorts and freezes. Single-threaded contract — concurrent use from multiple threads is undefined (mirrors StringBuilder).

LrcParseException

Thrown for catastrophic parse failures: encoding-detect failure, or a Strict-mode error on the first Error-severity diagnostic. PartialResult is populated for content failures; null for encoding/IO failures. Infrastructure errors (IOException, UnauthorizedAccessException, OperationCanceledException, etc.) are NOT wrapped — they propagate raw.

LrcParseOptions

Configuration for a parse operation.

LrcParseResult

Outcome of a parse operation: the document built (possibly partial under strict mode failure) and every diagnostic emitted in source order.

LrcParser

Entry-point for parsing LRC text. All overloads converge on the canonical Parse(ReadOnlySpan<char>, LrcParseOptions?).

LrcWriteOptions

Configuration for a write operation.

LrcWriter

Entry-point for writing an LrcDocument. All overloads converge on the canonical Write(LrcDocument, LrcWriteOptions?).

Enums

LrcLineEnding

Line-ending style for writing.

LrcMetadataOrdering

Ordering policy for the metadata block.

LrcStrictness

Parser strictness mode.

LrcTimestampPrecision

Timestamp precision for writing.