mirror of
https://gitee.com/openharmony/third_party_rust_cxx
synced 2024-11-24 07:40:19 +00:00
f5dd552036
This change adds specifically, support for &[u8] with a corresponding rust::Slice<uint8_t> type. No other types of slice are permitted. The rationale is that it may be common to pass binary data back and forth across the FFI boundary, so it's more urgent to get this in place sooner. Broader support for other slices can wait for the future. But, both C++ and Rust-side bindings should allow the existing support to be broadened to other Slice types in future without code changes. A few specific notes: * The name "rust::Slice" might be better as "rust::SliceRef" but I'm following the precedent of "rust::Str". * It would be good to add constructors from std::span but as that's a C++20 feature, that may have to wait until C++ feature detection is resolved. * Internally, this follows the pattern of &str, where the parser will initially recognize this as Type::Ref (of Type::Slice) but then will replace that with Type::SliceRefU8. Type::Slice should not persist through later stages. As we later come to support other types of slice, we would probably want to remove Type::SliceRefU8. |
||
---|---|---|
.. | ||
atom.rs | ||
attrs.rs | ||
check.rs | ||
doc.rs | ||
error.rs | ||
ident.rs | ||
impls.rs | ||
mod.rs | ||
parse.rs | ||
set.rs | ||
tokens.rs | ||
types.rs |