Ich habe eine Erlang-App, die auf Mochiweb und Mnesia basiert und JSON konsumiert und ausstrahlt. Es macht Sinn, Aufzeichnungen in Mnesia zu speichern; Mochiweb / Mochijson benötigen jedoch Daten im Proplist-Format. Also habe ich eine große Menge Code:
%Vor%Gut mit einer einzigen kleinen Platte, ein Schmerz mit vielen großen Platten. Kann irgendjemand einen Weg vorschlagen, um diesen Code zu umgehen? Ich denke, ich brauche eine Möglichkeit, die Felder eines Datensatzes dynamisch zu untersuchen. und da Datensätze ein kompilierbares Konstrukt sind, nehme ich an, dass es möglich ist, Code über ein Makro zu injizieren.
Danke!
Es klingt wie exprecs ist, was du suchst:
Lesen von der Beschreibung:
Das Modul ist eine Parse-Transformation Damit können Sie Datensätze exportieren. Das transform fügt Zugriffsfunktionen für hinzu instanziieren, inspizieren und Datensätze ändern, ohne dies tun zu müssen Einführung von Kompilierzeitabhängigkeiten zwischen Modulen.
Sehen Sie, ob das hilft.
Sie sollten etwas tun können wie:
%Vor%usw.
(Oder als ein Makro (immer noch eine Funktion, die Version, wo das Makro ist? R2P (Rec, foobar) ist einfach zu hässlich):
%Vor%)
Die akzeptierte Antwort dafür ist schon lange tot.
Die kurze Antwort besteht darin, Exprecs von Ulf Wiger zu verwenden.
exprecs ist eine parse_transform in uwiger / parse_trans
Der Artikel, wie das funktioniert, ist im Webarchiv unter: Ссылка
Tags und Links erlang