rustque 1.1.1

this is a fast on disk perstant memeory mapped que for rust it stores Vec<u8> to a file on a disk.
Documentation
use crate::workers::{Signal,debug_error,debug_message};
use tokio::sync::{Notify,Mutex};
use crate::config::{DiskConfig,DiskMessage};
use std::sync::Arc;
use tokio::fs::{File,OpenOptions};
use crate::io::{expand,write_chunk};

const ERROR:bool = true;
const DEBUG:bool = false;

pub async fn init(config:DiskConfig){

    let mut config = config;

    let mut file_builder = OpenOptions::new();
    file_builder.write(true)
    .read(true)
    .create(true);
    let mut file:File;
    match file_builder.open(&config.path).await{
        Ok(f)=>{
            file = f;
        },
        Err(_)=>{
            debug_error("failed-open_file-disk.rs",ERROR);
            return;
        }
    }

    loop{

        let message:DiskMessage;
        match config.receiver.recv_async().await{
            Ok(m)=>{
                message = m;
            },
            Err(_)=>{
                debug_error("failed-receive_message-disk.rs",ERROR);
                break;
            }
        }

        match message{
            DiskMessage::Expand(value)=>{
                handle_expand(&mut config,value,&mut file).await;
            },
            DiskMessage::Add(value)=>{
                handle_add(value,&mut file).await;
            }
        }

    }

}

async fn handle_add(message:(u64,Vec<u8>,Arc<Mutex<Signal>>,Arc<Notify>),file:&mut File){
    debug_message("disk add message received",DEBUG);
    match write_chunk(file, message.0, message.1).await{
        Ok(_)=>{
            Signal::ok(message.2).await;
            debug_message("added to disk",DEBUG);
        },
        Err(_)=>{
            debug_message("failed add to disk",DEBUG);
            debug_error("failed-handle_add-disk.rs",ERROR);
        }
    }
    message.3.notify_waiters();
    debug_message("handle_add notified",DEBUG);
}

async fn handle_expand(config:&mut DiskConfig,message:(Arc<Mutex<Signal>>,Arc<Notify>),file:&mut File){
    match expand(file,&config.frame_size).await{
        Ok(_)=>{
            Signal::ok(message.0).await;
        },
        Err(_)=>{
            debug_error("failed-handle_expand-disk.rs",ERROR);
        }
    }
    message.1.notify_waiters();
}