vector_config/
http.rs

1use http::StatusCode;
2use serde_json::Value;
3use std::cell::RefCell;
4
5use crate::{
6    schema::{generate_number_schema, SchemaGenerator, SchemaObject},
7    Configurable, GenerateError, Metadata, ToValue,
8};
9
10impl ToValue for StatusCode {
11    fn to_value(&self) -> Value {
12        serde_json::to_value(self.as_u16()).expect("Could not convert HTTP status code to JSON")
13    }
14}
15
16impl Configurable for StatusCode {
17    fn referenceable_name() -> Option<&'static str> {
18        Some("http::StatusCode")
19    }
20
21    fn is_optional() -> bool {
22        true
23    }
24
25    fn metadata() -> Metadata {
26        let mut metadata = Metadata::default();
27        metadata.set_description("HTTP response status code");
28        metadata.set_default_value(StatusCode::OK);
29        metadata
30    }
31
32    fn generate_schema(_: &RefCell<SchemaGenerator>) -> Result<SchemaObject, GenerateError> {
33        Ok(generate_number_schema::<u16>())
34    }
35}