Struct warpgrapher::engine::config::Relationship
source · [−]pub struct Relationship { /* private fields */ }
Expand description
Configuration item for a relationship on a GraphQL type
Examples
let r = Relationship::new(
"teams".to_string(),
true,
vec!["User".to_string()],
vec![],
EndpointsFilter::all(),
None
);
Implementations
sourceimpl Relationship
impl Relationship
sourcepub fn new(
name: String,
list: bool,
nodes: Vec<String>,
props: Vec<Property>,
endpoints: EndpointsFilter,
resolver: Option<String>
) -> Relationship
pub fn new(
name: String,
list: bool,
nodes: Vec<String>,
props: Vec<Property>,
endpoints: EndpointsFilter,
resolver: Option<String>
) -> Relationship
Creates a new Relationship struct.
Arguments
- a String for the name of the relationship
- a boolean that, if true, indicates that the property is a list, and if false, that the relationship is to a single node
- a list of possible destination node types for the relationship. A single element in the list indicates that this is a single-type relationship, whereas more than one element indicates a multi-type relationship.
- an
EndpointsFilter
struct indicating which of the standard operations (create, read, update, and delete) should be generated for this relationship - an optional string providing the name of a resolver, if the relationship is a dynamic relationship with a custom resolver
Examples
let r = Relationship::new("name".to_string(), false, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
sourcepub fn endpoints(&self) -> &EndpointsFilter
pub fn endpoints(&self) -> &EndpointsFilter
Returns the EndpointsFilter
struct that indicates which of the four basic Create, Read,
Update, and Delete (CRUD) operations Warpgrapher should auto-generate for this
relationship.
Examples
let r = Relationship::new("name".to_string(), false, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
assert_eq!(&EndpointsFilter::all(), r.endpoints());
sourcepub fn list(&self) -> bool
pub fn list(&self) -> bool
Returns true if the relationship is a list, indicating a one-to-many (or many-to-many) relationship. Returns false if the node can only have one relationship of this type.
Examples
let r = Relationship::new("name".to_string(), true, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
assert!(r.list());
sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
Returns the name of the relationship
Examples
let r = Relationship::new("RelName".to_string(), true, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
assert_eq!("RelName", r.name());
sourcepub fn nodes(&self) -> Iter<'_, String>
pub fn nodes(&self) -> Iter<'_, String>
Returns an iterator over the names of the Warpgrapher Type
definitions that are
possible destination nodes for this relationship.
Examples
let r = Relationship::new("RelName".to_string(), true, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
assert_eq!(1, r.nodes().count());
assert_eq!("User", r.nodes().next().expect("Expected an element"));
sourcepub fn props_as_slice(&self) -> &[Property]
pub fn props_as_slice(&self) -> &[Property]
sourcepub fn resolver(&self) -> Option<&String>
pub fn resolver(&self) -> Option<&String>
Returns an option for a string containing the name of a custom resolver, if this relationship is resolved by a custom resolver instead of an auto-generated read resolver.
Examples
let r = Relationship::new("RelName".to_string(), true, vec!["User".to_string()], vec![],
EndpointsFilter::all(), None);
assert!(r.resolver().is_none())
Trait Implementations
sourceimpl Clone for Relationship
impl Clone for Relationship
sourcefn clone(&self) -> Relationship
fn clone(&self) -> Relationship
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for Relationship
impl Debug for Relationship
sourceimpl<'de> Deserialize<'de> for Relationship
impl<'de> Deserialize<'de> for Relationship
sourcefn 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
sourceimpl Hash for Relationship
impl Hash for Relationship
sourceimpl Ord for Relationship
impl Ord for Relationship
sourceimpl PartialEq<Relationship> for Relationship
impl PartialEq<Relationship> for Relationship
sourcefn eq(&self, other: &Relationship) -> bool
fn eq(&self, other: &Relationship) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &Relationship) -> bool
fn ne(&self, other: &Relationship) -> bool
This method tests for !=
.
sourceimpl PartialOrd<Relationship> for Relationship
impl PartialOrd<Relationship> for Relationship
sourcefn partial_cmp(&self, other: &Relationship) -> Option<Ordering>
fn partial_cmp(&self, other: &Relationship) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for Relationship
impl Serialize for Relationship
impl Eq for Relationship
impl StructuralEq for Relationship
impl StructuralPartialEq for Relationship
Auto Trait Implementations
impl RefUnwindSafe for Relationship
impl Send for Relationship
impl Sync for Relationship
impl Unpin for Relationship
impl UnwindSafe for Relationship
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcepub fn equivalent(&self, key: &K) -> bool
pub fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more