lambda-server

Crates.iolambda-server
lib.rslambda-server
version0.0.1
created_at2023-08-08 08:21:46.690942+00
updated_at2023-08-08 08:21:46.690942+00
descriptionExperimental lambda runtime
homepage
repositoryhttps://github.com/mirecl/lambda-server
max_upload_size
id938899
size3,163
Andrey Grazhdankov (mirecl)

documentation

README

PROPOSAL API (lambda_server)

use anyhow::Result;
use lambda_server::{Http, Context};
use serde::{Serialize, Deserialize};
use validator::{Validate, ValidationError};

#[derive(Deserialize, Debug, Validate)]
struct Request {
    #[validate(range(min = 1))]
    pub price: i32,
    #[validate(range(min = 1))]
    pub quantity: i32,
}

#[derive(Serialize, Debug)]
struct Response {
    pub amount: i32,
}

fn handler(ctx: Context, req: Request) -> Result<Response> {
    req.validate()?;

    let amount = req.price * req.quantity;
    Ok(Response{ amount })
}

#[tokio::main]
async fn main() -> Result<()> {
    Http::run(handler).await?;
    Ok(())
}
Commit count: 3

cargo fmt