URI.RelativePart 
- Package
- purescript-uri
- Repository
- purescript-contrib/purescript-uri
#RelativePart Source
data RelativePart userInfo hosts path relPathThe "relative part" of a relative reference. This combines an authority (optional) with a path value.
When the authority is present a generic path representation can be used, otherwise there are some restrictions on the path construction to ensure no ambiguity in parsing (this is per the spec, not a restriction of the library).
Constructors
- RelativePartAuth (Authority userInfo hosts) path
- RelativePartNoAuth (Maybe relPath)
Instances
- (Eq userInfo, Eq hosts, Eq path, Eq relPath) => Eq (RelativePart userInfo hosts path relPath)
- (Ord userInfo, Ord hosts, Ord path, Ord relPath) => Ord (RelativePart userInfo hosts path relPath)
- Generic (RelativePart userInfo hosts path relPath) _
- (Show userInfo, Show hosts, Show path, Show relPath) => Show (RelativePart userInfo hosts path relPath)
#RelativePartOptions Source
type RelativePartOptions :: Type -> Type -> Type -> Type -> Row Typetype RelativePartOptions userInfo hosts path relPath = RelativePartParseOptions userInfo hosts path relPath (RelativePartPrintOptions userInfo hosts path relPath ())
A row type for describing the options fields used by the relative-part parser and printer.
Used as Record (RelativePartOptions userInfo hosts path relPath)
when type annotating an options record.
#RelativePartParseOptions Source
type RelativePartParseOptions :: Type -> Type -> Type -> Type -> Row Type -> Row Typetype RelativePartParseOptions userInfo hosts path relPath r = (parseHosts :: Parser String hosts, parsePath :: Path -> Either URIPartParseError path, parseRelPath :: RelPath -> Either URIPartParseError relPath, parseUserInfo :: UserInfo -> Either URIPartParseError userInfo | r)
A row type for describing the options fields used by the relative-part parser.
Used as Record (RelativePartParseOptions userInfo hosts path relPath ())
when type annotating an options record.
#RelativePartPrintOptions Source
type RelativePartPrintOptions :: Type -> Type -> Type -> Type -> Row Type -> Row Typetype RelativePartPrintOptions userInfo hosts path relPath r = (printHosts :: hosts -> String, printPath :: path -> Path, printRelPath :: relPath -> RelPath, printUserInfo :: userInfo -> UserInfo | r)
A row type for describing the options fields used by the relative-part printer.
Used as Record (RelativePartPrintOptions userInfo hosts path relPath ())
when type annotating an options record.
#RelPath Source
type RelPath = Either PathAbsolute PathNoSchemeThe specific path types supported in a relative-part when there is no
authority present. See URI.Path.Absolute and
URI.Path.PathNoScheme for an explanation of
these forms.
#parser Source
parser :: forall userInfo hosts path relPath r. Record (RelativePartParseOptions userInfo hosts path relPath r) -> Parser String (RelativePart userInfo hosts path relPath)A parser for the relative-part of a URI.
#print Source
print :: forall userInfo hosts path relPath r. Record (RelativePartPrintOptions userInfo hosts path relPath r) -> RelativePart userInfo hosts path relPath -> StringA printer for the relative-part of a URI.
#_authority Source
_authority :: forall userInfo hosts path relPath. Traversal' (RelativePart userInfo hosts path relPath) (Authority userInfo hosts)An affine traversal for the authority component of a relative-part.
#_path Source
_path :: forall userInfo hosts path relPath. Traversal' (RelativePart userInfo hosts path relPath) pathAn affine traversal for the path component of a relative-part, this succeeds when the authority is present also.
#_relPath Source
_relPath :: forall userInfo hosts path relPath. Traversal' (RelativePart userInfo hosts path relPath) (Maybe relPath)An affine traversal for the path component of a relative-part, this succeeds when the authority is not present.
Re-exports from URI.Authority 
#UserInfo Source
newtype UserInfoThe user info part of an Authority. For example: user, foo:bar.
This type treats the entire string as an undifferentiated blob, if you
would like to specifically deal with the user:password format, take a
look at URI.Extra.UserPassInfo.
Instances
#IPv6Address Source
newtype IPv6AddressThis type and parser are much too forgiving currently, allowing almost anything through that looks vaguely IPv6ish.
Instances
#IPv4Address Source
#Host Source
#AuthorityPrintOptions Source
type AuthorityPrintOptions :: Type -> Type -> Row Type -> Row Typetype AuthorityPrintOptions userInfo hosts r = (printHosts :: hosts -> String, printUserInfo :: userInfo -> UserInfo | r)
A row type for describing the options fields used by the authority printer.
Used as Record (AuthorityPrintOptions userInfo hosts ()) when type
annotating an options record.
#AuthorityParseOptions Source
type AuthorityParseOptions :: Type -> Type -> Row Type -> Row Typetype AuthorityParseOptions userInfo hosts r = (parseHosts :: Parser String hosts, parseUserInfo :: UserInfo -> Either URIPartParseError userInfo | r)
A row type for describing the options fields used by the authority parser.
Used as Record (AuthorityParseOptions userInfo hosts ()) when type
annotating an options record.
#AuthorityOptions Source
type AuthorityOptions :: Type -> Type -> Row Typetype AuthorityOptions userInfo hosts = AuthorityParseOptions userInfo hosts (AuthorityPrintOptions userInfo hosts ())
A row type for describing the options fields used by the authority parser and printer.
Used as Record (AuthorityOptions userInfo hosts) when type annotating an
options record.
#Authority Source
data Authority userInfo hostsThe authority part of a URI. For example: purescript.org,
localhost:3000, user@example.net.
Constructors
Instances
#_IPv6Address Source
_IPv6Address :: Prism' Host IPv6AddressA prism for the IPv6Address constructor.
#_IPv4Address Source
_IPv4Address :: Prism' Host IPv4AddressA prism for the IPv4Address constructor.
Re-exports from URI.Path 
#Path Source
newtype PathA generic absolute-or-empty path, used in both hierarchical-part and relative-parts when an authority component is present. Corresponds to path-abempty in the spec.
A path value of / corresponds to Path [""], an empty path is Path [].
Instances
Re-exports from URI.Path.Absolute  
#PathAbsolute Source
newtype PathAbsoluteAn absolute path, corresponding to path-absolute in the spec. This path
cannot represent the value // - it must either be /, or start with a
segment that is not empty, for example: /something, /., /... This
type can appear in both hierarchical-part and relative-parts to represent
an absolute path when no authority component is present.
This restriction exists as a value begining with // at this point in the
grammar must be an authority, attempting to decide whether a value is an
authority or a path would be ambiguous if // paths were allowed. The //
path means the same thing as / anyway!
Instances
Re-exports from URI.Path.NoScheme  
#PathNoScheme Source
newtype PathNoSchemeA relative path that doesn't look like a URI scheme, corresponding to
path-noscheme in the spec. This path cannot start with the character
/, contain the character : before the first /, or be entirely empty.
This type can appear in a relative-part when there is no authority
component.
Instances
- Modules
- URI
- URI.AbsoluteURI 
- URI.Authority 
- URI.Common 
- URI.Extra. MultiHostPortPair 
- URI.Extra. QueryPairs 
- URI.Extra. UserPassInfo 
- URI.Fragment 
- URI.HierarchicalPart 
- URI.Host 
- URI.Host. Gen 
- URI.Host. IPv4Address 
- URI.Host. IPv6Address 
- URI.Host. RegName 
- URI.HostPortPair 
- URI.HostPortPair. Gen 
- URI.Path 
- URI.Path. Absolute 
- URI.Path. NoScheme 
- URI.Path. Rootless 
- URI.Path. Segment 
- URI.Port 
- URI.Port. Gen 
- URI.Query 
- URI.RelativePart 
- URI.RelativeRef 
- URI.Scheme 
- URI.Scheme. Common 
- URI.URI 
- URI.URIRef 
- URI.UserInfo