Skip to content

Engine Execution API's

This section discusses about all the configuration execution API's in NbclEngine, what each does, and how to use it.

NbclEngine::new

rust
pub fn new() -> NbclEngine;

Creates a new Nbcl Engine.

Example:

rust
use crate::NbclEngine;

let engine = NbclEngine::new();

NbclEngine.parse

rust
pub fn parse(&self, file_path: PathBuf) -> Result<File>;

Parse the contents of a file into source AST.

Example:

rust
use std::path::PathBuf;
use crate::NbclEngine;

let engine = NbclEngine::new();
let source_ast = engine.parse(PathBuf::from("./example.nbl")).unwrap();

NbclEngine.parse_str

rust
pub fn parse_str(&self, source: &str) -> Result<File>;

Parse a source into source AST.

Example:

rust
use crate::NbclEngine;

let engine = NbclEngine::new();
let source = "print('Hello, World')";
let source_ast = engine.parse_str(&source).unwrap();

NbclEngine.evaluate_ast

rust
pub fn evaluate_ast(&self, file: File) -> Result<ResolvedTree>;

Evaluates a source ast, produce side-effects, and return resolved configuration.

Example:

rust
use crate::NbclEngine;

let engine = NbclEngine::new();
let source = "print('Hello, World')";
let source_ast = engine.parse_str(&source).unwrap();
let res_config = engine.evaluate_ast(source_ast).unwrap();

NbclEngine.evaluate

rust
pub fn evaluate(&self, source: &str)  -> Result<ResolvedTree>;

Parse and evaluate a source string, produce side-effects, and return resolved configuration.

Example:

rust
use crate::NbclEngine;

let engine = NbclEngine::new();
let source = "print('Hello, World')";
let res_config = engine.evaluate(source).unwrap();