So, I wanted to create a library to allow D to be used a scripting language, in order to allow it to be used to configure programs. Now, the design of everything is rather simple. However, I do have one problem. Is there a way to pass runtime information of a struct, to the compiler that will compile my code? Let me show you an example:
struct AppConfig {
string name;
u32 age;
}
void main() {
CallLibIniti();
// Pass the info of "AppConfig" so, the script file can use it without defining it
auto script_file = CompileFile("$HOME/.config/my_app/config.d", AppConfig.info);
// Create the config, using the "InitConfig" function from the script
AppConfig config = cast(AppConfig)script_file.exec("InitConfig");
Configuration file path: $HOME/.config/my_app/config.d
Config InitConfig() {
Config config = { "CustomName", 255 };
return config;
If what I want to do is not possible, I guess that another idea would be to get compile time information about a struct, write it to another file and automatically have the compiler add that file (if that's even possible)? Or maybe, modify the script file to add an import statement to it. Any ideas?