blob: fe7e575f3f1542c1d5f2a72a9c1c71bf36deddd0 [file] [log] [blame] [view]
<!-- WARNING: This file is machine generated by //src/tests/fidl/source_compatibility/gen, do not edit. -->
Note: This document covers API impact only. For more details, see the
[ABI compatibility page](/docs/development/languages/fidl/guides/compatibility/README.md)
# Remove a bits member
## Overview
-|[init](#init)|[step 1](#step-1)|[step 2](#step-2)
---|---|---|---
fidl|[link](#fidl-init)||[link](#fidl-2)
dart|[link](#dart-init)|[link](#dart-1)|
go|[link](#go-init)|[link](#go-1)|
hlcpp|[link](#hlcpp-init)|[link](#hlcpp-1)|
llcpp|[link](#llcpp-init)|[link](#llcpp-1)|
rust|[link](#rust-init)|[link](#rust-1)|
## Initial State {#init}
### FIDL {#fidl-init}
```fidl
flexible bits Flags {
OPTION_A = 1;
OPTION_B = 2;
OPTION_C = 4;
};
```
### Dart {#dart-init}
```dart
void useBits(fidllib.Flags bits) {
if ((bits & fidllib.Flags.optionA).$value != 0) {
print('option A is set');
}
if ((bits & fidllib.Flags.optionB).$value != 0) {
print('option B is set');
}
if ((bits & fidllib.Flags.optionC).$value != 0) {
print('option C is set');
}
if (bits.hasUnknownBits()) {
print('unknown options: ${bits.getUnknownBits()}');
}
}
```
### Go {#go-init}
```go
func useBits(bits lib.Flags) {
if bits.HasBits(lib.FlagsOptionA) {
fmt.Println("option C is set")
}
if bits.HasBits(lib.FlagsOptionB) {
fmt.Println("option C is set")
}
if bits.HasBits(lib.FlagsOptionC) {
fmt.Println("option C is set")
}
if bits.HasUnknownBits() {
fmt.Printf("unknown options: 0x%x", bits.GetUnknownBits())
}
}
```
### HLCPP {#hlcpp-init}
```cpp
void use_member(fidl_test::Flags bits) {
if (bits & fidl_test::Flags::OPTION_A) {
printf("option A is set\n");
}
if (bits & fidl_test::Flags::OPTION_B) {
printf("option B is set\n");
}
if (bits & fidl_test::Flags::OPTION_C) {
printf("option C is set\n");
}
if (bits.has_unknown_bits()) {
printf("unknown options: 0x%04x", uint32_t(bits.unknown_bits()));
}
}
```
### LLCPP {#llcpp-init}
```cpp
void use_member(fidl_test::Flags bits) {
if (bits & fidl_test::Flags::OPTION_A) {
printf("option A is set\n");
}
if (bits & fidl_test::Flags::OPTION_B) {
printf("option B is set\n");
}
if (bits & fidl_test::Flags::OPTION_C) {
printf("option C is set\n");
}
if (bits.has_unknown_bits()) {
printf("unknown options: 0x%04x", uint32_t(bits.unknown_bits()));
}
}
```
### Rust {#rust-init}
```rust
fn use_bits(bits: &fidl_lib::Flags) {
if bits.contains(fidl_lib::Flags::OptionA) {
println!("option A is set");
}
if bits.contains(fidl_lib::Flags::OptionB) {
println!("option B is set");
}
if bits.contains(fidl_lib::Flags::OptionC) {
println!("option C is set");
}
if bits.has_unknown_bits() {
println!("unknown options: {:x}", bits.get_unknown_bits());
}
}
```
## Update Source Code {#step-1}
### Dart {#dart-1}
- Remove references to the soon-to-be-removed member
```diff
void useBits(fidllib.Flags bits) {
if ((bits & fidllib.Flags.optionA).$value != 0) {
print('option A is set');
}
if ((bits & fidllib.Flags.optionB).$value != 0) {
print('option B is set');
}
- if ((bits & fidllib.Flags.optionC).$value != 0) {
- print('option C is set');
- }
if (bits.hasUnknownBits()) {
print('unknown options: ${bits.getUnknownBits()}');
}
}
```
### Go {#go-1}
- Remove references to the soon-to-be-removed member
```diff
func useBits(bits lib.Flags) {
if bits.HasBits(lib.FlagsOptionA) {
fmt.Println("option C is set")
}
if bits.HasBits(lib.FlagsOptionB) {
fmt.Println("option C is set")
}
- if bits.HasBits(lib.FlagsOptionC) {
- fmt.Println("option C is set")
- }
if bits.HasUnknownBits() {
fmt.Printf("unknown options: 0x%x", bits.GetUnknownBits())
}
}
```
### HLCPP {#hlcpp-1}
- Remove references to the soon-to-be-removed member
```diff
void use_member(fidl_test::Flags bits) {
if (bits & fidl_test::Flags::OPTION_A) {
printf("option A is set\n");
}
if (bits & fidl_test::Flags::OPTION_B) {
printf("option B is set\n");
}
- if (bits & fidl_test::Flags::OPTION_C) {
- printf("option C is set\n");
- }
if (bits.has_unknown_bits()) {
printf("unknown options: 0x%04x", uint32_t(bits.unknown_bits()));
}
}
```
### LLCPP {#llcpp-1}
- Remove references to the soon-to-be-removed member
```diff
void use_member(fidl_test::Flags bits) {
if (bits & fidl_test::Flags::OPTION_A) {
printf("option A is set\n");
}
if (bits & fidl_test::Flags::OPTION_B) {
printf("option B is set\n");
}
- if (bits & fidl_test::Flags::OPTION_C) {
- printf("option C is set\n");
- }
if (bits.has_unknown_bits()) {
printf("unknown options: 0x%04x", uint32_t(bits.unknown_bits()));
}
}
```
### Rust {#rust-1}
- Remove references to the soon-to-be-removed member
```diff
fn use_bits(bits: &fidl_lib::Flags) {
if bits.contains(fidl_lib::Flags::OptionA) {
println!("option A is set");
}
if bits.contains(fidl_lib::Flags::OptionB) {
println!("option B is set");
}
- if bits.contains(fidl_lib::Flags::OptionC) {
- println!("option C is set");
- }
if bits.has_unknown_bits() {
println!("unknown options: {:x}", bits.get_unknown_bits());
}
}
```
## Update FIDL Library {#step-2}
- Remove the bits member
```diff
flexible bits Flags {
OPTION_A = 1;
OPTION_B = 2;
- OPTION_C = 4;
};
```