lambda-server 0.0.1

Experimental lambda runtime
Documentation
  • Coverage
  • 0%
    0 out of 2 items documented0 out of 1 items with examples
  • Size
  • Source code size: 2.84 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 95.00 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • mirecl/lambda-server
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • mirecl

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(())
}