Skip to content

Commit

Permalink
optimize uri parsing to reduce StringBuilder allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
fwbrasil committed Feb 29, 2024
1 parent 15027cb commit 7222152
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions core/src/main/scala/sttp/model/UriInterpolator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -731,6 +731,14 @@ object UriInterpolator {
case Singleton(ExpressionToken(s: Array[_])) =>
b ++= s.flatMap(anyToStringOpt)
doToSeq(tailTs)
case valueTs if(valueTs.size == 1) =>
valueTs.get(0) match {
case StringToken(s) => b += decode(s, decodePlusAsSpace)
case ExpressionToken(e) => anyToStringOpt(e).foreach(b += _)
case EqInQuery => b += "="
case _ =>
}
doToSeq(tailTs)
case valueTs =>
val mbStr = valueTs mkStringOpt {
case StringToken(s) => Some(decode(s, decodePlusAsSpace))
Expand Down

0 comments on commit 7222152

Please # to comment.