module app;

import std.datetime : StopWatch;
import std.stdio : writeln;

import myip.public_;

void main() {

	StopWatch timing;
	
	auto peek() {
		auto ret = timing.peek.msecs;
		timing.stop();
		timing.reset();
		return ret;
	}

	foreach(member ; __traits(allMembers, Service)) {
		mixin("alias service = Service." ~ member ~ ";");
		static if(is(typeof(service) == Service)) {
			timing.start();
			writeln("Public address using ", member, " (ipv4): ", publicAddress4(service), " in ", peek(), " ms");
			timing.start();
			writeln("Public address using ", member, " (ipv6): ", publicAddress6(service), " in ", peek(), " ms");
		}
	}

}