Coverage Summary for Class: TocBlockParser (io.heapy.kotmark.ext.toc.internal)

Class Method, % Branch, % Line, % Instruction, %
TocBlockParser 100% (2/2) 100% (3/3) 100% (11/11)
TocBlockParser$Factory 100% (2/2) 100% (4/4) 100% (5/5) 100% (63/63)
Total 100% (4/4) 100% (4/4) 100% (8/8) 100% (74/74)


 package io.heapy.kotmark.ext.toc.internal
 
 import io.heapy.kotmark.ext.toc.TableOfContents
 import io.heapy.kotmark.parser.block.AbstractBlockParser
 import io.heapy.kotmark.parser.block.AbstractBlockParserFactory
 import io.heapy.kotmark.parser.block.BlockContinue
 import io.heapy.kotmark.parser.block.BlockStart
 import io.heapy.kotmark.parser.block.MatchedBlockParser
 import io.heapy.kotmark.parser.block.ParserState
 
 internal class TocBlockParser(marker: String) : AbstractBlockParser() {
     override val block = TableOfContents(marker)
 
     override fun tryContinue(parserState: ParserState): BlockContinue? = null
 
     class Factory(private val markers: Set<String>) : AbstractBlockParserFactory() {
         override fun tryStart(state: ParserState, matchedBlockParser: MatchedBlockParser): BlockStart? {
             if (state.indent >= 4) return null
             val marker = state.line.content.substring(state.nextNonSpaceIndex).trimEnd(' ', '\t')
             if (marker !in markers) return null
             return BlockStart.of(TocBlockParser(marker)).atIndex(state.line.content.length)
         }
     }
 }