rsdns 0.23.0

DNS Client Library
Documentation
macro_rules! question_check_no_questions {
    ($self:ident) => {
        if $self.section_tracker.questions_left() == 0 {
            $self.done = true;
            return Err(Error::ReaderDone);
        }
    };
}

macro_rules! question_check_single_question {
    ($self:ident) => {
        if $self.section_tracker.questions_left() != 1 {
            $self.done = true;
            return Err(Error::BadQuestionsCount(
                $self.section_tracker.questions_left(),
            ));
        }
    };
}

macro_rules! question {
    ($self:ident, $check:ident) => {{
        if $self.done {
            return Err(Error::ReaderDone);
        }

        $check!($self);

        let res = $self.cursor.read();
        if res.is_ok() {
            $self.section_tracker.question_read($self.cursor.pos());
        } else {
            $self.done = true;
        }

        res
    }};
}