dt_status_t dt_compare_intervals()

in src/dt.c [270:294]


dt_status_t dt_compare_intervals(const dt_interval_t *lhs, const dt_interval_t *rhs, dt_compare_result_t *result)
{
    if (dt_validate_interval(lhs) == DT_FALSE || dt_validate_interval(rhs) == DT_FALSE || !result) {
        return DT_INVALID_ARGUMENT;
    }

    if (lhs->seconds > rhs->seconds) {
        *result = DT_GREATER;
        return DT_OK;
    }
    if (lhs->seconds < rhs->seconds) {
        *result = DT_LESSER;
        return DT_OK;
    }
    if (lhs->nano_seconds > rhs->nano_seconds) {
        *result = DT_GREATER;
        return DT_OK;
    }
    if (lhs->nano_seconds < rhs->nano_seconds) {
        *result = DT_LESSER;
        return DT_OK;
    }
    *result = DT_EQUALS;
    return DT_OK;
}