summaryrefslogtreecommitdiffstats
path: root/third_party/rust/encoding_c/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /third_party/rust/encoding_c/README.md
parentInitial commit. (diff)
downloadfirefox-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.md131
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.)
+