package dev.pfaff.recipe_nope.injector.util; import org.objectweb.asm.tree.AbstractInsnNode; import org.objectweb.asm.tree.InsnList; import org.spongepowered.asm.mixin.injection.struct.Target; public interface InsnConsumer { void accept(AbstractInsnNode insn); void extraLocals(int size); void extraStack(int size); static InsnConsumer into(InsnList list, Target target) { return new InsnConsumer() { @Override public void accept(AbstractInsnNode insnNode) { list.add(insnNode); } @Override public void extraLocals(int size) { target.extendLocals().add(size).apply(); } @Override public void extraStack(int size) { target.extendStack().add(size).apply(); } }; } }