All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed
std::PathExt.normalize()
on Windows - Fixed
std::PathExt.restrict()
on Windows - Fixed
std::PathExt.strip_root()
tests on Windows - Adjusted
IpAddr
referencing in theip!
macro
- Implemented
ThisError
for error types - Updated lint configuration for Rust 1.82
- Updated crate dependencies
- Added
From<AxumBody>
forhttp::UnpackedResponseBody
- Added feature flags for each module
- Added MSRV (Minimum Supported Rust Version) in
Cargo.toml
, set to 1.81.0
- Updated lint configuration for Rust 1.79
- Updated lint configuration for Rust 1.80
- Updated lint configuration for Rust 1.81
- Updated crate dependencies
- Linted tests
- Moved linting configuration to
Cargo.toml
- Added lint exception due to bug in Rust 1.78
- Updated crate dependencies
- Updated lint configuration for Rust 1.77
- Updated crate dependencies
- Extended the
crypto
module- Added
Hashed
trait- Added
Hashed::from_digest()
- Added
- Implemented
Hashed
forSha256Hash
andSha512Hash
- Added
- Extended the
std
module- Added
AsyncFileExt
trait- Added
AsyncFile::hash()
- Added
- Added
FileExt
trait- Added
File::hash()
- Added
- Added
- Fixed wrong links in README documentation
- Improved README documentation
- Extended the
std
module- Added
ByteSized
trait- Added
ByteSized::from_base64()
- Added
ByteSized::from_bytes()
- Added
ByteSized::from_hex()
- Added
ByteSized.as_bytes()
- Added
ByteSized.to_base64()
- Added
ByteSized.to_bytes()
- Added
ByteSized.to_hex()
- Added
ByteSized.to_vec()
- Added
- Added
ByteSizedFull
trait - Added
ByteSizedMut
trait- Added
ByteSizedMut.as_mut_bytes()
- Added
ByteSizedMut.into_bytes()
- Added
ByteSizedMut.into_vec()
- Added
- Added
ForceFrom
trait- Added
ForceFrom::force_from()
- Added
- Added
- Added
crypto
module to provide formal handling of hashes and keys- Added
Sha256Hash
struct - Added
Sha512Hash
struct - Added
SigningKeyExt
trait - Added
SigningKey
wrapper type- Added
SigningKey.generate()
- Added
SigningKey.into_inner()
- Added
SigningKey.verifying_key()
- Added
- Added
VerifyingKeyExt
trait - Added
VerifyingKey
wrapper type- Added
VerifyingKey.into_inner()
- Added
- Added
- Locked Chrono dependency to 0.4.33 due to test-breaking changes in version 0.4.34 and build-breaking changes in 0.4.35
- Extended the
http
module- Added
UnpackedResponse::new()
- Added
UnpackedResponse::new_from_parts()
- Added
UnpackedResponseHeader::new()
- Added
- Updated README content
- Split README into separate files per module
- Extended the
chrono
module- Added
*_full()
constructor methods toDurationExt
- Added
Duration::nanoseconds_full()
- Added
Duration::microseconds_full()
- Added
- Added constructor methods to
MonthsExt
- Added
Months::months()
- Added
Months::years()
- Added
- Added
- Updated
DurationExt::MIN_MILLISECONDS
for Chrono 0.4.32 - Updated
DurationExt::MIN_NANOSECONDS_FULL
andMIN_MICROSECONDS_FULL
for Chrono 0.4.32 - Updated crate dependencies
- Extended the
chrono
module- Added
MonthsExt
trait- Added
Months::MAX_MONTHS
- Added
Months::MAX_YEARS
- Added
Months.num_months()
- Added
Months.num_years()
- Added
- Added
MAX_*
andMIN_*
constants toDurationExt
- Added
Duration::MAX_NANOSECONDS
- Added
Duration::MAX_MICROSECONDS
- Added
Duration::MAX_MILLISECONDS
- Added
Duration::MAX_SECONDS
- Added
Duration::MAX_MINUTES
- Added
Duration::MAX_HOURS
- Added
Duration::MAX_DAYS
- Added
Duration::MAX_WEEKS
- Added
Duration::MIN_NANOSECONDS
- Added
Duration::MIN_MICROSECONDS
- Added
Duration::MIN_MILLISECONDS
- Added
Duration::MIN_SECONDS
- Added
Duration::MIN_MINUTES
- Added
Duration::MIN_HOURS
- Added
Duration::MIN_DAYS
- Added
Duration::MIN_WEEKS
- Added
- Added constants and methods to
DurationExt
for full range- Added
Duration.num_nanoseconds_full()
- Added
Duration.num_microseconds_full()
- Added
Duration::MAX_NANOSECONDS_FULL
- Added
Duration::MAX_MICROSECONDS_FULL
- Added
Duration::MIN_NANOSECONDS_FULL
- Added
Duration::MIN_MICROSECONDS_FULL
- Added
- Added
- Enhanced
variants!()
macro to type-hint empty lists
- Fixed wrong links in README documentation
- Restructured README documentation
- Added
serde
module to provide useful conversions when (de)serialising- Added general type conversion functions
- Added
as_str()
- Added
from()
- Added
from_str()
- Added
from_string()
- Added
into()
- Added
into_string()
- Added
to_string()
- Added
try_from()
- Added
try_from_string()
- Added
- Added helpers for scaling integers to/from floating-point numbers
- Added
from_cents()
- Added
from_pence()
- Added
to_cents()
- Added
to_pence()
- Added
try_from_int_1dp()
- Added
try_from_int_2dp()
- Added
try_from_int_3dp()
- Added
try_from_int_4dp()
- Added
try_from_int_with_scale()
- Added
try_to_int_1dp()
- Added
try_to_int_2dp()
- Added
try_to_int_3dp()
- Added
try_to_int_4dp()
- Added
try_to_int_with_scale()
- Added
- Added general type conversion functions
- Extended the
chrono
module- Added
MAX_YEAR
andMIN_YEAR
constants toNaiveDateExt
- Added
- Extended the
std
module- Added
AsStr
trait - Added
FromIntWithScale
trait - Added
ToIntWithScale
trait - Added implementations of
FromIntWithScale::from_int_with_scale()
andToIntWithScale::to_int_with_scale()
to/fromf32
/f64
/Decimal
and all integer types
- Added
- Extended the
sugar
module- Added macros for enum variant shorthand
- Added
variants!()
- Added
variants_hashset!()
- Added
vv!()
alias - Added
vh!()
alias
- Added
- Re-exported
rubedo_macros::ip
asrubedo::sugar::ip
- Added macros for enum variant shorthand
- Added some integration tests
- Added standard linting configuration
- Improved
sugar::s!()
macro to detect string literals
- In the
http
module- Improved
ResponseError
, allowing any errors raised byto_bytes()
to be captured - Amended
convert_response()
to deal with a borrowed body rather than taking ownership - Derived
Eq
forContentType
- Made
UnpackedResponseBody.content_type()
const
- Improved
- In the
std
module- Improved handling of
cwd
inPathExt::normalize()
, to fall back to the filesystem root directory - Derived
Clone
andDebug
forLimitIterator
- Improved handling of
- General changes
- Annotated non-exhaustive enums and structs as such
- Applied
must_use
annotation to appropriate functions - Used
core
instead ofstd
where possible - Refactored some functions
- Improved documentation
- Removed support for using the
sugar::s!()
macro with non-string literals
- Added
std::Iterator.limit()
- Implemented
From<HyperBody>
andFrom<UnsyncBoxBody<Bytes, E>>
forhttp::UnpackedResponseBody
- Improved Rustdoc documentation
- Implemented
From<Json>
forhttp::UnpackedResponseBody
- Implemented custom
Serialize
andDeserialize
implementations forhttp::UnpackedResponseBody
- Added
http::ContentType
enum to specifyhttp:UnpackedResponseBody
content type - Added
content_type()
,set_content_type()
,is_binary()
,is_text()
,to_base64()
, andfrom_base64()
tohttp::UnpackedResponseBody
- Updated
Debug
,Display
,Serialize
, andDeserialize
implementations forhttp::UnpackedResponseBody
to be content-type aware - Updated
http::UnpackedResponseBody::new()
to accept any types thatFrom
has been implemented for - Changed
http::UnpackedResponseBody
from tuple struct to standard struct - Improved performance in
http::UnpackedResponseBody::from()
- Added
push_char()
tohttp::UnpackedResponseBody
- Implemented additional
Add
andAddAssign
functionality forhttp::UnpackedResponseBody
:char
,&char
,String
,&String
,Box<str>
,Cow<'a, str>
,u8
,Vec<u8>
,&Vec<u8>
,UnpackedResponseBody
,&UnpackedResponseBody
- Implemented additional
From
conversions forhttp::UnpackedResponseBody
:&[u8]
,&[u8; N]
,&char
,Vec<u8>
,&Vec<u8>
- Improved performance in
chrono::DurationExt.humanize()
- Improved performance in
http::UnpackedResponseBody::from<&String>()
- Added
new()
,clear()
,empty()
,is_empty()
,len()
,push()
,push_bytes()
,push_str()
,as_bytes()
,as_mut_bytes()
,into_bytes()
, andto_bytes()
tohttp::UnpackedResponseBody
- Implemented
Add
andAddAssign
functionality forhttp::UnpackedResponseBody
:&[u8]
,&[u8; N]
, and&str
- Implemented
AsRef
,AsMut
,Clone
,Default
, andWrite
forhttp::UnpackedResponseBody
- Implemented a range of
From
conversions forhttp::UnpackedResponseBody
:&str
,&mut str
,String
,&String
,Box<str>
,Cow<'a, str>
,char
, andu8
- Implemented
Serialize
andDeserialize
forhttp::UnpackedResponse
- Changed
http::UnpackedResponse.body
to use a newUnpackedResponseBody
struct
- Extended
http::ResponseExt
to cover Axum
- Made
http::UnpackedResponse
fields public
- Renamed
hyper
module tohttp
- Added
hyper
module to enhance Hyper library- Added
hyper::Response.unpack()
- Added
- Improved README documentation
- Improved Rustdoc documentation
- Added
std
module to enhance Rust std lib- Added
std::Path.append()
- Added
std::Path.is_subjective()
- Added
std::Path.normalize()
- Added
std::Path.restrict()
- Added
std::Path.strip_parentdirs()
- Added
std::Path.strip_root()
- Added
- Added
chrono
module to enhance Chrono library- Added
chrono::Duration.humanize()
- Added
chrono::NaiveDate::today()
- Added
chrono::NaiveDate::days_in_month_opt()
- Added
chrono::NaiveDate::days_in_year_opt()
- Added
chrono::NaiveDate::is_leap_year_opt()
- Added
chrono::NaiveDate::start_of_month_opt()
- Added
chrono::NaiveDate::end_of_month_opt()
- Added
chrono::NaiveDate::start_of_year_opt()
- Added
chrono::NaiveDate::end_of_year_opt()
- Added
chrono::NaiveDate.days_in_month()
- Added
chrono::NaiveDate.days_in_year_opt()
- Added
chrono::NaiveDate.is_leap_year()
- Added
chrono::NaiveDate.start_of_month()
- Added
chrono::NaiveDate.end_of_month_opt()
- Added
chrono::NaiveDate.start_of_year()
- Added
chrono::NaiveDate.end_of_year_opt()
- Added
- Added macros for creation sugar
- Added
ip!()
macro for IpAddr creation sugar - Added
s!()
macro for String creation sugar
- Added
- Added
trybuild
to catch proc_macro test failures - Added README documentation