lib-ruby-parser-bindings 0.13.0

Tools to generate bindings for lib-ruby-parser
use crate::{options, NS as GLOBAL_NS};

fn ns() -> String {
    format!("{}__decoded_input", GLOBAL_NS)
}

pub fn decoded_input() -> String {
    format!(
        "
// DecodedInput
{decoded_input_blob} {fn_attributes} {ns}__new(
    {string_ptr_blob} name_blob,
    {source_line_list_blob} lines_blob,
    {byte_list_blob} bytes_blob);
void {fn_attributes} {ns}__drop({decoded_input_blob}* self_blob);
const {string_ptr_blob} *{fn_attributes} {ns}__get_name(const {decoded_input_blob} *self_blob);
const {source_line_list_blob} *{fn_attributes} {ns}__get_lines(const {decoded_input_blob} *self_blob);
const {byte_list_blob} *{fn_attributes} {ns}__get_bytes(const {decoded_input_blob} *self_blob);
void {fn_attributes} {ns}__set_name({decoded_input_blob} *self_blob, {string_ptr_blob} name_blob);
void {fn_attributes} {ns}__set_lines({decoded_input_blob} *self_blob, {source_line_list_blob} lines_blob);
void {fn_attributes} {ns}__set_bytes({decoded_input_blob} *self_blob, {byte_list_blob} bytes_blob);
{byte_list_blob} {fn_attributes} {ns}__into_bytes({decoded_input_blob} self_blob);
{byte_list_blob} {fn_attributes} {ns}__take_bytes({decoded_input_blob} *self_blob);
",
        ns = ns(),
        fn_attributes = options().fn_attributes,
        decoded_input_blob = options().decoded_input_blob_name,
        string_ptr_blob = options().string_ptr_blob_name,
        source_line_list_blob = options().source_line_list_blob_name,
        byte_list_blob = options().byte_list_blob_name,
    )
}