diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /third_party/rust/encoding_c/README.md | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/encoding_c/README.md')
-rw-r--r-- | third_party/rust/encoding_c/README.md | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/third_party/rust/encoding_c/README.md b/third_party/rust/encoding_c/README.md new file mode 100644 index 0000000000..d4c80865ff --- /dev/null +++ b/third_party/rust/encoding_c/README.md @@ -0,0 +1,131 @@ +# encoding_c + +[![crates.io](https://meritbadge.herokuapp.com/encoding_c)](https://crates.io/crates/encoding_c) +[![docs.rs](https://docs.rs/encoding_c/badge.svg)](https://docs.rs/encoding_c/) +[![Apache 2 / MIT dual-licensed](https://img.shields.io/badge/license-Apache%202%20%2F%20MIT-blue.svg)](https://github.com/hsivonen/encoding_c/blob/master/COPYRIGHT) + +encoding_c is an FFI wrapper for [encoding_rs](https://github.com/hsivonen/encoding_rs). + +## Bindings for `encoding_rs::mem` + +See the [`encoding_c_mem` crate](https://crates.io/crates/encoding_c_mem) +for bindings for `encoding_rs::mem`. + +## Licensing + +Please see the file named +[COPYRIGHT](https://github.com/hsivonen/encoding_c/blob/master/COPYRIGHT). + +## No Unwinding Support! + +This crate is meant for use in binaries compiled with `panic = 'abort'`, which +is _required_ for correctness! Unwinding across FFI is Undefined Behavior, and +this crate does nothing to try to prevent unwinding across the FFI if +compiled with unwinding enabled. + +## C/C++ Headers + +`include/encoding_rs.h` and `include/encoding_rs_statics.h` are needed for C +usage. + +`include/encoding_rs_cpp.h` is a sample C++ API built on top of the C API using +GSL and the C++ standard library. Since C++ project typically roll their own +string classes, etc., it's probably necessary for C++ projects to manually +adapt the header to their replacements of standard-library types. + +There's a [write-up](https://hsivonen.fi/modern-cpp-in-rust/) about the C++ +wrappers. + +## Release Notes + +### 0.9.8 + +* Remove year from copyright notices. + +### 0.9.7 + +* Specify a `links` value in the Cargo manifest. +* Emit an `include_dir` variable from build script so that other build scripts + depending on this crate can rely on it. + +### 0.9.6 + +* Fix a bug in the C++ header. + +### 0.9.5 + +* Adjust documentation for encoding_rs 0.8.20. + +### 0.9.4 + +* Fix bogus C header. + +### 0.9.3 + +* Fix bogus C++ header. + +### 0.9.2 + +* Wrap `Decoder::latin1_byte_compatible_up_to`. + +### 0.9.1 + +* Wrap `Encoding::is_single_byte()`. +* Pass through new feature flags introduced in encoding_rs 0.8.11. + +### 0.9.0 + +* Update to encoding_rs 0.8.0. + +### 0.8.0 + +* Update to encoding_rs 0.7.0. +* Drop `encoding_for_name()`. +* Deal correctly with the `data()` method of `gsl::span` returning `nullptr`. + +### 0.7.6 + +* Rename `ENCODING_RS_NON_NULL_CONST_ENCODING_PTR` to + `ENCODING_RS_NOT_NULL_CONST_ENCODING_PTR`. (Not a breaking change, + because defining that macro broke the build previously, so the + macro couldn't have been used.) +* Use the macro only for statics and not for return values. + +### 0.7.5 + +* Annotate the encoding pointers that should be wrapped with a + same-representation not-null type in C++ as + `ENCODING_RS_NON_NULL_CONST_ENCODING_PTR`. + +### 0.7.4 + +* Wrap `has_pending_state()`. + +### 0.7.3 + +* Use C preprocessor definitions for encoding constant declarations. + +### 0.7.2 + +* Parametrize the struct type names behind C preprocessor definitions. +* Leave it to the user to provide `char16_t`. Avoid including a header for it. + +### 0.7.1 + +* Fix documentation for pointers that get used in + `std::slice::from_raw_parts()`. + +### 0.7.0 + +* Map `None` to `SIZE_MAX` in the max length calculation functions. + +### 0.6.0 + +* Check in the `cheddar`-generated header and comment out the `cheddar`-using + `build.rs`. + +### 0.5.0 + +* Initial release of encoding_c. (I.e. first release with FFI in a distinct + crate.) + |