pub struct InputObjectDefinition {
pub name: String,
pub fields: Vec<InputFieldDefinition>,
pub description: Option<String>,
pub metadata: Option<Value>,
}Expand description
A GraphQL input object type definition.
Input objects are used for complex query arguments like filters, ordering, and mutation inputs.
§Example
use fraiseql_core::schema::{InputObjectDefinition, InputFieldDefinition};
let user_filter = InputObjectDefinition {
name: "UserFilter".to_string(),
fields: vec![
InputFieldDefinition::new("name", "String"),
InputFieldDefinition::new("email", "String"),
InputFieldDefinition::new("active", "Boolean"),
],
description: Some("Filter criteria for users".to_string()),
metadata: None,
};Fields§
§name: StringInput object type name (e.g., “UserFilter”).
fields: Vec<InputFieldDefinition>Input fields.
description: Option<String>Description of the input type.
metadata: Option<Value>Optional metadata for specialized input types (e.g., SQL templates for rich filters). Used by the compiler and runtime for code generation and query execution.
Implementations§
Source§impl InputObjectDefinition
impl InputObjectDefinition
Sourcepub fn with_field(self, field: InputFieldDefinition) -> Self
pub fn with_field(self, field: InputFieldDefinition) -> Self
Add a field to this input object.
Sourcepub fn with_fields(self, fields: Vec<InputFieldDefinition>) -> Self
pub fn with_fields(self, fields: Vec<InputFieldDefinition>) -> Self
Add multiple fields to this input object.
Sourcepub fn with_description(self, description: impl Into<String>) -> Self
pub fn with_description(self, description: impl Into<String>) -> Self
Set description.
Sourcepub fn with_metadata(self, metadata: Value) -> Self
pub fn with_metadata(self, metadata: Value) -> Self
Set metadata (for specialized input types like rich filters).
Sourcepub fn find_field(&self, name: &str) -> Option<&InputFieldDefinition>
pub fn find_field(&self, name: &str) -> Option<&InputFieldDefinition>
Find a field by name.
Trait Implementations§
Source§impl Clone for InputObjectDefinition
impl Clone for InputObjectDefinition
Source§fn clone(&self) -> InputObjectDefinition
fn clone(&self) -> InputObjectDefinition
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InputObjectDefinition
impl Debug for InputObjectDefinition
Source§impl<'de> Deserialize<'de> for InputObjectDefinition
impl<'de> Deserialize<'de> for InputObjectDefinition
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for InputObjectDefinition
impl PartialEq for InputObjectDefinition
Source§impl Serialize for InputObjectDefinition
impl Serialize for InputObjectDefinition
impl StructuralPartialEq for InputObjectDefinition
Auto Trait Implementations§
impl Freeze for InputObjectDefinition
impl RefUnwindSafe for InputObjectDefinition
impl Send for InputObjectDefinition
impl Sync for InputObjectDefinition
impl Unpin for InputObjectDefinition
impl UnsafeUnpin for InputObjectDefinition
impl UnwindSafe for InputObjectDefinition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more