Conventional module name for importing all modules in a package

From D Wiki
Jump to: navigation, search

In Java, if you want to import all of the modules in a package, you'd do this:

import javax.swing.*;

Since D doesn't have a "*" (and it's unlikely that D would get such a shortcut), this capability could be added to a class by adding a module, that imports the other modules. So what should such a module be called. There have been a few suggestions.

These are common conventions:

import mylibrary.mypackage.all;
import mylibrary.mypackage._;

package.d

Since several releases ago, D supports importing an entire package using the package.d module. This file is used as a fallback by the compiler if the imported module turns out to be a directory. Example:

source/example/package.d

module example;

public import example.types;
public import example.api;
public import example.helpers;

source/app.d

import example;    // imports example/package.d

void main() {
    // ...
}