Parser

object Parser

An object responsible for parsing JSON data from various sources into a TimelineData object.

This parser uses Moshi for JSON deserialization and provides both traditional exception-based and modern Result-based APIs for error handling. The parser is stateless and thread-safe.

Example usage:

// Exception-based API (backward compatible)
val data = Parser.parse(file)

// Result-based API (recommended)
when (val result = Parser.parseToResult(file)) {
is ParseResult.Success -> println("Parsed ${result.data.semanticSegments.size} segments")
is ParseResult.Error -> println("Error: ${result.message}")
}

// With custom configuration
val data = Parser.parse(file, ParserConfig.PERFORMANCE)

Functions

Link copied to clipboard
suspend fun fromFile(filePath: String, config: ParserConfig = ParserConfig.DEFAULT): ParseResult

Creates a parser result from a file path string.

Link copied to clipboard
suspend fun fromJsonString(jsonString: String, config: ParserConfig = ParserConfig.DEFAULT): ParseResult

Creates a parser result from a JSON string.

Link copied to clipboard
suspend fun parse(file: File): TimelineData

Parses the given file into a TimelineData object using default configuration.

suspend fun parse(inputStream: InputStream): TimelineData

Parses the given input stream into a TimelineData object using default configuration.

suspend fun parse(bufferedSource: BufferedSource): TimelineData

Parses the given buffered source into a TimelineData object using default configuration.

suspend fun parse(file: File, config: ParserConfig): TimelineData

Parses the given file into a TimelineData object with custom configuration.

suspend fun parse(inputStream: InputStream, config: ParserConfig): TimelineData

Parses the given input stream into a TimelineData object with custom configuration.

suspend fun parse(bufferedSource: BufferedSource, config: ParserConfig): TimelineData

Parses the given buffered source into a TimelineData object with custom configuration.

Link copied to clipboard
suspend fun parseToResult(file: File): ParseResult

Parses the given file into a ParseResult using default configuration.

suspend fun parseToResult(inputStream: InputStream): ParseResult

Parses the given input stream into a ParseResult using default configuration.

suspend fun parseToResult(bufferedSource: BufferedSource): ParseResult

Parses the given buffered source into a ParseResult using default configuration.

suspend fun parseToResult(file: File, config: ParserConfig): ParseResult

Parses the given file into a ParseResult with custom configuration.

suspend fun parseToResult(inputStream: InputStream, config: ParserConfig): ParseResult

Parses the given input stream into a ParseResult with custom configuration.

suspend fun parseToResult(bufferedSource: BufferedSource, config: ParserConfig): ParseResult

Parses the given buffered source into a ParseResult with custom configuration.