describe-d 0.1.0
Library that provides structures for code introspection
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
describe.d
describe.d
is a library that provides a structured interface to introspect
DLang source code.
Usage
The library provides the describe
template which returns a structure with
the introspection result:
import described;
/// Introspecting modules
assert(describe!(std.array).name == "module array");
assert(describe!(std.array).fullyQualifiedName == "module array");
assert(describe!(std.array).fullyQualifiedName == "std.array");
assert(describe!(std.array).functions.length == 1);
assert(describe!(std.array).templates.length == 31);
/// Introspecting aggregates
struct MyStruct {
void callMe() {
}
}
assert(describe!MyStruct.name == "MyStruct");
assert(describe!MyStruct.methods.length == 1);
assert(describe!MyStruct.methods[0].name == "callMe");
assert(describe!MyStruct.methods[0].returns.name.should.equal("void"));
/// Introspecting methods
assert(describe!(MyStruct.callMe).name == "MyStruct");
assert(describe!(MyStruct.callMe).returns.name.should.equal("void"));
Given an introspected Type
like a class or struct, it can be converted to the
D type using fromType
:
alias T = fromType!(describe!RandomClass.type);
static assert(is(T == RandomClass));
License
This project is licensed under the MIT license - see the LICENSE file for details.
- Registered by Szabo Bogdan
- 0.1.0 released 4 years ago
- gedaiu/describe-d
- MIT
- Copyright © 2020, Szabo Bogdan
- Authors:
- Dependencies:
- none
- Versions:
-
0.11.1 2023-Jun-02 0.11.0 2022-Dec-03 0.10.0 2021-Apr-03 0.9.0 2021-Apr-03 0.8.0 2020-Oct-28 - Download Stats:
-
-
0 downloads today
-
14 downloads this week
-
33 downloads this month
-
5142 downloads total
-
- Score:
- 1.3
- Short URL:
- describe-d.dub.pm