inferCoderFromObject(coderRegistry, schemaRegistry, ((TimestampedValue) o).getValue())); } else if (o instanceof List) { return ListCoder.of(inferCoderFromObjects(coderRegistry, schemaRegistry, ((Iterable) o))); } else if (o instanceof Set) { return SetCoder.of(inferCoderFromObjects(coderRegistry, schemaRegistry, ((Iterable) o))); } else if (o instanceof Collection) { return CollectionCoder.of( inferCoderFromObjects(coderRegistry, schemaRegistry, ((Iterable) o))); } else if (o instanceof Iterable) { return IterableCoder.of(inferCoderFromObjects(coderRegistry, schemaRegistry, ((Iterable) o))); } else if (o instanceof Map) { return MapCoder.of( inferCoderFromObjects(coderRegistry, schemaRegistry, ((Map) o).keySet()), inferCoderFromObjects(coderRegistry, schemaRegistry, ((Map) o).entrySet())); } else if (o instanceof KV) { return KvCoder.of(
return (Coder<T>) inferCoderFromObjects(coderRegistry, schemaRegistry, elems);