You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: task.rs
    path of file: ./repos/rust-farm/WebDev/boring-todos/backend/src/web
    
    the code of the file until where you have to start completion: use crate::model::database::Db;
use crate::model::task::{TaskDao, TaskMac};
use crate::security::user_context::UserContext;
use crate::web::utility::{add_auth, add_db, to_json_response};
use std::sync::Arc;
use warp::reply::Json;
use warp::Filter;

// Görevler için REST metotlarını karşılayan router tanımlamalarının ayarlandığı fonksiyon
pub fn task_router(
    base_path: &'static str,
    db: Arc<Db>,
) -> impl Filter<Extract = impl warp::Reply, Error = warp::Rejection> + Clone
    
    async fn should_create_task_and_delete_works() -> Result<()> {
        let db = init().await?;
        let db = Arc::new(db);
        let api = task_router("api", db.clone());

        let body = json!({"title":"Bu görev az sonra kendisini yok edecektir"});

        let response = warp::test::request()
            .method("POST")
            .header("X-Auth-Token", "10101")
            .path("/api/tasks")
            .json(&body)
            .reply(&api)
            .await;

        assert_eq!(response.status(), 200, "Yeni görev ekleme");

        let body = from_utf8(response.body())?;
        let mut body: Value = from_str(body)
            .with_context(|| "Mesaj içeriği JSON formatında ters serileştirilemedi.")?;
        let data = body["data"].take();
        let data: Task = from_value(data)?;
        let path = format!("/api/tasks/{}", data.id);

        let response = warp::test::request()
            .method("DELETE")
            .header("X-Auth-Token", "10101")
            .path(&path)
            .reply(&api)
            .await;

        assert_eq!(
            response.status(),
            200,
            "Görev listesi için HTTP Get çağrımı"
        );

        let body = from_utf8(response.body())?;
        let mut body: Value = from_str(body)
            .with_context(|| "Mesaj içeriği JSON formatında ters serileştirilemedi.")?;
        let deleted_data = body["data"].take();
        let deleted_data: Task = from_value(deleted_data)?;

        assert_eq!(data.id, deleted_data.id, "Tek görev ekleme ve silme");

        Ok(())
    }