scaly 0.0.37

Library for the Scaly programming language
Documentation
use containers::{Array, Ref, String};
use memory::page::Page;

#[derive(Copy, Clone)]
pub struct StringBuilder {
    buffer: Array<u8>,
}

impl StringBuilder {
    pub fn new(_rp: *mut Page) -> Ref<StringBuilder> {
        Ref::new(
            _rp,
            StringBuilder {
                buffer: Array::new(),
            },
        )
    }

    pub fn from_character(_rp: *mut Page, character: char) -> Ref<StringBuilder> {
        let mut string_builder = StringBuilder::new(_rp);
        string_builder.append_character(character);
        string_builder
    }

    pub fn append_character(&mut self, character: char) {
        self.buffer.add(character as u8);
    }

    pub fn get_length(&self) -> usize {
        return self.buffer.get_length();
    }

    pub fn to_string(&self, _rp: *mut Page) -> String {
        String::create(_rp, self.buffer.get_buffer(), self.buffer.get_length())
    }
}