Releases: yescallop/fluent-uri-rs
Releases · yescallop/fluent-uri-rs
fluent-uri v0.3.2
fluent-uri v0.3.1
- Fixed a bug where
{Uri, Iri}::try_from
panic when passed a URI/IRI reference that consists of only scheme characters (#28). - Fixed a bug where
Iri::to_uri
andIriRef::to_uri_ref
omit the colon delimiter before a port.
fluent-uri v0.3.0
Highlights
- Reintroduced a
Uri
type that represents a URI (always with a scheme). - Added support for IRIs (RFC 3987) by introducing
Iri
andIriRef
types. - Dropped
net
from default features list.
Other changes
Added
- Implemented
From
andTryFrom
between URI/IRI (reference) types and strings. - Added IRI encoders
IUserinfo
,IRegName
,IPort
,IPath
,IQuery
,IFragment
, andIData
. - Changed
Authority
andHost
to take encoder type parameters which default to URI encoders. - Added type aliases
IAuthority
andIHost
that use IRI encoders. - Added
Table::{or_ucschar, or_iprivate}
.
Removed
- Removed
UriRef::is_uri
in favor ofhas_scheme
.
Changed
- Replaced
EString::push_byte
withEString::push
which takeschar
as argument. - Renamed
EStr<Path>::segments
tosegments_if_absolute
for clarity. - Renamed
Table::gen
tonew
, andTable::enc
toor_pct_encoded
. - Changed
Table::allows
to takechar
as argument.
fluent-uri v0.2.0
Highlights
- Added support for building, resolving and normalizing URI references.
- Renamed
Uri
toUriRef
because it represents a URI reference, not a URI (see #19). - Added a type parameter on
EStr
which represents an encoder determining which characters must be percent-encoded, along with 7 encoders:Userinfo
,RegName
,Port
,Path
,Query
,Fragment
, andData
. - Added
EString
which is a percent-encoded, growable string. - Dropped all unsafe code.
Other changes
Added
- Implemented appropriate traits on all types.
- Added
Scheme::{new, new_or_panic}
associated functions. - Added
Authority::{port_to_u16, socket_addrs}
utility methods. - Added
Uri::has_{scheme, authority, query, fragment}
andAuthority::has_{userinfo, port}
methods. - Added
{EStr, Authority}::EMPTY
constants. - Added
EStr::{len, is_empty, rsplit_once}
methods. - Added a type parameter on
ParseError
which represents the input type andParseError::{into, strip}_input
methods. - Added
net
andserde
crate features.
Removed
- Removed in-place mutable variant of URI reference (
Uri<&mut [u8]>
) and related APIs. - Removed
ParseErrorKind
enum andParseError::{index, kind}
methods. - Removed
ipv_future
andrfc6874bis
crate features. - Removed
Uri<&str>::dup
method asUriRef<&str>
is nowCopy
. - Removed
Scheme::{to_lowercase, eq_lowercase}
methods in favor of the new case-insensitivePartialEq
implementation onScheme
.
Changed
- Merged
Uri::parse
andUri::parse_from
intoUriRef::parse
with generics. Authority
is now directly borrowed from the string instead of theUriRef
.- Removed
Uri::{is_relative, is_absolute}
in favor of the newly addedUriRef::is_uri
. - Removed
Host
, renamedHostData
toHost
, changedAuthority::host
to return&str
, and addedAuthority::host_parsed
which returnsHost
. - Changed
Host
:Ipv6
is now a tuple variant with a singleIpv6Addr
field, andIpvFuture
is now a non-exhaustive unit variant. - Removed the dedicated
Path
type, moved the utility methodsPath::{is_absolute, is_rootless, segments}
ontoEStr<Path>
, and changedUriRef::path
to return&EStr<Path>
. - Changed
Authority::port
to returnOption<&EStr<Port>>
. - Changed
UriRef<String>::borrow
to returnUriRef<&str>
. - Changed
EStr::new
to returnOption
instead and addedEStr::new_or_panic
. - Changed module structure.
- Extracted a code pattern into the borrow-or-share crate.
- Bumped MSRV to 1.65 (was 1.59).
- Reworked documentation.
v0.1.4
v0.1.3
This is the de facto first release of fluent-uri
.
Change log:
- Introduced generics in
Uri
. u32
indexes instead of slices are stored internally.- Multiple bugs found when fuzzing the crate against other parsers are now fixed.
- Removed a bunch of unnecessary APIs to ensure a minimal and future-proof crate.
- Added two feature flags for enabling the parsing of IPvFuture and IPv6 scoped addresses.
- Refined documentations.