Note: This document covers API impact only. For more details, see the ABI compatibility page
- | init | step 1 | step 2 | step 3 |
---|---|---|---|---|
fidl | link | link | ||
dart | link | link | ||
go | link | link | ||
hlcpp | link | link | ||
llcpp | link | link | ||
rust | link | link | link |
type Color = flexible enum : int32 { RED = 1; BLUE = 2; };
fidllib.Color complement(fidllib.Color color) { if (color.isUnknown()) { return color; } switch (color) { case fidllib.Color.blue: return fidllib.Color.red; case fidllib.Color.red: return fidllib.Color.blue; default: return null; } }
func complement(color lib.Color) lib.Color {
if color.IsUnknown() {
return color
}
switch color {
case lib.ColorBlue:
return lib.ColorRed
case lib.ColorRed:
return lib.ColorBlue
default:
return color
}
}
fidl_test::Color complement(fidl_test::Color color) { if (color.IsUnknown()) { return color; } switch (color) { case fidl_test::Color::RED: return fidl_test::Color::BLUE; case fidl_test::Color::BLUE: return fidl_test::Color::RED; default: return color; } }
fidl_test::wire::Color complement(fidl_test::wire::Color color) { if (color.IsUnknown()) { return color; } switch (color) { case fidl_test::wire::Color::kRed: return fidl_test::wire::Color::kBlue; case fidl_test::wire::Color::kBlue: return fidl_test::wire::Color::kRed; default: return color; } }
fn complement(color: &fidl_lib::Color) -> Option<fidl_lib::Color> { match color.validate() { Ok(fidl_lib::Color::Red) => Some(fidl_lib::Color::Blue), Ok(fidl_lib::Color::Blue) => Some(fidl_lib::Color::Red), _ => None, } }
fidllib.Color complement(fidllib.Color color) { - if (color.isUnknown()) { - return color; - } + assert(color.isUnknown() == false); switch (color) { case fidllib.Color.blue: return fidllib.Color.red; case fidllib.Color.red: return fidllib.Color.blue; default: return null; } }
func complement(color lib.Color) lib.Color { - if color.IsUnknown() { - return color - } switch color { case lib.ColorBlue: return lib.ColorRed case lib.ColorRed: return lib.ColorBlue default: return color } }
fidl_test::Color complement(fidl_test::Color color) { - if (color.IsUnknown()) { - return color; - } switch (color) { case fidl_test::Color::RED: return fidl_test::Color::BLUE; case fidl_test::Color::BLUE: return fidl_test::Color::RED; default: return color; } }
fidl_test::wire::Color complement(fidl_test::wire::Color color) { - if (color.IsUnknown()) { - return color; - } switch (color) { case fidl_test::wire::Color::kRed: return fidl_test::wire::Color::kBlue; case fidl_test::wire::Color::kBlue: return fidl_test::wire::Color::kRed; default: return color; } }
match
statements on the enum.fn complement(color: &fidl_lib::Color) -> Option<fidl_lib::Color> { - match color.validate() { - Ok(fidl_lib::Color::Red) => Some(fidl_lib::Color::Blue), - Ok(fidl_lib::Color::Blue) => Some(fidl_lib::Color::Red), + #[allow(unreachable_patterns)] + match color { + fidl_lib::Color::Red => Some(fidl_lib::Color::Blue), + fidl_lib::Color::Blue => Some(fidl_lib::Color::Red), _ => None, } }
flexible
to strict
- type Color = flexible enum : int32 { + type Color = strict enum : int32 { RED = 1; BLUE = 2; };
- fn complement(color: &fidl_lib::Color) -> Option<fidl_lib::Color> { - #[allow(unreachable_patterns)] + fn complement(color: &fidl_lib::Color) -> fidl_lib::Color { match color { - fidl_lib::Color::Red => Some(fidl_lib::Color::Blue), - fidl_lib::Color::Blue => Some(fidl_lib::Color::Red), - _ => None, + fidl_lib::Color::Red => fidl_lib::Color::Blue, + fidl_lib::Color::Blue => fidl_lib::Color::Red, } }