About to rip things apart.
parent
2e001aa3f5
commit
0e17f0ff09
61
src/main.rs
61
src/main.rs
|
@ -1,4 +1,4 @@
|
|||
use axum::{error_handling::HandleErrorLayer, routing::get, Router};
|
||||
use axum::{extract::{Query, Path}, error_handling::HandleErrorLayer, routing::get, Router};
|
||||
use clap::{Arg};
|
||||
use std::{net::SocketAddr, time::Duration, error::Error, collections::VecDeque, sync::Arc};
|
||||
use tower::ServiceBuilder;
|
||||
|
@ -12,17 +12,61 @@ struct DumbQueue<'a> {
|
|||
queue_map : DashMap<&'a str, usize>,
|
||||
queues : Vec<VecDeque<&'a str>>,
|
||||
current_queue : usize,
|
||||
router: Router,
|
||||
|
||||
time_out: usize,
|
||||
con_limit: usize,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct KVSet {
|
||||
opt: String,
|
||||
name: String,
|
||||
data: Option<String>,
|
||||
num: Option<i32>,
|
||||
}
|
||||
|
||||
|
||||
async fn write_request(kind: &str) -> String {
|
||||
println!("request {}", kind);
|
||||
String::from(format!("request {}", kind))
|
||||
}
|
||||
|
||||
|
||||
async fn handle_get(Query(args): Query<KVSet>) -> Result<String, StatusCode> {
|
||||
let res = match &args.opt[..] {
|
||||
"get" => Ok(write_request("get").await),
|
||||
"put" => Ok(write_request("put").await),
|
||||
"status" => Ok(write_request("status").await),
|
||||
"reset" => Ok(write_request("reset").await),
|
||||
_ => Ok(String::from("bad request")),
|
||||
};
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
async fn get_by_id(Path(id): Path<String>) {
|
||||
|
||||
}
|
||||
|
||||
impl <'a> DumbQueue<'a> {
|
||||
fn new() -> Self {
|
||||
fn new(timeout: usize, concurrency_limit: usize) -> Self {
|
||||
return DumbQueue {
|
||||
queue_map: DashMap::new(),
|
||||
queues: vec!(),
|
||||
current_queue: 0,
|
||||
|
||||
router: Router::new()
|
||||
.route("/:id", get(get_by_id)),
|
||||
|
||||
|
||||
time_out: timeout,
|
||||
con_limit: concurrency_limit,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fn push_back(&mut self, key: &'a str, val: &'a str) {
|
||||
let val_key = key;
|
||||
let value = val;
|
||||
|
@ -61,18 +105,7 @@ impl <'a> DumbQueue<'a> {
|
|||
fn main() {
|
||||
let mut queue = DumbQueue::new();
|
||||
|
||||
println!("Push value...");
|
||||
let _ = queue.push_back(&"/what", "the fuck?");
|
||||
let _ = queue.push_back(&"/foo", "bar...");
|
||||
|
||||
println!("Queue manager thing: {:?}", queue);
|
||||
|
||||
println!("Pop value...");
|
||||
let popped = queue.pop_front("/what");
|
||||
println!("{:?}", popped);
|
||||
|
||||
let _ = queue.push_back(&"/foo", "baz...");
|
||||
|
||||
|
||||
|
||||
println!("{:?}", queue);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue