wit-bindgen-cli 0.57.1

CLI tool to generate bindings for WIT documents and the component model.
include!(env!("BINDINGS"));

use crate::exports::test::list_in_variant::to_test::*;

struct Component;

export!(Component);

impl exports::test::list_in_variant::to_test::Guest for Component {
    fn list_in_option(data: Option<Vec<String>>) -> String {
        match data {
            Some(list) => list.join(","),
            None => "none".to_string(),
        }
    }

    fn list_in_variant(data: PayloadOrEmpty) -> String {
        match data {
            PayloadOrEmpty::WithData(list) => list.join(","),
            PayloadOrEmpty::Empty => "empty".to_string(),
        }
    }

    fn list_in_result(data: Result<Vec<String>, String>) -> String {
        match data {
            Ok(list) => list.join(","),
            Err(e) => format!("err:{}", e),
        }
    }

    fn list_in_option_with_return(data: Option<Vec<String>>) -> Summary {
        match data {
            Some(list) => Summary {
                count: list.len() as u32,
                label: list.join(","),
            },
            None => Summary {
                count: 0,
                label: "none".to_string(),
            },
        }
    }

    fn top_level_list(items: Vec<String>) -> String {
        items.join(",")
    }
}