Struct rustml::octave::OctaveScriptBuilder [] [src]

pub struct OctaveScriptBuilder {
    // some fields omitted
}

Methods

impl OctaveScriptBuilder

fn add(&self, s: &str) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended.

fn add_columns<T: Display + Copy>(&self, s: &str, m: &Matrix<T>) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended.

If the string contains a dollar sign followed by a number i (e.g. $1 or $12) this placeholder will be replaced by the column if matrix m at column i-1 (i.e. $1 is replaced by the first column of m).

Example

use rustml::octave::*;
use rustml::matrix::Matrix;

let m = mat![
    1, 2, 3;
    4, 5, 6
];
let s = builder().add_columns("x = $1; y = $2", &m);
assert_eq!(
    s.to_string(),
    "1;\nx = [1,4]; y = [2,5];\n"
);

fn add_vector<T: Display>(&self, s: &str, vals: &[T]) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended. If the string contains two consecutive dollar signs (i.e. $$) these will be replaced by a vector containing the elements of vals.

Example

use rustml::octave::*;

let s = builder().add_vector("x = $$", &[1, 2, 3]);
assert_eq!(
    s.to_string(),
    "1;\nx = [1,2,3];\n"
);

fn add_vector_iter<T: Display, I: Iterator<Item=T>>(&self, s: &str, vals: I) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended. If the string contains two consecutive dollar signs (i.e. $$) these will be replaced by a vector containing the elements of iterator vals.

Example

use rustml::octave::*;

let v = vec![1, 2, 3];
let s = builder().add_vector_iter("x = $$", v.iter());
assert_eq!(
    s.to_string(),
    "1;\nx = [1,2,3];\n"
);

fn add_matrix<T: Display + Clone>(&self, t: &str, m: &Matrix<T>) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended. If the string contains two consecutive dollar signs (i.e. $$) these will be replaced by the matrix m.

Example

use rustml::octave::*;
use rustml::*;

let m = mat![1, 2, 3; 4, 5, 6];
let s = builder().add_matrix("x = $$", &m);
assert_eq!(
    s.to_string(),
    "1;\nx = [1,2,3;4,5,6];\n"
);

fn add_values<T: Display>(&self, s: &str, vals: &[T]) -> OctaveScriptBuilder

Adds the string to the Octave script.

At the end of the line a semicolon is appended.

If the string contains a dollar sign followed by a number i (e.g. $1 or $12) this placeholder will be replaced by the value that is stored in the vector vals at index i-1.

Example

use rustml::octave::*;

let s = builder().add_values("x = $1 + $2", &[5, 3]);
assert_eq!(
    s.to_string(),
    "1;\nx = 5 + 3;\n"
);

fn octave_bin(&self, path: &str) -> OctaveScriptBuilder

fn to_string(&self) -> String

fn write(&self, filename: &str) -> Result<()>

fn run(&self, filename: &str) -> Result<Output>