pub mod compression;1mod other;23pub use other::*;4#[cfg(any(feature = "async", feature = "cloud"))]5pub mod byte_source;6pub mod file;7pub mod mkdir;8pub mod slice;9#[cfg(feature = "async")]10pub mod stream_buf_reader;11pub mod sync_on_close;1213/// Excludes only the unreserved URI characters in RFC-3986:14///15/// <https://datatracker.ietf.org/doc/html/rfc3986#section-2.3>16///17/// Characters that are allowed in a URI but do not have a reserved18/// purpose are called unreserved. These include uppercase and lowercase19/// letters, decimal digits, hyphen, period, underscore, and tilde.20///21/// unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"22pub const URL_ENCODE_CHARSET: &percent_encoding::AsciiSet = &percent_encoding::NON_ALPHANUMERIC23.remove(b'-')24.remove(b'.')25.remove(b'_')26.remove(b'~');2728/// Characters to percent-encode for hive values such that they round-trip from bucket storage.29///30/// This is much more relaxed than the RFC-3986 URI spec as bucket storage is more permissive of allowed31/// characters.32pub const HIVE_VALUE_ENCODE_CHARSET: &percent_encoding::AsciiSet = &percent_encoding::CONTROLS33.add(b'/') // Exclude path separator34.add(b'=') // Exclude hive `key=value` separator35.add(b'%') // Percent itself.36// Colon and space are supported by object storage, but are encoded to mimic37// the datetime output format from pyarrow:38// * i.e. 'date2=2023-01-01 00:00:00.000000' becomes 'date2=2023-01-01%2000%3A00%3A00.000000'39.add(b':')40.add(b' ');414243