URI.RelativePart
- Package
- purescript-uri
- Repository
- purescript-contrib/purescript-uri
#RelativePart Source
data RelativePart userInfo hosts path relPath
The "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 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 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 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 PathNoScheme
The 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 -> String
A 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) path
An 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 UserInfo
The 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 IPv6Address
This 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 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 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 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 hosts
The authority part of a URI. For example: purescript.org
,
localhost:3000
, user@example.net
.
Constructors
Instances
#_IPv6Address Source
_IPv6Address :: Prism' Host IPv6Address
A prism for the IPv6Address
constructor.
#_IPv4Address Source
_IPv4Address :: Prism' Host IPv4Address
A prism for the IPv4Address
constructor.
Re-exports from URI.Path
#Path Source
newtype Path
A 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 PathAbsolute
An 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 PathNoScheme
A 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