describe-d ~master
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
Introspection
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 == "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));
Filtering
The library provides the where
module which allows you to filter various describe
results.
Asserts
The library provides the has
module which allows you to check states of the various describe
results.
License
This project is licensed under the MIT license - see the LICENSE file for details.
- Registered by Szabo Bogdan
- ~master released a year 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:
-
-
3 downloads today
-
32 downloads this week
-
45 downloads this month
-
5189 downloads total
-
- Score:
- 1.5
- Short URL:
- describe-d.dub.pm