1
- package com.squareup.workflow1.traceviewer.util
1
+ package com.squareup.workflow1.traceviewer.util.parser
2
2
3
3
import com.squareup.moshi.JsonAdapter
4
4
import com.squareup.moshi.Moshi
@@ -7,6 +7,8 @@ import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
7
7
import com.squareup.workflow1.traceviewer.model.Node
8
8
import com.squareup.workflow1.traceviewer.model.addChild
9
9
import com.squareup.workflow1.traceviewer.model.replaceChild
10
+ import com.squareup.workflow1.traceviewer.util.parser.ParseResult.Failure
11
+ import com.squareup.workflow1.traceviewer.util.parser.ParseResult.Success
10
12
import io.github.vinceglb.filekit.PlatformFile
11
13
import io.github.vinceglb.filekit.readString
12
14
import kotlin.reflect.jvm.javaType
@@ -31,11 +33,11 @@ internal suspend fun parseFileTrace(
31
33
val jsonString = file.readString()
32
34
val workflowAdapter = createMoshiAdapter<List <Node >>()
33
35
val parsedRenderPasses = try {
34
- workflowAdapter.fromJson(jsonString) ? : return ParseResult . Failure (
36
+ workflowAdapter.fromJson(jsonString) ? : return Failure (
35
37
IllegalArgumentException (" Provided trace file is empty or malformed." )
36
38
)
37
39
} catch (e: Exception ) {
38
- return ParseResult . Failure (e)
40
+ return Failure (e)
39
41
}
40
42
41
43
val parsedFrames = parsedRenderPasses.map { renderPass -> getFrameFromRenderPass(renderPass) }
@@ -45,7 +47,7 @@ internal suspend fun parseFileTrace(
45
47
frameTrees.add(mergedTree)
46
48
mergedTree
47
49
}
48
- return ParseResult . Success (
50
+ return Success (
49
51
trace = parsedFrames,
50
52
trees = frameTrees,
51
53
affectedNodes = parsedRenderPasses
@@ -64,11 +66,11 @@ internal fun parseLiveTrace(
64
66
currentTree : Node ? = null
65
67
): ParseResult {
66
68
val parsedRenderPass = try {
67
- adapter.fromJson(renderPass) ? : return ParseResult . Failure (
69
+ adapter.fromJson(renderPass) ? : return Failure (
68
70
IllegalArgumentException (" Provided trace data is empty or malformed." )
69
71
)
70
72
} catch (e: Exception ) {
71
- return ParseResult . Failure (e)
73
+ return Failure (e)
72
74
}
73
75
74
76
val parsedFrame = getFrameFromRenderPass(parsedRenderPass)
@@ -81,7 +83,7 @@ internal fun parseLiveTrace(
81
83
}
82
84
83
85
// Since live tracing handles one frame at a time, we generalize and return listOf for each.
84
- return ParseResult . Success (
86
+ return Success (
85
87
trace = listOf (parsedFrame),
86
88
trees = listOf (mergedTree),
87
89
affectedNodes = listOf (parsedRenderPass)
@@ -153,7 +155,8 @@ internal fun mergeFrameIntoMainTree(
153
155
}
154
156
155
157
internal sealed interface ParseResult {
156
- class Success (val trace : List <Node >, val trees : List <Node >, affectedNodes : List <List <Node >>) : ParseResult {
158
+ class Success (val trace : List <Node >, val trees : List <Node >, affectedNodes : List <List <Node >>) :
159
+ ParseResult {
157
160
val affectedNodes = affectedNodes.map { it.toSet() }
158
161
}
159
162
class Failure (val error : Throwable ) : ParseResult
0 commit comments