aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-10-10Remove explicit test vector array length declarationsRichard Walters
This method was proposed by @Serayen.
2020-10-09Use named_tuple! to simplify test vector declarationsRichard Walters
2020-10-09Use thiserror to implement Error/Display/From traits for usRichard Walters
2020-10-09Minor whitespace/comment cleanupRichard Walters
2020-10-09Make Rust errors a bit more expressiveRichard Walters
2020-10-09Rust implementation refactoringRichard Walters
* Use more expressive errors, especially in address parsing. * Use match in some cases where we were using if/else. * Split IPv6 address parsing tests up between good/base cases.
2020-10-09Implement std::error::Error for custom error typesRichard Walters
2020-10-09Remove unnecessary check in IPv6 parsingRichard Walters
It's not possible to have encountered a double-colon when in the COLON_BUT_NO_GROUPS_YET state.
2020-10-09Slight improvement to name of a state in IPv6 address parsingRichard Walters
AFTER_COLON_EXPECT_GROUP_OR_IPV4 -> AFTER_DOUBLE_COLON
2020-10-09Fix bug in parsing IPv6 addressesRichard Walters
Fix bug where an IPv6 address ending in a double-colon was not considered valid (it was being considered as truncated).
2020-10-09Fix bug in IPv6 address parsingRichard Walters
Fix bug where IPv6 address ending in a group with only digits followed by a double-colon would not get parsed correctly
2020-10-09Dismiss some todosRichard Walters
2020-10-07(Rust) Uri::is_path_absolute: match against whole path, not first segmentRichard Walters
2020-10-07(Rust) combine match with if/else in Uri::validate_ipv4_addressRichard Walters
2020-10-07(Rust) dismiss some todosRichard Walters
2020-10-07(Rust) Add Uri::path_as_string convenience functionRichard Walters
2020-10-07(Rust) Make setting scheme fallible by checking for invalid charactersRichard Walters
2020-10-07Finish initial port of library to RustRichard Walters
2020-10-07Fix misspellingRichard Walters
2020-10-06Work in progress porting to RustRichard Walters
2020-10-06Work in progress porting implementation to RustRichard Walters
2020-10-05Add tests for parsing hosts ending in dotRichard Walters
2020-09-27No need to use try_from() when setting parts of a URIRichard Walters
2020-09-27Finish porting unit tests to RustRichard Walters
2020-09-27Work in progress porting test cases to Rust, implemented by uriparseRichard Walters
2019-12-02Support first > last for range constructor of CharacterSetRichard Walters
2019-11-09StringExtensions moved from SystemAbstractions to its own libraryRichard Walters
2019-05-10Remove useless incrementsRichard Walters
Thank you to @ya-ming for pointing this out!
2019-03-28Percent-encode '+' in the query portionRichard Walters
2019-01-06Uri: remove old TODO comment no longer applicableRichard Walters
2018-10-24Uri: fix bugs in copying and comparing URIs with query/fragment partsRichard Walters
Copying query or fragment needs to copy the "hasQuery" and "hasFragment" flags. Comparing URIs should make use of "hasQuery" and "hasFragment" to properly compare URIs that might not have query and/or fragment parts.
2018-10-24Uri: fix bug in percent-encoding of character codes 0x80-0xffRichard Walters
Can't treat characters using "char" type because it's signed.
2018-09-05Fix compiler warnings found by compiling on MacRichard Walters
2018-08-24remove redundant 'struct' from pimpl patternRichard Walters
2018-08-09use SystemAbstractions::ToInteger to convert strings to integersRichard Walters
2018-08-09Refactoring: make application of rule of zero/five consistentRichard Walters
2018-08-05Use SystemAbstractions::ToLower instead of doing it ourselvesRichard Walters
2018-07-23Add copy constructor and assignment operatorRichard Walters
2018-07-04Fix bug in IPv6Address validationRichard Walters
A trailing group which is definitely not an IPv4Address needs to be counted. Detect this as the state being IN_GROUP_NOT_IPV4 after the end of the string.
2018-07-04RefactoringRichard Walters
Assign names to states in the IPv6Address validation routine
2018-07-04Fix bugs in IPv6 address parsingRichard Walters
* Multiple colons should not be accepted in state 4. * After parsing a digit group and encountering a colon, we need allow either another colon or the beginning of either another group or an IPv4 address. Add state 5 to handle this.
2018-07-04Normalize IPv6 addresses when generating URI stringsRichard Walters
2018-07-04Percent-encode if necessary any elements when generating stringsRichard Walters
2018-07-04Fix requirementsRichard Walters
Query and fragment may be empty but present in a URI. Handle this in the same way that port is handled: include a flag for each of query and fragment, to allow an empty but present query/fragment.
2018-07-04Add capability of setting other elementsRichard Walters
* userinfo * port (hasPort) * path * fragment Also include these element when generating string from URI.
2018-07-04Add GenerateString (incomplete)Richard Walters
Add methods to set scheme, host, and query elements. Add ability to generate URI strings out of scheme, host, and query elements. This does not yet support userinfo, port, or fragment elements.
2018-07-04Fix bug in truncated host elementsRichard Walters
For example, "[::1", where the square bracket at the end is missing. Handle truncated host element by checking the state we end up in after the entire string is parsed. Some states represent interal elements of a host name or address, and so if we're still in those states and run out of input characters, the input string was cut off early.
2018-07-04Fix bug in parsing out IPv6 and IPvFuture addressesRichard Walters
Don't include the square brackets in the parsed out host string; they are only there for delimiting them inside of an overall URI string.
2018-07-04Validate IPv6 addressesRichard Walters
* Add ValidateIpv6Address. * Add ValidateIpv4Address (since an IPv6 address is allowed to contain an IPv4 address for compatibility) * Add ValidateOctet (used by ValidateIpv4Address).
2018-07-04RefactoringRichard Walters
* Extract CanNavigatePathUpOneLevel from NormalizePath. * Add comments to explain what's going on elsewhere in NormalizePath.