About to rip things apart.

main
Sean McArde 2023-11-21 08:47:16 -08:00
parent 2e001aa3f5
commit 0e17f0ff09
1 changed files with 47 additions and 14 deletions

View File

@ -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);
}