rjango 0.1.1

A full-stack Rust backend framework inspired by Django
Documentation
pub fn get_mod_func(callback: &str) -> (&str, &str) {
    callback.rsplit_once('.').unwrap_or(("", callback))
}

pub fn get_callable(view: &str) -> Result<String, String> {
    if view.is_empty() {
        Err("empty view".into())
    } else {
        Ok(view.into())
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn get_mod_func_splits_module_and_function() {
        assert_eq!(get_mod_func("app.views.index"), ("app.views", "index"));
    }

    #[test]
    fn get_mod_func_returns_empty_module_when_missing_separator() {
        assert_eq!(get_mod_func("index"), ("", "index"));
    }

    #[test]
    fn get_callable_rejects_empty_views() {
        assert_eq!(get_callable(""), Err("empty view".to_string()));
    }

    #[test]
    fn get_callable_returns_view_name_for_non_empty_input() {
        assert_eq!(
            get_callable("app.views.index"),
            Ok("app.views.index".to_string())
        );
    }
}