io.lemonlabs.uri.parsing.UriParser.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-uri_2.12 Show documentation
Show all versions of scala-uri_2.12 Show documentation
Simple scala library for building and parsing URIs
package io.lemonlabs.uri.parsing
import io.lemonlabs.uri.Uri
import io.lemonlabs.uri.config.UriConfig
import org.parboiled2.CharPredicate
import org.parboiled2.CharPredicate.{AlphaNum, HexDigit}
import scala.util.Try
trait UriParser {
val _unreserved: CharPredicate =
AlphaNum ++ CharPredicate("-._~")
val _pct_encoded: CharPredicate =
HexDigit ++ CharPredicate('%')
val _sub_delims: CharPredicate =
CharPredicate("!$&'()*+,;=")
val _p_char: CharPredicate =
_unreserved ++ _pct_encoded ++ _sub_delims ++ CharPredicate(":@")
}
object UriParser {
def parseUri(s: String)(implicit config: UriConfig = UriConfig.default): Try[Uri] =
UrnParser.parseUrn(s) orElse UrlParser.parseUrl(s)
}