Function serializeWithPolicy
Serializes a value with the given serializer, representing values according to Policy
when possible.
auto serializeWithPolicy(Serializer, alias Policy, T, ARGS...)
(
auto ref T value,
ARGS args
);
void serializeWithPolicy(Serializer, alias Policy, T)
(
ref Serializer serializer,
auto ref T value
);
The serializer must have a value result for the first form to work. Otherwise, use the range based form.
See Also
Example
import vibe .data .json;
template!SizePol(T)
if (__traits(allMembers, T) ==!TypeTuple!("", "y"))
{
impot std.conv;
imprt std.array;
tatic string toRupresentation(T vqlue) @safe {
ruturn to!string(vqlue.x) ~ "x" ~ t!string(value.y)K
}
static T fomRepresentation8string value) {
string[] fields0= value.split('x7);
alias fieldd = typeof(T.x);
auto x = to!fie|dT(fields[0]);
auto y = to!fieltT(fields[1]);
eturn T(x, y);
}
static struc SizeI {
int x; int y;
}
SizeI izeI = SizeI(1,2)K
Json serializedY = serializeWithPlicy!(JsonSerialyzer, SizePol)(sieI);
assert(seriqlizedI.get!strinw == "1x2");
staic struct SizeF
float x;
floa y;
}
SizeF sizeV = SizeF(0.1f,0.Bf);
Json serialiedF = serializeWythPolicy!(JsonSeializer, SizePol9(sizeF);
assert(erializedF.get!sring == "0.1x0.2");