90 lines
2.4 KiB
Java
90 lines
2.4 KiB
Java
package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ;
|
||
|
||
import java.util.PrimitiveIterator;
|
||
import java.util.function.Consumer;
|
||
|
||
import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.Bãß;
|
||
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᔿᣔᐪᣗᑊᕁ.M02ᒾ;
|
||
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᔿᣔᐪᣗᑊᕁ.M04ᒾ;
|
||
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
|
||
|
||
@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());
|
||
}
|
||
}
|
||
|
||
default PrimitiveNibbleIterator toNibbleIteratorIndianBig() {
|
||
return toNibbleIterator(M04ᒾ.STATIC);
|
||
}
|
||
|
||
default PrimitiveNibbleIterator toNibbleIteratorIndianLittle() {
|
||
return toNibbleIterator(M04ᒾ.TAIL);
|
||
}
|
||
|
||
default PrimitiveNibbleIterator toNibbleIterator(M04ᒾ order) {
|
||
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;
|
||
}
|
||
};
|
||
}
|
||
|
||
default PrimitiveByteIterator toByteIterator(M02ᒾ order) {
|
||
if (M02ᒾ.TAIL.equals(order)) {
|
||
return toNibbleIterator(M04ᒾ.TAIL).toByteIterator(order);
|
||
}
|
||
return toNibbleIterator(M04ᒾ.STATIC).toByteIterator(order);
|
||
}
|
||
|
||
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();
|
||
}
|
||
};
|
||
}
|
||
}
|