Remove unnecessary exports
If given type is not used across library interface it's methods can stay private. As of now this is only test as I am not sure if it doesn't cause problems in wasm build.
This commit is contained in:
parent
c0246ce2af
commit
0281fd5c1d
2 changed files with 59 additions and 59 deletions
|
|
@ -72,31 +72,31 @@ nothrow:
|
||||||
size_t length; // Used to compute loadFactor
|
size_t length; // Used to compute loadFactor
|
||||||
size_t markerdDeleted;
|
size_t markerdDeleted;
|
||||||
|
|
||||||
export void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
elements.clear();
|
elements.clear();
|
||||||
length = 0;
|
length = 0;
|
||||||
markerdDeleted = 0;
|
markerdDeleted = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void reset()
|
void reset()
|
||||||
{
|
{
|
||||||
elements.reset();
|
elements.reset();
|
||||||
length = 0;
|
length = 0;
|
||||||
markerdDeleted = 0;
|
markerdDeleted = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool isIn(ref Key el)
|
bool isIn(ref Key el)
|
||||||
{
|
{
|
||||||
return getIndex(el) != getIndexEmptyValue;
|
return getIndex(el) != getIndexEmptyValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool isIn(Key el)
|
bool isIn(Key el)
|
||||||
{
|
{
|
||||||
return getIndex(el) != getIndexEmptyValue;
|
return getIndex(el) != getIndexEmptyValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
export Value* getPtr()(auto ref Key k)
|
Value* getPtr()(auto ref Key k)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(k);
|
size_t index = getIndex(k);
|
||||||
if (index == getIndexEmptyValue)
|
if (index == getIndexEmptyValue)
|
||||||
|
|
@ -109,20 +109,20 @@ nothrow:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export ref Value get()(auto ref Key k)
|
ref Value get()(auto ref Key k)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(k);
|
size_t index = getIndex(k);
|
||||||
assert(index != getIndexEmptyValue);
|
assert(index != getIndexEmptyValue);
|
||||||
return elements[index].keyValue.value;
|
return elements[index].keyValue.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
deprecated("Use get with second parameter.") export auto ref Value getDefault()(
|
deprecated("Use get with second parameter.") auto ref Value getDefault()(
|
||||||
auto ref Key k, auto ref Value defaultValue)
|
auto ref Key k, auto ref Value defaultValue)
|
||||||
{
|
{
|
||||||
return get(k, defaultValue);
|
return get(k, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
export auto ref Value get()(auto ref Key k, auto ref Value defaultValue)
|
auto ref Value get()(auto ref Key k, auto ref Value defaultValue)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(k);
|
size_t index = getIndex(k);
|
||||||
if (index == getIndexEmptyValue)
|
if (index == getIndexEmptyValue)
|
||||||
|
|
@ -135,7 +135,7 @@ nothrow:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export ref Value getInsertDefault()(auto ref Key k, auto ref Value defaultValue)
|
ref Value getInsertDefault()(auto ref Key k, auto ref Value defaultValue)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(k);
|
size_t index = getIndex(k);
|
||||||
if (index == getIndexEmptyValue)
|
if (index == getIndexEmptyValue)
|
||||||
|
|
@ -148,7 +148,7 @@ nothrow:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool tryRemove(Key el)
|
bool tryRemove(Key el)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(el);
|
size_t index = getIndex(el);
|
||||||
if (index == getIndexEmptyValue)
|
if (index == getIndexEmptyValue)
|
||||||
|
|
@ -161,23 +161,23 @@ nothrow:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void remove(Key el)
|
void remove(Key el)
|
||||||
{
|
{
|
||||||
bool ok = tryRemove(el);
|
bool ok = tryRemove(el);
|
||||||
assert(ok);
|
assert(ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
export ref Value opIndex()(auto ref Key key)
|
ref Value opIndex()(auto ref Key key)
|
||||||
{
|
{
|
||||||
return get(key);
|
return get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opIndexAssign()(auto ref Value value, auto ref Key key)
|
void opIndexAssign()(auto ref Value value, auto ref Key key)
|
||||||
{
|
{
|
||||||
add(key, value);
|
add(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
export void add()(auto ref Key key, auto ref Value value)
|
void add()(auto ref Key key, auto ref Value value)
|
||||||
{
|
{
|
||||||
size_t index = getIndex(key);
|
size_t index = getIndex(key);
|
||||||
if (index != getIndexEmptyValue)
|
if (index != getIndexEmptyValue)
|
||||||
|
|
@ -221,12 +221,12 @@ nothrow:
|
||||||
//int numA;
|
//int numA;
|
||||||
//int numB;
|
//int numB;
|
||||||
|
|
||||||
export size_t getIndex(Key el)
|
size_t getIndex(Key el)
|
||||||
{
|
{
|
||||||
return getIndex(el);
|
return getIndex(el);
|
||||||
}
|
}
|
||||||
|
|
||||||
export size_t getIndex(ref Key el)
|
size_t getIndex(ref Key el)
|
||||||
{
|
{
|
||||||
mixin(doNotInline);
|
mixin(doNotInline);
|
||||||
|
|
||||||
|
|
@ -260,7 +260,7 @@ nothrow:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export float getLoadFactor(size_t forElementsNum)
|
float getLoadFactor(size_t forElementsNum)
|
||||||
{
|
{
|
||||||
if (elements.length == 0)
|
if (elements.length == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -269,7 +269,7 @@ nothrow:
|
||||||
return cast(float) forElementsNum / (elements.length);
|
return cast(float) forElementsNum / (elements.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
export void rehash()()
|
void rehash()()
|
||||||
{
|
{
|
||||||
mixin(doNotInline);
|
mixin(doNotInline);
|
||||||
// Get all elements
|
// Get all elements
|
||||||
|
|
@ -303,7 +303,7 @@ nothrow:
|
||||||
}
|
}
|
||||||
|
|
||||||
// foreach support
|
// foreach support
|
||||||
export int opApply(DG)(scope DG dg)
|
int opApply(DG)(scope DG dg)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
foreach (ref Bucket gr; elements)
|
foreach (ref Bucket gr; elements)
|
||||||
|
|
@ -336,7 +336,7 @@ nothrow:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export int byKey(scope int delegate(ref Key k) dg)
|
int byKey(scope int delegate(ref Key k) dg)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
foreach (ref Key k; this)
|
foreach (ref Key k; this)
|
||||||
|
|
@ -348,7 +348,7 @@ nothrow:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export int byValue(scope int delegate(ref Value v) dg)
|
int byValue(scope int delegate(ref Value v) dg)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
foreach (ref Value v; this)
|
foreach (ref Value v; this)
|
||||||
|
|
@ -360,7 +360,7 @@ nothrow:
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
export int byKeyValue(scope int delegate(ref Key k, ref Value v) dg)
|
int byKeyValue(scope int delegate(ref Key k, ref Value v) dg)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
foreach (ref Key k, ref Value v; this)
|
foreach (ref Key k, ref Value v; this)
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,13 @@ import bubel.ecs.std;
|
||||||
import std.conv : emplace;
|
import std.conv : emplace;
|
||||||
import std.traits : hasMember, isCopyable, TemplateOf, Unqual;
|
import std.traits : hasMember, isCopyable, TemplateOf, Unqual;
|
||||||
|
|
||||||
export @nogc @safe nothrow pure size_t nextPow2(size_t num)
|
@nogc @safe nothrow pure size_t nextPow2(size_t num)
|
||||||
{
|
{
|
||||||
return 1 << bsr(num) + 1;
|
return 1 << bsr(num) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
export __gshared size_t gVectorsCreated = 0;
|
__gshared size_t gVectorsCreated = 0;
|
||||||
export __gshared size_t gVectorsDestroyed = 0;
|
__gshared size_t gVectorsDestroyed = 0;
|
||||||
|
|
||||||
struct Vector(T)
|
struct Vector(T)
|
||||||
{
|
{
|
||||||
|
|
@ -28,19 +28,19 @@ struct Vector(T)
|
||||||
size_t used;
|
size_t used;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
export this()(T t)
|
this()(T t)
|
||||||
{
|
{
|
||||||
add(t);
|
add(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
export this(X)(X[] t) if (is(Unqual!X == Unqual!T))
|
this(X)(X[] t) if (is(Unqual!X == Unqual!T))
|
||||||
{
|
{
|
||||||
add(t);
|
add(t);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*static if (isCopyable!T) {
|
/*static if (isCopyable!T) {
|
||||||
export this(this) {
|
this(this) {
|
||||||
T[] tmp = array[0 .. used];
|
T[] tmp = array[0 .. used];
|
||||||
array = null;
|
array = null;
|
||||||
used = 0;
|
used = 0;
|
||||||
|
|
@ -52,17 +52,17 @@ public:
|
||||||
|
|
||||||
@disable this(this);
|
@disable this(this);
|
||||||
|
|
||||||
export ~this()
|
~this()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
export void clear()
|
void clear()
|
||||||
{
|
{
|
||||||
removeAll();
|
removeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
export void removeAll()
|
void removeAll()
|
||||||
{
|
{
|
||||||
if (array !is null)
|
if (array !is null)
|
||||||
{
|
{
|
||||||
|
|
@ -77,17 +77,17 @@ public:
|
||||||
used = 0;
|
used = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool empty() const
|
bool empty() const
|
||||||
{
|
{
|
||||||
return (used == 0);
|
return (used == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
export size_t length() const
|
size_t length() const
|
||||||
{
|
{
|
||||||
return used;
|
return used;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void length(size_t newLength)
|
void length(size_t newLength)
|
||||||
{
|
{
|
||||||
if (newLength > used)
|
if (newLength > used)
|
||||||
{
|
{
|
||||||
|
|
@ -111,12 +111,12 @@ public:
|
||||||
used = newLength;
|
used = newLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void reset()
|
void reset()
|
||||||
{
|
{
|
||||||
used = 0;
|
used = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void reserve(size_t numElements)
|
void reserve(size_t numElements)
|
||||||
{
|
{
|
||||||
if (numElements > array.length)
|
if (numElements > array.length)
|
||||||
{
|
{
|
||||||
|
|
@ -124,12 +124,12 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export size_t capacity()
|
size_t capacity()
|
||||||
{
|
{
|
||||||
return array.length - used;
|
return array.length - used;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void extend(size_t newNumOfElements)
|
void extend(size_t newNumOfElements)
|
||||||
{
|
{
|
||||||
auto oldArray = manualExtend(array, newNumOfElements);
|
auto oldArray = manualExtend(array, newNumOfElements);
|
||||||
if (oldArray !is null)
|
if (oldArray !is null)
|
||||||
|
|
@ -138,14 +138,14 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export @nogc void freeData(void[] data)
|
@nogc void freeData(void[] data)
|
||||||
{
|
{
|
||||||
// 0x0F probably invalid value for pointers and other types
|
// 0x0F probably invalid value for pointers and other types
|
||||||
memset(data.ptr, 0x0F, data.length); // Makes bugs show up xD
|
memset(data.ptr, 0x0F, data.length); // Makes bugs show up xD
|
||||||
free(data.ptr);
|
free(data.ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
export static void[] manualExtend(ref T[] array, size_t newNumOfElements = 0)
|
static void[] manualExtend(ref T[] array, size_t newNumOfElements = 0)
|
||||||
{
|
{
|
||||||
if (newNumOfElements == 0)
|
if (newNumOfElements == 0)
|
||||||
newNumOfElements = 2;
|
newNumOfElements = 2;
|
||||||
|
|
@ -161,7 +161,7 @@ public:
|
||||||
return (cast(void*) oldArray.ptr)[0 .. oldArray.length * T.sizeof];
|
return (cast(void*) oldArray.ptr)[0 .. oldArray.length * T.sizeof];
|
||||||
}
|
}
|
||||||
|
|
||||||
export Vector!T copy()()
|
Vector!T copy()()
|
||||||
{
|
{
|
||||||
Vector!T duplicate;
|
Vector!T duplicate;
|
||||||
duplicate.reserve(used);
|
duplicate.reserve(used);
|
||||||
|
|
@ -169,12 +169,12 @@ public:
|
||||||
return duplicate;
|
return duplicate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*export bool canAddWithoutRealloc(uint elemNum = 1)
|
/*bool canAddWithoutRealloc(uint elemNum = 1)
|
||||||
{
|
{
|
||||||
return used + elemNum <= array.length;
|
return used + elemNum <= array.length;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
export void add()(T t)
|
void add()(T t)
|
||||||
{
|
{
|
||||||
if (used >= array.length)
|
if (used >= array.length)
|
||||||
{
|
{
|
||||||
|
|
@ -185,7 +185,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add element at given position moving others
|
/// Add element at given position moving others
|
||||||
export void add()(T t, size_t pos)
|
void add()(T t, size_t pos)
|
||||||
{
|
{
|
||||||
assert(pos <= used);
|
assert(pos <= used);
|
||||||
if (used >= array.length)
|
if (used >= array.length)
|
||||||
|
|
@ -201,7 +201,7 @@ public:
|
||||||
used++;
|
used++;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void add(X)(X[] t) if (is(Unqual!X == Unqual!T))
|
void add(X)(X[] t) if (is(Unqual!X == Unqual!T))
|
||||||
{
|
{
|
||||||
if (used + t.length > array.length)
|
if (used + t.length > array.length)
|
||||||
{
|
{
|
||||||
|
|
@ -214,7 +214,7 @@ public:
|
||||||
used += t.length;
|
used += t.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void remove(size_t elemNum)
|
void remove(size_t elemNum)
|
||||||
{
|
{
|
||||||
//destroy(array[elemNum]);
|
//destroy(array[elemNum]);
|
||||||
static if (__traits(hasMember, T, "__xdtor"))
|
static if (__traits(hasMember, T, "__xdtor"))
|
||||||
|
|
@ -226,7 +226,7 @@ public:
|
||||||
used--;
|
used--;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void removeStable()(size_t elemNum)
|
void removeStable()(size_t elemNum)
|
||||||
{
|
{
|
||||||
used--;
|
used--;
|
||||||
foreach (i; 0 .. used)
|
foreach (i; 0 .. used)
|
||||||
|
|
@ -235,7 +235,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool tryRemoveElement()(T elem)
|
bool tryRemoveElement()(T elem)
|
||||||
{
|
{
|
||||||
foreach (i, ref el; array[0 .. used])
|
foreach (i, ref el; array[0 .. used])
|
||||||
{
|
{
|
||||||
|
|
@ -248,65 +248,65 @@ public:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void removeElement()(T elem)
|
void removeElement()(T elem)
|
||||||
{
|
{
|
||||||
bool ok = tryRemoveElement(elem);
|
bool ok = tryRemoveElement(elem);
|
||||||
assert(ok, "There is no such an element in vector");
|
assert(ok, "There is no such an element in vector");
|
||||||
}
|
}
|
||||||
|
|
||||||
export ref T opIndex(size_t elemNum) const
|
ref T opIndex(size_t elemNum) const
|
||||||
{
|
{
|
||||||
//debug assert(elemNum < used, "Range violation [index]");
|
//debug assert(elemNum < used, "Range violation [index]");
|
||||||
return *cast(T*)&array.ptr[elemNum];
|
return *cast(T*)&array.ptr[elemNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
export auto opSlice()
|
auto opSlice()
|
||||||
{
|
{
|
||||||
return array.ptr[0 .. used];
|
return array.ptr[0 .. used];
|
||||||
}
|
}
|
||||||
|
|
||||||
export T[] opSlice(size_t x, size_t y)
|
T[] opSlice(size_t x, size_t y)
|
||||||
{
|
{
|
||||||
assert(y <= used);
|
assert(y <= used);
|
||||||
return array.ptr[x .. y];
|
return array.ptr[x .. y];
|
||||||
}
|
}
|
||||||
|
|
||||||
export size_t opDollar()
|
size_t opDollar()
|
||||||
{
|
{
|
||||||
return used;
|
return used;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opAssign(X)(X[] slice)
|
void opAssign(X)(X[] slice)
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
this ~= slice;
|
this ~= slice;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opOpAssign(string op)(T obj)
|
void opOpAssign(string op)(T obj)
|
||||||
{
|
{
|
||||||
//static assert(op == "~");
|
//static assert(op == "~");
|
||||||
add(obj);
|
add(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opOpAssign(string op, X)(X[] obj)
|
void opOpAssign(string op, X)(X[] obj)
|
||||||
{
|
{
|
||||||
//static assert(op == "~");
|
//static assert(op == "~");
|
||||||
add(obj);
|
add(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opIndexAssign()(T obj, size_t elemNum)
|
void opIndexAssign()(T obj, size_t elemNum)
|
||||||
{
|
{
|
||||||
assert(elemNum < used, "Range viloation");
|
assert(elemNum < used, "Range viloation");
|
||||||
array[elemNum] = obj;
|
array[elemNum] = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
export void opSliceAssign()(T[] obj, size_t a, size_t b)
|
void opSliceAssign()(T[] obj, size_t a, size_t b)
|
||||||
{
|
{
|
||||||
assert(b <= used && a <= b, "Range viloation");
|
assert(b <= used && a <= b, "Range viloation");
|
||||||
array.ptr[a .. b] = obj;
|
array.ptr[a .. b] = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
export bool opEquals()(auto ref const Vector!(T) r) const
|
bool opEquals()(auto ref const Vector!(T) r) const
|
||||||
{
|
{
|
||||||
return used == r.used && array.ptr[0 .. used] == r.array.ptr[0 .. r.used];
|
return used == r.used && array.ptr[0 .. used] == r.array.ptr[0 .. r.used];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue