| // 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 | |
| pub union ReprRustUnion { | |
| a: i32, | |
| b: f64, | |
| } | |
| impl Default for ReprRustUnion { | |
| fn default() -> Self { | |
| ReprRustUnion { a: 0 } | |
| } | |
| } | |
| // Because repr(Rust) unions do not have their fields exposed natively in C++, | |
| // (and because ReprRustUnion's fields are all private), | |
| // we need to provide accessor methods or functions for each field. | |
| impl ReprRustUnion { | |
| pub fn set_a(&mut self, a: i32) { | |
| self.a = a; | |
| } | |
| pub fn set_b(&mut self, b: f64) { | |
| self.b = b; | |
| } | |
| } |