// Path: java/core/src/main/java/eu/mais_h/mathsync/serialize/Serializer.java
// public interface Serializer<T> {
// 
//   /**
//    * Serializes an object to an array of byte.
//    *
//    * <p>Any instance of <code>T</code> must be accepted and have a non <code>null</code> return value:
//    * for any <code>o</code>, <code>o instanceof T</code> implies <code>serialize(o) != null</code>.</p>
//    *
//    * <p>The output must be consistent, an identical output should be returned if called twice on the equal
//    * objects: for any <code>o1</code> and <code>o2</code>, <code>o1.equals(o2)</code> implies
//    * <code>Arrays.equals(serialize(o1), serialize(o2))</code>.</p>
//    *
//    * @param item the object to serialize.
//    * @return the array of bytes representing the input object on the wire.
//    */
//   byte[] serialize(T item);
// }


import java.util.Iterator;
import java.util.Set;
import eu.mais_h.mathsync.serialize.Serializer;
package eu.mais_h.mathsync;



class SerializedItems<T> implements Iterable<byte[]> {

  private final Set<? extends T> items;
// Path: java/core/src/main/java/eu/mais_h/mathsync/serialize/Serializer.java
// public interface Serializer<T> {
// 
//   /**
//    * Serializes an object to an array of byte.
//    *
//    * <p>Any instance of <code>T</code> must be accepted and have a non <code>null</code> return value:
//    * for any <code>o</code>, <code>o instanceof T</code> implies <code>serialize(o) != null</code>.</p>
//    *
//    * <p>The output must be consistent, an identical output should be returned if called twice on the equal
//    * objects: for any <code>o1</code> and <code>o2</code>, <code>o1.equals(o2)</code> implies
//    * <code>Arrays.equals(serialize(o1), serialize(o2))</code>.</p>
//    *
//    * @param item the object to serialize.
//    * @return the array of bytes representing the input object on the wire.
//    */
//   byte[] serialize(T item);
// }


// Path: java/core/src/main/java/eu/mais_h/mathsync/SerializedItems.java
import java.util.Iterator;
import java.util.Set;
import eu.mais_h.mathsync.serialize.Serializer;

package eu.mais_h.mathsync;



class SerializedItems<T> implements Iterable<byte[]> {

  private final Set<? extends T> items;
  private final Serializer<? super T> serializer;