Enum edn::query::Binding
[−]
[src]
Variants
BindScalar(Variable)
BindColl(Variable)
BindRel(Vec<VariableOrPlaceholder>)
BindTuple(Vec<VariableOrPlaceholder>)
Methods
impl Binding
[src]
[−]
impl Binding
pub fn variables(&self) -> Vec<Option<Variable>>
[src]
[−]
pub fn variables(&self) -> Vec<Option<Variable>>
Return each variable or None
, in order.
pub fn is_empty(&self) -> bool
[src]
[−]
pub fn is_empty(&self) -> bool
Return true
if no variables are bound, i.e., all binding entries are placeholders.
pub fn is_valid(&self) -> bool
[src]
[−]
pub fn is_valid(&self) -> bool
Return true
if no variable is bound twice, i.e., each binding entry is either a
placeholder or unique.
use edn::query::{Binding,Variable,VariableOrPlaceholder}; use std::rc::Rc; let v = Variable::from_valid_name("?foo"); let vv = VariableOrPlaceholder::Variable(v); let p = VariableOrPlaceholder::Placeholder; let e = Binding::BindTuple(vec![p.clone()]); let b = Binding::BindTuple(vec![p.clone(), vv.clone()]); let d = Binding::BindTuple(vec![vv.clone(), p, vv]); assert!(b.is_valid()); // One var, one placeholder: OK. assert!(!e.is_valid()); // Empty: not OK. assert!(!d.is_valid()); // Duplicate var: not OK.
Trait Implementations
impl Clone for Binding
[src]
[+]
impl Clone for Binding
impl Debug for Binding
[src]
[+]
impl Debug for Binding
impl Eq for Binding
[src]
impl Eq for Binding
impl PartialEq for Binding
[src]
[+]
impl PartialEq for Binding
impl ContainsVariables for Binding
[src]
[+]
impl ContainsVariables for Binding