URI.RelativePart
- Package
- purescript-uri
- Repository
- slamdata/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) pathRelativePartNoAuth (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 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 r relPath path hosts userInfo. 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 r relPath path hosts userInfo. 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 relPath path hosts userInfo. Traversal' (RelativePart userInfo hosts path relPath) (Authority userInfo hosts)An affine traversal for the authority component of a relative-part.
#_path Source
_path :: forall relPath path hosts userInfo. 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 relPath path hosts userInfo. 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 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 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