blob: 2d05f7fa5cf51d734b13515601fe9a013f457af1 [file]
// Part of the Crubit project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Automatically @generated C++ bindings for the following Rust crate:
// composable_bridging_rust_golden
// Features: experimental, infer_operator_lifetimes, non_unpin_ctor,
// std_unique_ptr, std_vector, supported, wrapper
// clang-format off
#ifndef THIRD_PARTY_CRUBIT_CC_BINDINGS_FROM_RS_TEST_GOLDEN_COMPOSABLE_BRIDGING_RUST_GOLDEN
#define THIRD_PARTY_CRUBIT_CC_BINDINGS_FROM_RS_TEST_GOLDEN_COMPOSABLE_BRIDGING_RUST_GOLDEN
#include "support/bridge.h"
#include "support/rs_std/slice_ref.h"
#include <cstdint>
#include <optional>
namespace composable_bridging_rust {
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=8
std::optional<std::int32_t> returns_some_int();
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=12
std::optional<std::int32_t> returns_no_int();
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=16
std::int32_t unwrap_or_zero(std::optional<std::int32_t> x);
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=20
std::optional<std::int32_t> option_increments(std::optional<std::int32_t> x);
// Error generating bindings for `MyOptionRust` defined at
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=27:
// Type bindings for MyOptionRust suppressed due to being mapped to an existing
// C++ type (std::optional)
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=29
std::optional<std::int32_t> make_my_option_rust();
// Generated from:
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=33
std::optional<rs_std::SliceRef<const std::int32_t>> maybe_int_slice();
// Error generating bindings for `MyOptionRustAbi` defined at
// cc_bindings_from_rs/test/golden/composable_bridging.rs;l=37:
// Generic types are not supported yet (b/259749095)
namespace __crubit_internal {
extern "C" void __crubit_thunk_returns_usome_uint(unsigned char* __ret_ptr);
}
inline std::optional<std::int32_t> returns_some_int() {
unsigned char __return_value_storage
[::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
__crubit_internal::__crubit_thunk_returns_usome_uint(__return_value_storage);
return ::crubit::internal::Decode<
::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>>(
__return_value_storage);
}
namespace __crubit_internal {
extern "C" void __crubit_thunk_returns_uno_uint(unsigned char* __ret_ptr);
}
inline std::optional<std::int32_t> returns_no_int() {
unsigned char __return_value_storage
[::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
__crubit_internal::__crubit_thunk_returns_uno_uint(__return_value_storage);
return ::crubit::internal::Decode<
::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>>(
__return_value_storage);
}
namespace __crubit_internal {
extern "C" std::int32_t __crubit_thunk_unwrap_uor_uzero(unsigned char*);
}
inline std::int32_t unwrap_or_zero(std::optional<std::int32_t> x) {
unsigned char x_buffer
[::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
::crubit::internal::Encode<
::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>>(x_buffer, x);
return __crubit_internal::__crubit_thunk_unwrap_uor_uzero(x_buffer);
}
namespace __crubit_internal {
extern "C" void __crubit_thunk_option_uincrements(unsigned char*,
unsigned char* __ret_ptr);
}
inline std::optional<std::int32_t> option_increments(
std::optional<std::int32_t> x) {
unsigned char x_buffer
[::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
::crubit::internal::Encode<
::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>>(x_buffer, x);
unsigned char __return_value_storage
[::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
__crubit_internal::__crubit_thunk_option_uincrements(x_buffer,
__return_value_storage);
return ::crubit::internal::Decode<
::crubit::OptionAbi<::crubit::TransmuteAbi<std::int32_t>>>(
__return_value_storage);
}
namespace __crubit_internal {
extern "C" void __crubit_thunk_make_umy_uoption_urust(unsigned char* __ret_ptr);
}
inline std::optional<std::int32_t> make_my_option_rust() {
unsigned char __return_value_storage
[crubit::OptionalAbi<::crubit::TransmuteAbi<std::int32_t>>::kSize];
__crubit_internal::__crubit_thunk_make_umy_uoption_urust(
__return_value_storage);
return ::crubit::internal::Decode<
crubit::OptionalAbi<::crubit::TransmuteAbi<std::int32_t>>>(
__return_value_storage);
}
namespace __crubit_internal {
extern "C" void __crubit_thunk_maybe_uint_uslice(unsigned char* __ret_ptr);
}
inline std::optional<rs_std::SliceRef<const std::int32_t>> maybe_int_slice() {
unsigned char __return_value_storage[::crubit::OptionAbi<
::crubit::TransmuteAbi<::rs_std::SliceRef<const std::int32_t>>>::kSize];
__crubit_internal::__crubit_thunk_maybe_uint_uslice(__return_value_storage);
return ::crubit::internal::Decode<::crubit::OptionAbi<
::crubit::TransmuteAbi<::rs_std::SliceRef<const std::int32_t>>>>(
__return_value_storage);
}
} // namespace composable_bridging_rust
#endif // THIRD_PARTY_CRUBIT_CC_BINDINGS_FROM_RS_TEST_GOLDEN_COMPOSABLE_BRIDGING_RUST_GOLDEN