GeoIP2-swift/Documentation/FUTURE_PLANS.md

1.5 KiB

Future Plans

This document describes what backwards incompatible break are planned for a next major release. I must clarify, that I do realize how outrageously stupid it may sound like to plan for a breaking change befor the first initial version's release, but hey, there's a time pressure on my shoulder right now + MaxMind's "binary format" "desgined" by its script kiddos slowed things down baadly.

Replace CIDR Strings with proper intelligence

Wikipedia

At the time of writing I just had to port the dumbass php style "String representation" of networks. That's bad. That's so bad, that normally I wouldn't permit such a crap in my company.

What I want is to create a unit (most probably it'll be a struct?) that not only represents the network, but also provides utilities that can check whether an IpAddress belongs to that network for example. Should be representable in many different forms, etc.

Error handling

There used to be an original concept of how to do proper error handling & exception case coverage, however due to the 3 rewrites forced by the poor "design" of the maxmind binary format didn't leave me enough time to do it properly. Therefore, at the time of writing whenever something goes off, you get a nil. That makes my enterprise originated soul cry for a whiskey. Or a pálinka.

What I want is to design either an enum based exception case communication & coverage, either a thrown error based one.