Skip to main content

extract_definitions

Function extract_definitions 

Source
pub fn extract_definitions(input: &str) -> Result<SchemaDefinitions>
Expand description

Extract all DEFINE statements from a SurrealQL string.

Useful for schema analysis, migration tools, and validation.

ยงExample

let defs = surql_parser::extract_definitions("
    DEFINE TABLE user SCHEMAFULL;
    DEFINE FIELD name ON user TYPE string;
    DEFINE FIELD age ON user TYPE int DEFAULT 0;
    DEFINE INDEX email_idx ON user FIELDS email UNIQUE;
    DEFINE FUNCTION fn::greet($name: string) { RETURN 'Hello, ' + $name; };
").unwrap();

assert_eq!(defs.tables.len(), 1);
assert_eq!(defs.fields.len(), 2);
assert_eq!(defs.indexes.len(), 1);
assert_eq!(defs.functions.len(), 1);