pub trait NodeBuilder<T: Display = Self>: Display {
    fn with(&mut self, relation_or_node: &str) -> &mut String;
    fn if_then(
        &mut self,
        condition: bool,
        action: fn(_: &mut Self) -> &mut Self
    ) -> &mut String; fn as_named_label(&self, label_name: &str) -> String { ... } }

Required Methods

Draws the start of a relation ->node

Example
use surreal_simple_querybuilder::prelude::*;

let s = "user".with("project");

assert_eq!("user->project", s);

Allows you to pass a lambda that should mutate the current string when the passed condition is true. If condition is false then the action lambda is ignored and the string stays intact.

Example
use surreal_simple_querybuilder::prelude::*;

// demonstrate how the given closure is ignored if the condition is `false`
let mut label = "John".as_named_label("User");
let intact = &mut label
  .if_then(false, |s| s.with("LOVES").with("User"))
  .with("FRIEND")
  .with("User");

assert_eq!("User:John->FRIEND->User", *intact);

// demonstrate how the given closure is executed if the condition is `true`
let mut label = "John".as_named_label("User");
let modified = &mut label
  .if_then(true, |s| s.with("LOVES").with("User"))
  .with("FRIEND")
  .with("User");

assert_eq!("User:John->LOVES->User->FRIEND->User", *modified);

Provided Methods

Take the current string and add in front of it the given label name as to make a string of the following format LabelName:CurrentString

Example
use surreal_simple_querybuilder::prelude::*;

let label = "John".as_named_label("Account");

assert_eq!(label, "Account:John");

Implementations on Foreign Types

Implementors