Crates.io | dbxcase |
lib.rs | dbxcase |
version | |
source | src |
created_at | 2024-11-03 19:36:05.208679 |
updated_at | 2024-11-03 19:36:05.208679 |
description | Dropbox-compatible case-folding algorithm |
homepage | |
repository | https://github.com/wfraser/dbxcase |
max_upload_size | |
id | 1434139 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
This is an implementation of text case-folding which matches how Dropbox handles file paths.
Dropbox was originally implemented using Python 2.5 (the current version at the time) and used its
unicode.lower()
function to compare paths case-insensitively. Python 2.5 is long gone, but its
behavior of this function has been preserved to maintain backwards compatibility.
Python 2.5's case-folding is based on Unicode 4.1.0's character database, but does not implement the case-folding algorithm recommended. Instead, it simply applies the "simple lowercase mapping" which is a 1:1 character mapping and does not take any context into account. And of course, it lacks many characters added since 2003.
As a result, it differs in several ways from any modern to_lowercase()
function like the one
included in the Rust standard library. These differences are important if proper interoperation
with the Dropbox API is desired.