package io.trygvis.rules.network; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; @JsonSerialize(using = Ipv4Address.Serializer.class) public class Ipv4Address { public final int address; public Ipv4Address(int address) { this.address = address; } @Override public String toString() { return "%d.%d.%d.%d".formatted( address >> 24 & 0xff, address >> 16 & 0xff, address >> 8 & 0xff, address & 0xff); } public static class Serializer extends JsonSerializer { @Override public void serialize(Ipv4Address value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeStartObject(); gen.writeObjectField("value", value.toString()); gen.writeEndObject(); } } }