gdxapp4d/gdxapp4d-lib-bassboonyd/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/PrimitiveBooleanIterator.java

90 lines
2.4 KiB
Java
Raw Normal View History

2022-11-05 13:51:51 +01:00
package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ;
import java.util.PrimitiveIterator;
import java.util.function.Consumer;
2022-10-31 04:39:32 +01:00
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.Bãß;
2022-11-07 20:35:56 +01:00
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᔿᣔᐪᣗᑊᕁ.M02ᒾ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᔿᣔᐪᣗᑊᕁ.M04ᒾ;
2022-11-05 13:41:48 +01:00
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
2022-10-30 16:59:24 +01:00
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
public interface PrimitiveBooleanIterator extends PrimitiveIterator<Boolean,PrimitiveBooleanConsumer> {
boolean nextBoolean();
@Override
default Boolean next() {
return nextBoolean();
}
@Override
default void forEachRemaining(Consumer<? super Boolean> action) {
while (hasNext()) {
action.accept(nextBoolean());
}
}
@Override
default void forEachRemaining(PrimitiveBooleanConsumer action) {
while (hasNext()) {
action.accept(nextBoolean());
}
}
2022-10-30 08:26:14 +01:00
default PrimitiveNibbleIterator toNibbleIteratorIndianBig() {
2022-11-07 20:35:56 +01:00
return toNibbleIterator(M04ᒾ.STATIC);
2022-10-30 08:26:14 +01:00
}
default PrimitiveNibbleIterator toNibbleIteratorIndianLittle() {
2022-11-07 20:35:56 +01:00
return toNibbleIterator(M04ᒾ.TAIL);
2022-10-30 08:26:14 +01:00
}
2022-11-07 20:35:56 +01:00
default PrimitiveNibbleIterator toNibbleIterator(M04ᒾ order) {
2022-10-30 08:26:14 +01:00
return new PrimitiveNibbleIterator() {
@Override
public boolean hasNext() {
return PrimitiveBooleanIterator.this.hasNext();
}
@Override
public byte nextNibble() {
int current = 0;
for (int i=0;i<4;i++) {
current += PrimitiveBooleanIterator.this.nextBoolean()?1:0 << order.rȧñkNummerBlokWaarde(i);
}
return (byte) current;
}
};
}
2022-11-07 20:35:56 +01:00
default PrimitiveByteIterator toByteIterator(M02ᒾ order) {
if (M02ᒾ.TAIL.equals(order)) {
return toNibbleIterator(M04ᒾ.TAIL).toByteIterator(order);
2022-10-30 08:26:14 +01:00
}
2022-11-07 20:35:56 +01:00
return toNibbleIterator(M04ᒾ.STATIC).toByteIterator(order);
2022-10-30 08:26:14 +01:00
}
static PrimitiveBooleanIterator valueOfZeroAscii(String binarySnake) {
return valueOf(binarySnake, Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.STR_ZERO);
}
static PrimitiveBooleanIterator valueOf(String binarySnake, String zeroChar) {
OfInt values = binarySnake.codePoints().iterator();
int zeroInt = zeroChar.codePointAt(Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO);
return new PrimitiveBooleanIterator() {
@Override
public boolean hasNext() {
return values.hasNext();
}
@Override
public boolean nextBoolean() {
return zeroInt != values.nextInt();
}
};
}
}