teo_runtime/request/
extract.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::request::Request;
use crate::value::Value;

pub trait ExtractFromRequest<'a> {
    fn extract(request: &'a Request) -> Self;
}

impl<'a> ExtractFromRequest<'a> for &'a Value {
    fn extract(request: &'a Request) -> Self {
        request.body_value().unwrap()
    }
}

impl<'a> ExtractFromRequest<'a> for Value {
    fn extract(request: &'a Request) -> Self {
        request.body_value().map(|v| v.clone()).unwrap_or(Value::Null)
    }
}