Skip to main content

Input

Trait Input 

Source
pub trait Input {
    // Required method
    fn reflectapi_input_type(schema: &mut Typespace) -> TypeReference;
}
Expand description

A trait for types that can be used as an input in an API.

Implementing this trait allows a type to be introspected and its structure added to a Typespace schema. This is essential for automatically generating API documentation, client-side code, and validation rules for function arguments and request bodies.

§Derive Macro

In most cases, you should not implement this trait manually. Instead, use the #[derive(Input)] macro provided by reflectapi to automatically generate a correct and efficient implementation.


#[derive(Input, Output)]
struct User {
    id: u64,
    username: String,
    password_hash: String,
}

Required Methods§

Source

fn reflectapi_input_type(schema: &mut Typespace) -> TypeReference

Recursively adds the type definition to the schema and returns a reference to it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Input for Infallible

Source§

impl Input for bool

Source§

impl Input for char

Source§

impl Input for f32

Source§

impl Input for f64

Source§

impl Input for i8

Source§

impl Input for i16

Source§

impl Input for i32

Source§

impl Input for i64

Source§

impl Input for i128

Source§

impl Input for isize

Source§

impl Input for u8

Source§

impl Input for u16

Source§

impl Input for u32

Source§

impl Input for u64

Source§

impl Input for u128

Source§

impl Input for ()

Source§

impl Input for usize

Source§

impl Input for String

Source§

impl Input for Duration

Source§

impl Input for Path

Source§

impl Input for PathBuf

Source§

impl Input for NonZeroU8

Source§

impl Input for NonZeroU16

Source§

impl Input for NonZeroU32

Source§

impl Input for NonZeroU64

Source§

impl Input for NonZeroU128

Source§

impl<'a, T: Input> Input for Ref<'a, T>

Source§

impl<'a, T: Input> Input for RefMut<'a, T>

Source§

impl<'a, T: Input> Input for MutexGuard<'a, T>

Source§

impl<'a, T: Input> Input for RwLockReadGuard<'a, T>

Source§

impl<'a, T: Input> Input for RwLockWriteGuard<'a, T>

Source§

impl<A: Input> Input for (A,)

Source§

impl<A: Input, B: Input> Input for (A, B)

Source§

impl<A: Input, B: Input, C: Input> Input for (A, B, C)

Source§

impl<A: Input, B: Input, C: Input, D: Input> Input for (A, B, C, D)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input> Input for (A, B, C, D, E)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input> Input for (A, B, C, D, E, F)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input> Input for (A, B, C, D, E, F, G)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input, H: Input> Input for (A, B, C, D, E, F, G, H)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input, H: Input, I: Input> Input for (A, B, C, D, E, F, G, H, I)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input, H: Input, I: Input, J: Input> Input for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input, H: Input, I: Input, J: Input, K: Input> Input for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A: Input, B: Input, C: Input, D: Input, E: Input, F: Input, G: Input, H: Input, I: Input, J: Input, K: Input, L: Input> Input for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<K: Input, V: Input> Input for BTreeMap<K, V>

Source§

impl<K: Input, V: Input> Input for HashMap<K, V>

Source§

impl<T: Input + Clone> Input for Cow<'_, T>

Source§

impl<T: Input> Input for Option<T>

Source§

impl<T: Input> Input for *const T

Source§

impl<T: Input> Input for *mut T

Source§

impl<T: Input> Input for Box<T>

Source§

impl<T: Input> Input for Rc<T>

Source§

impl<T: Input> Input for Arc<T>

Source§

impl<T: Input> Input for Weak<T>

Source§

impl<T: Input> Input for Vec<T>

Source§

impl<T: Input> Input for Cell<T>

Source§

impl<T: Input> Input for RefCell<T>

Source§

impl<T: Input> Input for PhantomData<T>

Source§

impl<T: Input> Input for Mutex<T>

Source§

impl<T: Input> Input for RwLock<T>

Source§

impl<T: Input, const N: usize> Input for [T; N]

Source§

impl<V: Input> Input for BTreeSet<V>

Source§

impl<V: Input> Input for HashSet<V>

Implementors§

Source§

impl Input for reflectapi::Infallible

Source§

impl Input for Empty

Source§

impl<T: Input> Input for reflectapi::Option<T>