override fun onStandardOutput()

in plugin-rust-agent/src/main/kotlin/jetbrains/buildServer/rust/logging/CargoLoggingListener.kt [16:45]


    override fun onStandardOutput(line: String) {
        if (line.isBlank()) return

        val lastLine = myLastLine
        myLastLine = line

        myTestsStart.find(line)?.let {
            val testSuiteText = lastLine ?: ""
            val testSuiteName = getTestSuiteName(testSuiteText.trim())
            changeState(CargoState.Testing, testSuiteName)
            return
        }

        myErrorStart.find(line)?.let {
            changeState(CargoState.ErrorDetails, line)
            return
        }

        myStatement.find(line)?.let {
            val (stateKey, stateText) = it.destructured

            val state = CargoState[stateKey]
            if (state != null && myLogger.canChangeState(state, stateText)) {
                changeState(state, stateText)
                return
            }
        }

        myLogger.processLine(line)
    }