Skip to content

Commit 4a00d7d

Browse files
LennartEgbegorikftp
authored andcommitted
Move PathParser to separate module
1 parent 70dad15 commit 4a00d7d

6 files changed

Lines changed: 19 additions & 10 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
plugins {
2+
alias(libs.plugins.valkyrie.kmp)
3+
}
4+
5+
kotlin {
6+
sourceSets {
7+
commonMain.dependencies {
8+
implementation(projects.components.ir)
9+
}
10+
}
11+
}

components/parser/jvm/xml/src/main/kotlin/io/github/composegears/valkyrie/parser/jvm/xml/PathNode.kt renamed to components/parser/common/src/commonMain/kotlin/io/github/composegears/valkyrie/parser/common/PathNode.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.composegears.valkyrie.parser.jvm.xml
1+
package io.github.composegears.valkyrie.parser.common
22

33
import io.github.composegears.valkyrie.ir.IrPathNode
44
import io.github.composegears.valkyrie.ir.IrPathNode.ArcTo

components/parser/jvm/xml/src/main/kotlin/io/github/composegears/valkyrie/parser/jvm/xml/PathParser.kt renamed to components/parser/common/src/commonMain/kotlin/io/github/composegears/valkyrie/parser/common/PathParser.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package io.github.composegears.valkyrie.parser.jvm.xml
1+
package io.github.composegears.valkyrie.parser.common
22

33
import io.github.composegears.valkyrie.ir.IrPathNode
4-
import java.lang.Float
54
import kotlin.Boolean
65
import kotlin.Char
76
import kotlin.FloatArray
@@ -16,7 +15,7 @@ import kotlin.math.min
1615
* Trimmed down copy of PathParser that doesn't handle interacting with Paths, and only is
1716
* responsible for parsing path strings.
1817
*/
19-
internal object PathParser {
18+
object PathParser {
2019
/**
2120
* Parses the path string to create a collection of PathNode instances with their corresponding
2221
* arguments
@@ -92,9 +91,7 @@ internal object PathParser {
9291
endPosition = result.endPosition
9392

9493
if (startPosition < endPosition) {
95-
results[count++] = Float.parseFloat(
96-
s.substring(startPosition, endPosition),
97-
)
94+
results[count++] = s.substring(startPosition, endPosition).toFloat()
9895
}
9996

10097
startPosition = if (result.endWithNegativeOrDot) {
@@ -113,7 +110,7 @@ internal object PathParser {
113110
}
114111
val originalLength = original.size
115112
if (start < 0 || start > originalLength) {
116-
throw ArrayIndexOutOfBoundsException()
113+
throw IndexOutOfBoundsException()
117114
}
118115
val resultLength = end - start
119116
val copyLength = min(resultLength, originalLength - start)

components/parser/jvm/xml/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ plugins {
44

55
dependencies {
66
implementation(projects.components.ir)
7-
7+
implementation(projects.components.parser.common)
88
implementation(libs.xpp3)
99
}

components/parser/jvm/xml/src/main/kotlin/io/github/composegears/valkyrie/parser/jvm/xml/ext/Ir.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.github.composegears.valkyrie.ir.IrPathFillType
55
import io.github.composegears.valkyrie.ir.IrPathNode
66
import io.github.composegears.valkyrie.ir.IrStrokeLineCap
77
import io.github.composegears.valkyrie.ir.IrStrokeLineJoin
8-
import io.github.composegears.valkyrie.parser.jvm.xml.PathParser
8+
import io.github.composegears.valkyrie.parser.common.PathParser
99
import org.xmlpull.v1.XmlPullParser
1010

1111
internal fun XmlPullParser.valueAsPathData(): List<IrPathNode> {

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ include("components:generator:iconpack")
5555
include("components:generator:imagevector")
5656
include("components:ir")
5757
include("components:ir-compose")
58+
include("components:parser:common")
5859
include("components:parser:jvm:svg")
5960
include("components:parser:jvm:xml")
6061
include("components:parser:ktfile")

0 commit comments

Comments
 (0)