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 {
RED = 1;
BLUE = 2;
YELLOW = 3;
};
fidllib.Color writer(String s) {
if (s == 'red') {
return fidllib.Color.red;
} else if (s == 'blue') {
return fidllib.Color.blue;
} else if (s == 'yellow') {
return fidllib.Color.yellow;
} else {
return fidllib.Color.$unknown;
}
}
String reader(fidllib.Color color) {
switch (color) {
case fidllib.Color.blue:
return 'blue';
case fidllib.Color.red:
return 'red';
case fidllib.Color.yellow:
return 'yellow';
default:
return '<unknown>';
}
}
func writer(s string) lib.Color {
switch s {
case "blue":
return lib.ColorBlue
case "red":
return lib.ColorRed
case "yellow":
return lib.ColorYellow
default:
return lib.Color_Unknown
}
}
func reader(color lib.Color) string {
switch color {
case lib.ColorBlue:
return "blue"
case lib.ColorRed:
return "red"
case lib.ColorYellow:
return "yellow"
default:
return "<unknown>"
}
}
fidl_test::Color writer(std::string s) {
if (s == "red") {
return fidl_test::Color::RED;
} else if (s == "blue") {
return fidl_test::Color::BLUE;
} else if (s == "yellow") {
return fidl_test::Color::YELLOW;
} else {
return fidl_test::Color::Unknown();
}
}
std::string reader(fidl_test::Color color) {
switch (color) {
case fidl_test::Color::RED:
return "red";
case fidl_test::Color::BLUE:
return "blue";
case fidl_test::Color::YELLOW:
return "yellow";
default:
return "<unknown>";
}
}
fidl_test::wire::Color writer(std::string s) {
if (s == "red") {
return fidl_test::wire::Color::kRed;
} else if (s == "blue") {
return fidl_test::wire::Color::kBlue;
} else if (s == "yellow") {
return fidl_test::wire::Color::kYellow;
} else {
return fidl_test::wire::Color::Unknown();
}
}
std::string reader(fidl_test::wire::Color color) {
switch (color) {
case fidl_test::wire::Color::kRed:
return "red";
case fidl_test::wire::Color::kBlue:
return "blue";
case fidl_test::wire::Color::kYellow:
return "yellow";
default:
return "<unknown>";
}
}
fn writer(s: &str) -> fidl_lib::Color {
match s {
"red" => fidl_lib::Color::Red,
"blue" => fidl_lib::Color::Blue,
"yellow" => fidl_lib::Color::Yellow,
_ => fidl_lib::Color::unknown(),
}
}
fn reader(color: fidl_lib::Color) -> &'static str {
match color {
fidl_lib::Color::Red => "red",
fidl_lib::Color::Blue => "blue",
fidl_lib::Color::Yellow => "yellow",
fidl_lib::ColorUnknown!() => "unknown",
}
}
- Remove all references to the soon-to-be-removed member.
fidllib.Color writer(String s) {
if (s == 'red') {
return fidllib.Color.red;
} else if (s == 'blue') {
return fidllib.Color.blue;
- } else if (s == 'yellow') {
- return fidllib.Color.yellow;
} else {
return fidllib.Color.$unknown;
}
}
String reader(fidllib.Color color) {
switch (color) {
case fidllib.Color.blue:
return 'blue';
case fidllib.Color.red:
return 'red';
- case fidllib.Color.yellow:
- return 'yellow';
default:
return '<unknown>';
}
}
- Remove all references to the soon-to-be-removed member.
func writer(s string) lib.Color {
switch s {
case "blue":
return lib.ColorBlue
case "red":
return lib.ColorRed
- case "yellow":
- return lib.ColorYellow
default:
return lib.Color_Unknown
}
}
func reader(color lib.Color) string {
switch color {
case lib.ColorBlue:
return "blue"
case lib.ColorRed:
return "red"
- case lib.ColorYellow:
- return "yellow"
default:
return "<unknown>"
}
}
- Remove all references to the soon-to-be-removed member.
fidl_test::Color writer(std::string s) {
if (s == "red") {
return fidl_test::Color::RED;
} else if (s == "blue") {
return fidl_test::Color::BLUE;
- } else if (s == "yellow") {
- return fidl_test::Color::YELLOW;
} else {
return fidl_test::Color::Unknown();
}
}
std::string reader(fidl_test::Color color) {
switch (color) {
case fidl_test::Color::RED:
return "red";
case fidl_test::Color::BLUE:
return "blue";
- case fidl_test::Color::YELLOW:
- return "yellow";
default:
return "<unknown>";
}
}
- Remove all references to the soon-to-be-removed member.
fidl_test::wire::Color writer(std::string s) {
if (s == "red") {
return fidl_test::wire::Color::kRed;
} else if (s == "blue") {
return fidl_test::wire::Color::kBlue;
- } else if (s == "yellow") {
- return fidl_test::wire::Color::kYellow;
} else {
return fidl_test::wire::Color::Unknown();
}
}
std::string reader(fidl_test::wire::Color color) {
switch (color) {
case fidl_test::wire::Color::kRed:
return "red";
case fidl_test::wire::Color::kBlue:
return "blue";
- case fidl_test::wire::Color::kYellow:
- return "yellow";
default:
return "<unknown>";
}
}
- Remove all references to the soon-to-be-removed member. For readers, the member should be temporarily handled as part of a catch-all case.
fn writer(s: &str) -> fidl_lib::Color {
match s {
"red" => fidl_lib::Color::Red,
"blue" => fidl_lib::Color::Blue,
- "yellow" => fidl_lib::Color::Yellow,
_ => fidl_lib::Color::unknown(),
}
}
fn reader(color: fidl_lib::Color) -> &'static str {
match color {
fidl_lib::Color::Red => "red",
fidl_lib::Color::Blue => "blue",
- fidl_lib::Color::Yellow => "yellow",
- fidl_lib::ColorUnknown!() => "unknown",
+ _ => "unknown",
}
}
- Remove the enum member
type Color = flexible enum {
RED = 1;
BLUE = 2;
- YELLOW = 3;
};
- Readers no longer need to handle the removed enum member in any switch statements.
fn writer(s: &str) -> fidl_lib::Color {
match s {
"red" => fidl_lib::Color::Red,
"blue" => fidl_lib::Color::Blue,
_ => fidl_lib::Color::unknown(),
}
}
fn reader(color: fidl_lib::Color) -> &'static str {
match color {
fidl_lib::Color::Red => "red",
fidl_lib::Color::Blue => "blue",
- _ => "unknown",
+ fidl_lib::ColorUnknown!() => "unknown",
}
}