| extern crate serde_json; |
| |
| use serde_derive::{Deserialize, Serialize}; |
| use serde_json::{Error, Value}; |
| |
| #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] |
| struct Input { |
| #[serde(default = "stranger")] |
| name: String, |
| } |
| |
| #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] |
| struct Output { |
| greeting: String, |
| } |
| |
| fn stranger() -> String { |
| "stranger".to_string() |
| } |
| |
| pub fn main(args: Value) -> Result<Value, Error> { |
| let input: Input = serde_json::from_value(args)?; |
| let output = Output { |
| greeting: format!("Hello, {}", input.name), |
| }; |
| serde_json::to_value(output) |
| } |