1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use super::{fields, ns};
use crate::Options;
use lib_ruby_parser_nodes::{Node, NodeField};
pub fn name(node: &Node, field: &NodeField) -> String {
format!(
"{ns}__{lower}__get_{field_name}",
ns = ns(),
lower = node.lower_name(),
field_name = field.field_name,
)
}
pub fn sig(node: &Node, field: &NodeField, options: &Options) -> String {
format!(
"{return_type} *{fn_attributes} {getter_name}({node_variant_blob} *self_blob)",
return_type = fields::field_type(field, options),
fn_attributes = options.fn_attributes,
getter_name = name(node, field),
node_variant_blob = options.node_variant_blob_name(node)
)
}