class BaseRowSerializer extends AbstractRowSerializer<BaseRow> {

	@Override
	public BaseRow copy(BaseRow from) {
		if (from.getArity() != types.length) {
			throw new IllegalArgumentException("Row arity: " + from.getArity() +
					", but serializer arity: " + types.length);
		}
		if (from instanceof BinaryRow) {
			return ((BinaryRow) from).copy();
		} else {
			return copyBaseRow(from, new GenericRow(from.getArity()));
		}
	}

	public  BaseRowSerializer(ExecutionConfig config, InternalType... types);
	public  BaseRowSerializer(InternalType[] types, TypeSerializer[] fieldSerializers);

}