suweal/node

Types

pub type Node {
  DefineTable(
    name: String,
    schema: SchemaType,
    type_: TableType,
    permissions: List(Permission),
    as_: option.Option(Node),
  )
  DefineField(
    name: Node,
    table: String,
    type_: surreal_type.SurrealType,
    flexible: Bool,
    default: option.Option(Node),
    assert_: option.Option(Node),
    permissions: List(Permission),
  )
  DefineIndex(
    name: String,
    table: String,
    fields: List(String),
    unique: Bool,
  )
  FunctionCall(
    lhs: option.Option(String),
    rhs: String,
    arguments: List(Node),
  )
  Self
  None
  All
  Number(Float)
  Parameter(String)
  Identifier(String)
  Value(surreal_ql.SurrealQL)
  Object(List(#(String, Node)))
  Array(List(Node))
  Select(
    fields: List(SelectField),
    only: Bool,
    table: String,
    where: option.Option(Node),
    order: option.Option(List(#(Node, OrderDirection))),
    limit: option.Option(Node),
    group_all: Bool,
  )
  If(
    condition: Node,
    then_: Node,
    else_ifs: List(#(Node, Node)),
    else_: Node,
  )
  BinaryOperator(lhs: Node, operator: Operator, rhs: Node)
  WrappedNode(node: Node)
  Update(
    target: String,
    set: List(Node),
    where: option.Option(Node),
  )
  Create(only: Bool, target: String, set: List(Node))
  Relate(table: String, from: Node, to: Node, set: List(Node))
  Lambda(parameters: List(String), body: Node)
  Delete(target: Node, where: option.Option(Node))
}

Constructors

  • DefineTable(
      name: String,
      schema: SchemaType,
      type_: TableType,
      permissions: List(Permission),
      as_: option.Option(Node),
    )

    https://surrealdb.com/docs/reference/query-language/statements/define/table

  • DefineField(
      name: Node,
      table: String,
      type_: surreal_type.SurrealType,
      flexible: Bool,
      default: option.Option(Node),
      assert_: option.Option(Node),
      permissions: List(Permission),
    )

    https://surrealdb.com/docs/reference/query-language/statements/define/field

  • DefineIndex(
      name: String,
      table: String,
      fields: List(String),
      unique: Bool,
    )

    https://surrealdb.com/docs/reference/query-language/statements/define/indexes

  • FunctionCall(
      lhs: option.Option(String),
      rhs: String,
      arguments: List(Node),
    )
  • Self

    https://surrealdb.com/docs/learn/data-models/graph/recursive-traversals

  • None

    https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/none-and-null

  • All

    https://surrealdb.com/docs/learn/data-models/graph/graph-traversal

  • Number(Float)

    https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/numbers Different from Value(surreal_ql.Float | surreal_ql.Int) as it can be coerced to both types.

  • Parameter(String)

    https://surrealdb.com/docs/reference/query-language/language-primitives/parameters

  • Identifier(String)

    Raw Identifier

  • https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/values

  • Object(List(#(String, Node)))

    https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/objects

  • Array(List(Node))

    https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/arrays

  • Select(
      fields: List(SelectField),
      only: Bool,
      table: String,
      where: option.Option(Node),
      order: option.Option(List(#(Node, OrderDirection))),
      limit: option.Option(Node),
      group_all: Bool,
    )

    https://surrealdb.com/docs/reference/query-language/statements/select

  • If(
      condition: Node,
      then_: Node,
      else_ifs: List(#(Node, Node)),
      else_: Node,
    )

    https://surrealdb.com/docs/reference/query-language/statements/if-else

  • BinaryOperator(lhs: Node, operator: Operator, rhs: Node)

    https://surrealdb.com/docs/reference/query-language/language-primitives/operators

  • WrappedNode(node: Node)

    Node wrapped in ()

  • Update(
      target: String,
      set: List(Node),
      where: option.Option(Node),
    )

    https://surrealdb.com/docs/reference/query-language/statements/update

  • Create(only: Bool, target: String, set: List(Node))

    https://surrealdb.com/docs/reference/query-language/statements/create

  • Relate(table: String, from: Node, to: Node, set: List(Node))

    https://surrealdb.com/docs/reference/query-language/statements/relate

  • Lambda(parameters: List(String), body: Node)

    https://surrealdb.com/docs/reference/query-language/language-primitives/data-types/closures

  • Delete(target: Node, where: option.Option(Node))

    https://surrealdb.com/docs/reference/query-language/statements/delete

pub type OperationType {
  OperationCreate
  OperationSelect
  OperationUpdate
  OperationDelete
}

Constructors

  • OperationCreate
  • OperationSelect
  • OperationUpdate
  • OperationDelete
pub type Operator {
  Equal
  NotEqual
  GreaterThan
  LessThan
  GreaterThanOrEqual
  LessThanOrEqual
  Access
  Inside
  RelationTo
  RelationFrom
  RelationToFrom
  Indexing
  And
  Or
}

Constructors

  • Equal
  • NotEqual
  • GreaterThan
  • LessThan
  • GreaterThanOrEqual
  • LessThanOrEqual
  • Access
  • Inside
  • RelationTo
  • RelationFrom
  • RelationToFrom
  • Indexing
  • And
  • Or
pub type OrderDirection {
  Ascending
  Descending
}

Constructors

  • Ascending
  • Descending
pub type Permission {
  PermissionFull
  PermissionNone
  PermissionForFull(targets: List(OperationType))
  PermissionForNone(targets: List(OperationType))
  PermissionForWhere(
    targets: List(OperationType),
    expression: Node,
  )
}

Constructors

The type of schema of a table in SurrealDB.

pub type SchemaType {
  Schemafull
  Schemaless
}

Constructors

  • Schemafull
  • Schemaless

Represents a field in a SELECT statement in SurrealQL.

pub type SelectField {
  SelectField(
    field: Node,
    alias: option.Option(String),
    value: Bool,
  )
}

Constructors

pub type TableType {
  NormalTable
  RelationTable(in: String, out: String)
}

Constructors

  • NormalTable
  • RelationTable(in: String, out: String)

Values

pub fn operation_type_to_module(
  operation_type: OperationType,
) -> module.Module
pub fn operation_type_to_string(
  operation_type: OperationType,
) -> String
pub fn operator_to_module(operator: Operator) -> module.Module

Converts an [Operator] into a module for code generation.

pub fn operator_to_string(operator: Operator) -> String

Converts an [Operator] into its [String] representation in SurrealQL.

pub fn order_direction_to_module(
  direction: OrderDirection,
) -> module.Module

Converts an [OrderDirection] into a module for code generation.

pub fn order_direction_to_string(
  direction: OrderDirection,
) -> String

Converts an [OrderDirection] into its [String] representation in SurrealQL.

pub fn permission_to_module(
  permission: Permission,
) -> module.Module
pub fn permission_to_string(permission: Permission) -> String
pub fn replace_variables(
  node: Node,
  values: List(#(String, surreal_ql.SurrealQL)),
) -> Node
pub fn schema_type_to_module(
  schema_type: SchemaType,
) -> module.Module

Converts a [SchemaType] into a module for code generation.

pub fn schema_type_to_string(schema_type: SchemaType) -> String

Converts a [SchemaType] into its [String] representation in SurrealQL.

pub fn table_type_to_module(
  table_type: TableType,
) -> module.Module
pub fn table_type_to_string(table_type: TableType) -> String
pub fn to_module(node: Node) -> module.Module
pub fn to_string(node: Node) -> String
✨ Search Document