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);