An erlang parse_transform that automaticaly generates and exports accessors for all records declared within a module.
Clone or download
Pull request Compare This branch is 2 commits ahead, 9 commits behind dieswaytoofast:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
README.md

README.md

Dynarec

Parse transform that automaticaly generates and exports accessors for all records declared within a module.

It generates and exports the following functions:

get_value(field_name, Record) ->
    Record#record_name.field_name.

set_value(field_name, Value, Record) when is_record(Record, record_name) ->
    Record#record_name{field_name = Value}.

records() ->
    [record_name1, record_name2, ...].

fields(record_name) ->
    [field_name1, field_name2, ...].

new_record(record_name) ->
    #record_name{}.

It runs at compile time using following preprocessor directive:

-compile({parse_transform, dynarec}).

All those functions are added to the module that uses the directive. Be aware that dynarec.erl must be compiled before any module that uses it.