Skip to content

Commit 2e08977

Browse files
committed
Closes #3
1 parent c0af77c commit 2e08977

File tree

2 files changed

+35
-20
lines changed

2 files changed

+35
-20
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System.Collections.Generic;
2+
using System.Runtime.CompilerServices;
3+
4+
namespace Platform.Collections.Arrays
5+
{
6+
public class ArrayFiller<TElement, TReturnConstant> : ArrayFiller<TElement>
7+
{
8+
protected readonly TReturnConstant _returnConstant;
9+
10+
public ArrayFiller(TElement[] array, long offset, TReturnConstant returnConstant) : base(array, offset) => _returnConstant = returnConstant;
11+
12+
public ArrayFiller(TElement[] array, TReturnConstant returnConstant)
13+
: this(array, 0, returnConstant)
14+
{
15+
}
16+
17+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
18+
public TReturnConstant AddAndReturnConstant(TElement element)
19+
{
20+
_array[_position++] = element;
21+
return _returnConstant;
22+
}
23+
24+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
25+
public TReturnConstant AddFirstAndReturnConstant(IList<TElement> collection)
26+
{
27+
_array[_position++] = collection[0];
28+
return _returnConstant;
29+
}
30+
}
31+
}
Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@
33

44
namespace Platform.Collections.Arrays
55
{
6-
public class ArrayFiller<TElement, TReturnConstant>
6+
public class ArrayFiller<TElement>
77
{
8-
private readonly TReturnConstant _returnConstant;
98
protected readonly TElement[] _array;
109
protected long _position;
1110

12-
public ArrayFiller(TElement[] array, long offset, TReturnConstant returnConstant)
11+
public ArrayFiller(TElement[] array, long offset)
1312
{
1413
_array = array;
1514
_position = offset;
16-
_returnConstant = returnConstant;
1715
}
1816

19-
public ArrayFiller(TElement[] array, TReturnConstant returnConstant)
20-
: this(array, 0, returnConstant)
17+
public ArrayFiller(TElement[] array)
18+
: this(array, 0)
2119
{
2220
}
2321

@@ -31,25 +29,11 @@ public bool AddAndReturnTrue(TElement element)
3129
return true;
3230
}
3331

34-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
35-
public TReturnConstant AddAndReturnConstant(TElement element)
36-
{
37-
_array[_position++] = element;
38-
return _returnConstant;
39-
}
40-
4132
[MethodImpl(MethodImplOptions.AggressiveInlining)]
4233
public bool AddFirstAndReturnTrue(IList<TElement> collection)
4334
{
4435
_array[_position++] = collection[0];
4536
return true;
4637
}
47-
48-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
49-
public TReturnConstant AddFirstAndReturnConstant(IList<TElement> collection)
50-
{
51-
_array[_position++] = collection[0];
52-
return _returnConstant;
53-
}
5438
}
5539
}

0 commit comments

Comments
 (0)