pgx_sql_entity_graph/metadata/
phantomdata_ext.rs1use core::marker::PhantomData;
10
11use super::return_variant::ReturnsError;
12use super::{ArgumentError, FunctionMetadataTypeEntity, Returns, SqlMapping, SqlTranslatable};
13
14pub trait PhantomDataExt {
20 fn type_name(&self) -> &'static str;
21 fn argument_sql(&self) -> Result<SqlMapping, ArgumentError>;
22 fn return_sql(&self) -> Result<Returns, ReturnsError>;
23 fn variadic(&self) -> bool;
24 fn optional(&self) -> bool;
25 fn entity(&self) -> FunctionMetadataTypeEntity;
26}
27
28impl<T> PhantomDataExt for PhantomData<T>
29where
30 T: SqlTranslatable,
31{
32 fn type_name(&self) -> &'static str {
33 T::type_name()
34 }
35 fn argument_sql(&self) -> Result<SqlMapping, ArgumentError> {
36 T::argument_sql()
37 }
38 fn return_sql(&self) -> Result<Returns, ReturnsError> {
39 T::return_sql()
40 }
41 fn variadic(&self) -> bool {
42 T::variadic()
43 }
44 fn optional(&self) -> bool {
45 T::optional()
46 }
47 fn entity(&self) -> FunctionMetadataTypeEntity {
48 T::entity()
49 }
50}