-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | URI parser / printer using attoparsec
--   
--   Please see the README on GitHub at
--   <a>https://github.com/githubuser/purescript-iso#readme</a>
@package attoparsec-uri
@version 0.0.7

module Data.URI.Auth.Host
data URIAuthHost
Glob :: URIAuthHost
IPv4 :: !IPv4 -> URIAuthHost
IPv6 :: !IPv6 -> URIAuthHost
Localhost :: URIAuthHost

-- | <tt>Host ["foo","bar"] "com"</tt> represents <tt>foo.bar.com</tt>
Host :: !Vector Text -> !Text -> URIAuthHost
[uriAuthHostName] :: URIAuthHost -> !Vector Text
[uriAuthHostSuffix] :: URIAuthHost -> !Text
printURIAuthHost :: URIAuthHost -> Text
parseURIAuthHost :: Parser URIAuthHost
instance GHC.Generics.Generic Data.URI.Auth.Host.URIAuthHost
instance GHC.Classes.Eq Data.URI.Auth.Host.URIAuthHost
instance GHC.Show.Show Data.URI.Auth.Host.URIAuthHost
instance Test.QuickCheck.Arbitrary.Arbitrary Data.URI.Auth.Host.URIAuthHost

module Data.URI.Auth
data URIAuth
URIAuth :: !Maybe (Pair Text (Maybe Text)) -> !URIAuthHost -> !Maybe Word16 -> URIAuth

-- | a designated user - <tt>ssh://git:foo@github.com</tt> is <tt>Just
--   ("git" :!: Just "foo")</tt>
[uriAuthUser] :: URIAuth -> !Maybe (Pair Text (Maybe Text))
[uriAuthHost] :: URIAuth -> !URIAuthHost

-- | the port, if it exists - <tt>foobar.com:3000</tt> is <tt>3000</tt> as
--   a 16-bit unsigned int.
[uriAuthPort] :: URIAuth -> !Maybe Word16
printURIAuth :: URIAuth -> Text
parseURIAuth :: Parser URIAuth
instance GHC.Generics.Generic Data.URI.Auth.URIAuth
instance GHC.Classes.Eq Data.URI.Auth.URIAuth
instance GHC.Show.Show Data.URI.Auth.URIAuth
instance Test.QuickCheck.Arbitrary.Arbitrary Data.URI.Auth.URIAuth

module Data.URI
data URI
URI :: !Maybe Text -> !Bool -> !URIAuth -> !Maybe (Vector Text) -> !Vector (Pair Text (Maybe Text)) -> !Maybe Text -> URI

-- | the scheme without the colon -
--   <tt><a>https://hackage.haskell.org/</a></tt> has a scheme of
--   <tt>https</tt>
[uriScheme] :: URI -> !Maybe Text

-- | are the slashes present? -
--   <tt><a>https://hackage.haskell.org/</a></tt> is <tt>True</tt>
[uriSlashes] :: URI -> !Bool
[uriAuthority] :: URI -> !URIAuth

-- | slash-separated list - <tt><a>https://hackage.haskell.org/foo</a></tt>
--   is <tt>["foo"]</tt>
[uriPath] :: URI -> !Maybe (Vector Text)

-- | list of key-value pairs -
--   <tt><a>https://hackage.haskell.org/?foo=bar&amp;baz&amp;qux=</a></tt>
--   is <tt>[("foo", Just "bar"), ("baz", Nothing), ("qux", Just "")]</tt>
[uriQuery] :: URI -> !Vector (Pair Text (Maybe Text))

-- | uri suffix - <tt><a>https://hackage.haskell.org/#some-header</a></tt>
--   is <tt>Just "some-header"</tt>
[uriFragment] :: URI -> !Maybe Text
printURI :: URI -> Text
parseURI :: Parser URI
instance GHC.Generics.Generic Data.URI.URI
instance GHC.Classes.Eq Data.URI.URI
instance GHC.Show.Show Data.URI.URI
instance Test.QuickCheck.Arbitrary.Arbitrary Data.URI.URI
