bolts 0.8.1
Utility library for meta programming
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:
Bolts Meta Programming Utility Library
Full API docs available here
Bolts is a utility library for the D programming language which contains a number of static reflection utilties that query compile time entities (traits) or transform them (meta). General utilties are in the modules traits
and meta
, and more specific ones are in dedicated modules (i.e. bolts.members
provides utilities over a type's members).
Modules:
- meta: has functions that result in compile time entity transofrmations, including:
TypesOf
,Flatten
,AliasPack
,staticZip
- traits: has general utitlites that can query compile time entities. including:
isFunctionOver
,isUnaryOver
,isBinaryOver
,hasProperty
,propertySemantics
,areCombinable
,isManifestAssignable
,isOf
,isSame
,isNullType
,isNullable
,StringOf
,isRefType
,isValueType
- members: has functions that allow you to query about the members of types
staticMembers
,memberFunction
,hasMember
(not eponymous)
- range: query ranges
isSortedRange
,sortingPredicate
,CommonTypeOfRanges
- aa: has functions that act on associative arrays
isKey
(not eponymous)
- assume: can alias functions to different attributed types. Useful for debugging.
nogc_
,pure_
- iz: super non-eponymous template that provides a lot of the functionality that's in the traits module with a different sytax that allows their usage in meta functions as well.
Most functions here operate on any compile time entity. For example isUnaryOver
works in both these situatons:
int i;
void f(int) {}
isFunctionOver!(f, int);
isFunctionOver!(f, 3);
isFunctionOver!(f, i);
Iz super template
The iz
super template. Has a lot of the traits on types encapulated in one place. So if there's a trait that tells you something about a compile time entity, chances are iz
will have it. E.g:
void f(int, float, string) {}
iz!f.functionOver!(int, float, string);
iz!f.functionOver!(3, float, "");
- Registered by ali akhtarzada
- 0.8.1 released 6 years ago
- aliak00/bolts
- MIT
- Copyright © 2018, Ali Akhtarzada
- Authors:
- Dependencies:
- none
- Versions:
-
1.8.1 2020-Aug-17 1.8.0 2020-Jul-20 1.7.0 2020-Feb-20 1.6.0 2020-Feb-19 1.5.3 2020-Feb-18 - Download Stats:
-
-
14 downloads today
-
55 downloads this week
-
368 downloads this month
-
56188 downloads total
-
- Score:
- 4.1
- Short URL:
- bolts.dub.pm