} else if (t instanceof Boolean) {
out.writeBool(wrappedBool, (Boolean) t);
} else if (t instanceof byte[]) {
byte[] bytes = (byte[]) t;
out.writeTag(wrappedBytes, WireFormat.WIRETYPE_LENGTH_DELIMITED);
out.writeRawVarint32(bytes.length);
out.writeRawBytes(bytes);
} else if (t instanceof Enum) {
// use an enum encoder
EnumEncoder enumEncoder = ctx.getEnumEncoder((Class<Enum>) t.getClass());
out.writeString(wrappedDescriptorFullName, enumEncoder.getFullName());