iri 0.3.3 → 0.3.4
raw patch · 3 files changed
+20/−9 lines, 3 files
Files
- iri.cabal +1/−1
- library/Iri/Parsing/Attoparsec/ByteString.hs +5/−4
- library/Iri/Parsing/ByteString.hs +14/−4
iri.cabal view
@@ -1,7 +1,7 @@ name: iri version:- 0.3.3+ 0.3.4 category: URI, URL, IRI, Network synopsis:
library/Iri/Parsing/Attoparsec/ByteString.hs view
@@ -2,6 +2,7 @@ ( uri, httpUri,+ regName, ) where @@ -167,7 +168,7 @@ labeled "Host" $ IpV6Host <$> ipV6 <|> IpV4Host <$> M.parserUtf8 <|>- NamedHost <$> domainName+ NamedHost <$> regName {-# INLINABLE ipV6 #-} ipV6 :: Parser IPv6@@ -195,9 +196,9 @@ colon return (N.fromWord16s a b c d 0 0 0 0)) -{-# INLINE domainName #-}-domainName :: Parser RegName-domainName =+{-# INLINE regName #-}+regName :: Parser RegName+regName = fmap RegName (E.sepBy1 domainLabel (word8 46)) {-|
library/Iri/Parsing/ByteString.hs view
@@ -2,6 +2,7 @@ ( uri, httpUri,+ regName, ) where @@ -11,19 +12,28 @@ import qualified Data.Attoparsec.ByteString as B +parser parser =+ either (Left . fromString) Right .+ B.parseOnly (parser <* B.endOfInput)+ {-| Parser of a well-formed URI conforming to the RFC3986 standard into IRI. Performs URL- and Punycode-decoding. -} uri :: ByteString -> Either Text Iri uri =- either (Left . fromString) Right .- B.parseOnly (A.uri <* B.endOfInput)+ parser A.uri {-| Same as 'uri', but optimized specifially for the case of HTTP URIs. -} httpUri :: ByteString -> Either Text HttpIri httpUri =- either (Left . fromString) Right .- B.parseOnly (A.httpUri <* B.endOfInput)+ parser A.httpUri++{-|+Domain name parser.+-}+regName :: ByteString -> Either Text RegName+regName =+ parser A.regName