simbld_http/traits/
get_description_trait.rs1use crate::responses::ResponsesTypes;
2use crate::{
3 ResponsesClientCodes, ResponsesCrawlerCodes, ResponsesInformationalCodes,
4 ResponsesLocalApiCodes, ResponsesRedirectionCodes, ResponsesServerCodes, ResponsesServiceCodes,
5 ResponsesSuccessCodes,
6};
7
8pub trait GetDescription {
9 fn get_description_field(&self, field: &str) -> Option<&'static str>;
10}
11
12macro_rules! impl_get_description {
14 ($type_name:ty) => {
15 impl GetDescription for $type_name {
16 fn get_description_field(&self, field: &str) -> Option<&'static str> {
17 match field {
18 "Description" => Some(self.get_description()),
19 _ => None,
20 }
21 }
22 }
23 };
24}
25
26impl_get_description!(ResponsesTypes);
27impl_get_description!(ResponsesInformationalCodes);
28impl_get_description!(ResponsesSuccessCodes);
29impl_get_description!(ResponsesRedirectionCodes);
30impl_get_description!(ResponsesClientCodes);
31impl_get_description!(ResponsesServerCodes);
32impl_get_description!(ResponsesServiceCodes);
33impl_get_description!(ResponsesCrawlerCodes);
34impl_get_description!(ResponsesLocalApiCodes);