D's Module manager
Provides data structures and helper functions to manage module paths, package names, and which dub package they belong to.
struct ModInfo;
Source file (D's module) information
string src;
Source file with relative path from source root path, or absolute path as external files.
string dst;
Distination file with relative path from target.
string dubPkgName;
Dub package name
string pkgName;
(D's) Package name (eg. hoge/fuga/piyo.d -> hoge.fuga )
string modName;
Module name ( hoge/fuga/piyo.d -> piyo )
string title;
Title of module
First line of documented module comment. Note that it is NOT strictly same from the DDoc's Sammery section.
const @property @safe string fullModuleName();
Concatinated package and module name (eg. hoge/fuga/piyo.d -> hoge.fuga.piyo )
@safe this(string srcFile);
struct PkgInfo;
Source file (D's package) information
string name;
name of package (eg. hoge/fuga/piyo.d -> fuga )
string dubPkgName;
dub package name
string pkgName;
full package name (eg. hoge/fuga/piyo.d -> hoge.fuga )
ModInfo packageD;
package.d module information if exists. ModInfo
ModInfo[] modules;
module informations of package children. ModInfo
PkgInfo[] packages;
package informations of package children.
const nothrow @nogc @property @safe bool hasPackageD();
true if package.d module exists
const @property @safe PkgInfo dup();
@safe void append(in PkgInfo[] pkgInfos);
@safe void append(in ref PkgInfo pkgInfo);
@safe void append(in ModInfo[] modInfos);
Append other package information to this information
@safe void append(in ref ModInfo modInfo);
struct PackageAndModuleData;
@safe this(return ref scope ModInfo modInfo);
@safe this(return ref scope PkgInfo d);
const @safe this(return ref scope const ModInfo modInfo);
const @safe this(return ref scope const PkgInfo d);
const @property @safe string name();
const @property @safe bool isPackage();
const @property @safe bool isModule();
const @property @safe bool isPackageModule();
inout @property ref @safe inout(PkgInfo) packageInfo();
inout @property ref @safe inout(ModInfo) moduleInfo();
inout @property @trusted inout(PackageAndModuleData)[] children();
struct PackageAndModuleRange;
this(PackageAndModuleData[] pkgs);
this(PkgInfo[] pkgs);
const @safe this(return ref scope const PkgInfo[] pkgs);
inout @property inout(PackageAndModuleData) front();
void popFront();
const @property bool empty();
struct DubPkgInfo;
string name;
string packageVersion;
PkgInfo root;
string dir;
string[] options;
@safe this(string dubPkgName, string ver, string rootDir, string[] opts);
const @property @safe DubPkgInfo dup();
@trusted PackageAndModuleRange entries();
const @trusted const(PackageAndModuleRange) entries();
@trusted PackageAndModuleData[] children();
const @trusted const(PackageAndModuleData)[] children();
@safe void moduleSort(ref PackageAndModuleData[] datas);
@trusted void moduleSort(ref const(PackageAndModuleData)[] datas);
struct ModuleManager;
@safe void addSources(string dubPkgName, string pkgVer, string root, in string[] files, in string[] options);
const @safe bool hasPackage(string dubPkgName);
inout ref @safe inout(PkgInfo) getPackageInfo(string dubPkgName);
inout ref @safe inout(DubPkgInfo) getDubPackageInfo(string dubPkgName);
@safe void clearSources();
@property @safe void target(string dstDir);
void exclude(in string[] packages, in string[] packagePatterns, in string[] paths, in string[] patterns);