using System;
using Ringtoets.Piping.IO.Exceptions;
namespace Ringtoets.Piping.IO.SoilProfile
{
internal interface IRowBasedReader
{
///
/// Moves the reader to the next record in the database.
///
void MoveNext();
///
/// Reads a value at column from the database.
///
/// The expected type of value in the column with name .
/// The name of the column to read from.
/// The read value from the column with name .
/// Thrown when the value in the column was not of type .
T Read(string columnName);
///
/// Reads the value in the column with name from the
/// current row that's being pointed at.
///
/// The type of object to read.
/// The name of the column to read from.
/// The value in the column, or null if the value was .
/// Thrown when the value in the column could not be casted to type .
T? ReadOrNull(string columnName) where T : struct;
}
}