namespace MsgReader.Mime.Traverse
{
///
/// This interface describes a MessageTraverser which is able to traverse a Message structure
/// and deliver some answer given some question.
///
/// This is the type of the answer you want to have delivered.
/// This is the type of the question you want to have answered.
public interface IQuestionAnswerMessageTraverser
{
///
/// Call this when you want to apply this traverser on a .
///
/// The which you want to traverse. Must not be .
/// The question
/// An answer
TAnswer VisitMessage(Message message, TQuestion question);
///
/// Call this when you want to apply this traverser on a .
///
/// The which you want to traverse. Must not be .
/// The question
/// An answer
TAnswer VisitMessagePart(MessagePart messagePart, TQuestion question);
}
}