/* Conversion helper */ module qcheck.detail.conv; private { import std.algorithm : min, max; import std.traits; } /** * clips a source value to a target values maximal range. */ package T clipTo(T, S)(S src) { Unqual!S value = src; static if (mostNegative!(S) < mostNegative!(T)) { value = max(value, mostNegative!(T)); } static if (S.max > T.max) { value = min(value, T.max); } return cast(T)value; }