surrealdb_core/api/
context.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use http::HeaderMap;

use crate::{
	err::Error,
	sql::{Bytesize, Duration},
};

use super::middleware::{invoke::InvokeMiddleware, CollectedMiddleware};

#[derive(Default, Debug)]
pub struct InvocationContext {
	pub request_body_max: Option<Bytesize>,
	pub request_body_raw: bool,
	pub response_body_raw: bool,
	pub response_headers: Option<HeaderMap>,
	pub timeout: Option<Duration>,
}

impl InvocationContext {
	pub fn apply_middleware<'a>(
		&'a mut self,
		middleware: CollectedMiddleware<'a>,
	) -> Result<(), Error> {
		for entry in middleware {
			entry.invoke(self)?;
		}

		Ok(())
	}
}