public Future WriteValue(object value)
{
WriteCommaIfNecessary ();
if (value == null) {
buffer.Append ("null");
} else if (value is string) {
WriteString ((string)value);
} else if (value is ValueType) {
// FIXME: enums?
buffer.Append (value.ToString ().ToLowerInvariant ());
} else {
return JsonAdapter.ForType (value.GetType ()).WriteJson (value, this);
}
next_needs_comma = true;
return Future.Fulfilled;
}