digitalmars.D.learn - How to import & export modules
- Vinod K Chandran (23/23) Nov 10 2019 Hi all,
- userTY (17/40) Nov 10 2019 You must use a module that has public imports.
- Arun Chandrasekaran (5/23) Nov 10 2019 Just a nitpick, prefer to use D style:
- Mike Parker (12/15) Nov 10 2019 The approach of using an "all" module is an old hack that is no
Hi all, I am practicing D by writting a win API gui wrapper. I want to use a single module import to use this Gui lib. Say i have 10 modules like-- "App.d, Form.d, Button.d, Label.d, TextBox.d, ComboBox.d, ListBox.d, CheckBox.d, Panel.d, DateTimePicker.d" In Nim, i can import and export all these modules in a separate single module and then i only need to use that module. Say i have a special module named "GuiLib.nim" And inside that if i write like this-- import App Form Button .... export import App Form Button .... Then in my main file, i only need to import the "GuiLib". How is this possible in D ?
Nov 10 2019
On Sunday, 10 November 2019 at 23:53:22 UTC, Vinod K Chandran wrote:Hi all, I am practicing D by writting a win API gui wrapper. I want to use a single module import to use this Gui lib. Say i have 10 modules like-- "App.d, Form.d, Button.d, Label.d, TextBox.d, ComboBox.d, ListBox.d, CheckBox.d, Panel.d, DateTimePicker.d" In Nim, i can import and export all these modules in a separate single module and then i only need to use that module. Say i have a special module named "GuiLib.nim" And inside that if i write like this-- import App Form Button .... export import App Form Button .... Then in my main file, i only need to import the "GuiLib". How is this possible in D ?You must use a module that has public imports. Public imports are visible from the module that contain them but most importantly from the module that imports the module containing the public imports. --- module all; public import App, Form, Button; --- --- module app; import all; // can see App, Form and Button exported (public) symbols --- See the specifications [1] for more comprehenssive details. [1]: https://dlang.org/spec/module.html#public_imports
Nov 10 2019
On Monday, 11 November 2019 at 01:28:54 UTC, userTY wrote:On Sunday, 10 November 2019 at 23:53:22 UTC, Vinod K Chandran wrote:Just a nitpick, prefer to use D style: https://dlang.org/dstyle.html Modules are essentially files. So keeping them lower case makes it easier.[...]You must use a module that has public imports. Public imports are visible from the module that contain them but most importantly from the module that imports the module containing the public imports. --- module all; public import App, Form, Button; --- --- module app; import all; // can see App, Form and Button exported (public) symbols --- See the specifications [1] for more comprehenssive details. [1]: https://dlang.org/spec/module.html#public_imports
Nov 10 2019
On Monday, 11 November 2019 at 01:28:54 UTC, userTY wrote:import all; // can see App, Form and Button exported (public) symbols ---The approach of using an "all" module is an old hack that is no longer necessary. Today, the way to approach is to use a "package module". https://dlang.org/spec/module.html#package-module Given a package "mylib" containing multiple modules, create a file "mylib/package.d". Use the package name as the module name and follow it with your public imports: module mylib; public import mylib.foo, mylib.bar, mylib.baz; Then users of the package can simply: import mylib;
Nov 10 2019