Skip to content

Commit

Permalink
Use loop to replace alternate call.
Browse files Browse the repository at this point in the history
  • Loading branch information
cao-awa committed Aug 27, 2024
1 parent f2cd6dd commit d2d4e93
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 49 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
kotlin.code.style=official
version_name=1.0.21
version_name=1.0.22
artifact_id=catheter
group_id=com.github.cao.awa
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/BooleanCatheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -982,10 +982,14 @@ public BooleanCatheter flat(Function<Boolean, BooleanCatheter> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -1003,10 +1007,14 @@ public <X> Catheter<X> flatTo(Function<Boolean, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/ByteCatheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -985,10 +985,14 @@ public ByteCatheter flat(Function<Byte, ByteCatheter> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -1006,10 +1010,14 @@ public <X> Catheter<X> flatTo(Function<Byte, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/Catheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,14 @@ public Catheter<T> flat(Function<T, Catheter<T>> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -75,10 +79,14 @@ public <X> Catheter<X> flatTo(Function<T, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/DoubleCatheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -1006,10 +1006,14 @@ public DoubleCatheter flat(Function<Double, DoubleCatheter> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -1027,10 +1031,14 @@ public <X> Catheter<X> flatTo(Function<Double, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/IntCatheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -1006,10 +1006,14 @@ public IntCatheter flat(Function<Integer, IntCatheter> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -1027,10 +1031,14 @@ public <X> Catheter<X> flatTo(Function<Integer, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down
24 changes: 16 additions & 8 deletions src/main/java/com/github/cao/awa/catheter/LongCatheter.java
Original file line number Diff line number Diff line change
Expand Up @@ -1006,10 +1006,14 @@ public LongCatheter flat(Function<Long, LongCatheter> function) {

this.targets = array(totalSize.get());
catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
this.targets[i] = inner.fetch(i);
i++;
innerSize--;
}
return currentIndex;
});
return this;
}
Expand All @@ -1027,10 +1031,14 @@ public <X> Catheter<X> flatTo(Function<Long, Catheter<X>> function) {
Catheter<X> result = Catheter.makeCapacity(totalSize.get());

catheter.alternate(0, (currentIndex, inner) -> {
return inner.alternate(currentIndex, (index, element) -> {
result.fetch(index, element);
return index + 1;
});
int i = currentIndex;
int innerSize = inner.count();
while (innerSize > 0){
result.fetch(i, inner.fetch(i));
i++;
innerSize--;
}
return currentIndex;
});
return result;
}
Expand Down

0 comments on commit d2d4e93

Please sign in to comment.