salvia-protocol-1.0.0: src/Network/Protocol/Uri.hs
{- | See rfc2396 for more info. -}
{-# LANGUAGE TemplateHaskell #-}
module Network.Protocol.Uri (
-- * URI datatype.
Scheme
, RegName
, Port
, Query
, Fragment
, Hash
, UserInfo
, PathSegment
, Parameters
, Domain (Domain)
, IPv4 (IPv4)
, Path (Path)
, Host (Hostname, RegName, IP)
, Authority (Authority)
, Uri (Uri)
-- * Accessing parts of URIs.
, relative
, scheme
, userinfo
, authority
, host
, domain
, ipv4
, regname
, port
, path
, segments
, query
, fragment
-- * More advanced labels and functions.
, pathAndQuery
, queryParams
, params
, extension
, remap
-- * Encoding/decoding URI encoded strings.
, encode
, decode
, encoded
-- * Creating empty URIs.
, mkUri
, mkScheme
, mkPath
, mkAuthority
, mkQuery
, mkFragment
, mkUserinfo
, mkHost
, mkPort
-- * Parsing URIs.
, toUri
, parseUri
, parseAbsoluteUri
, parseAuthority
, parsePath
, parseHost
-- * Filename related utilities.
, mimetype
, normalize
, jail
, (/+)
) where
import Network.Protocol.Uri.Data
import Network.Protocol.Uri.Encode
import Network.Protocol.Uri.Parser
import Network.Protocol.Uri.Path
import Network.Protocol.Uri.Printer ()
import Network.Protocol.Uri.Query
import Network.Protocol.Uri.Remap