Ну вопщем то да(мун)
Больше я не буду выкладывать сюды обновы zip архивом. Мне кажется так никому не удобно, и намного проще с жит пака скачать. Мне не нравится только то, что я не могу менять версию, не загружая зип архив, но это для меня не критично так что пихуй.
Так вот, собственно, о самой обнове. Теперь вырезалка может удалять отдельный код, который завернут в лямбду. Чтобы это все заработало, нужно добавить в конфиг куттера следующее:
invokes("lambda.Invoke") {
server {
sides = [serverSide]
}
client {
sides = [clientSide]
}
}
Где
lambda.Invoke
- это класс, в котором присутствуют методы, которые принимают лямбду своим единственным параметром
server {
sides = [serverSide]
}
- название метода и стороны, на которых его вырезать
не нужно. Ни в коем случае не думайте, что имя server тут хоть что-нибудь значит. Чувствуйте себя свободно в выборе названия.
client {
sides = [clientSide]
}
То же самое только пример для клиента
Теперь чуть-чуть про костыли,которые тут пришлось применить.
Класс должен выглядеть вот так
public final class Invoke {
public static void server(ServerInvoke r) {
r.run();
}
public static void client(ClientInvoke r) {
r.run();
}
}
Из важного: обязательно нужно заводить свой функциональный интерфейс для каждой стороны, каждый метод обязательно должен быть статичным и содержать только один аргумент.
Мне все равно на код внутри каждого из этих методов. Тут можете чувствовать себя свободно(мун)
Как это собственно применяется
Invoke.server(() -> System.out.println(""));
Invoke.server(System.out::println);
Invoke.server(new ServerInvoke() {
@Override
public void run() {
System.out.println();
}
});
Invoke.client(() -> System.out.println("Lol"));
При билде клиента все вызовы Invoke#server, сам Invoke#server и все лямбды, которые в него суются будут удалены.
Пожалуйста, не пытайтесь класть лямбду в переменную, а после сувать ее в метод. Я почти полностью уверен, что это никогда не сработает.
В общем то я понимаю, что настройка может показаться весьма не простой, но я напоминаю, что пример вы всегда можете посмотреть у меня в
репо.
Еще хочу сказать, что эта штука, по моему, весьма нестабильна. И, если вы юзаете jitpack и вам не особо нужно вырезание лямбд, я бы вам посоветовал использовать версию
9206ea49
как пока наиболее стабильную. Конечно любые баг репорты я буду стараться закрывать как можно быстрей, но все же.