wip...
parent
15a3f8430a
commit
eee0bf5e65
40
src/main.rs
40
src/main.rs
|
|
@ -14,7 +14,7 @@ struct Flags {
|
|||
#[arg(long, default_value = "8")]
|
||||
threads: i32,
|
||||
|
||||
#[arg(long, default_value = "1.0")]
|
||||
#[arg(long, default_value = "2.0")]
|
||||
stream_retain: f32,
|
||||
#[arg(long, default_value = "5")]
|
||||
stream_step: u64,
|
||||
|
|
@ -180,12 +180,12 @@ struct AWhisper {
|
|||
ack: Option<std::sync::mpsc::SyncSender<bool>>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
#[derive(Clone, Debug)]
|
||||
struct Whispered {
|
||||
data: Vec<AWhispered>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
#[derive(Clone, Debug)]
|
||||
struct AWhispered {
|
||||
data: String,
|
||||
offset: i64,
|
||||
|
|
@ -205,7 +205,7 @@ fn new_a_whispered(data: String, start: i64, stop: i64) -> AWhispered {
|
|||
}
|
||||
|
||||
impl Whispered {
|
||||
fn as_string(&self) -> String {
|
||||
fn to_string(&self) -> String {
|
||||
let mut result = "".to_string();
|
||||
for i in 0..self.data.len() {
|
||||
result = format!("{} {}", result, &self.data[i].data);
|
||||
|
|
@ -213,21 +213,25 @@ impl Whispered {
|
|||
result
|
||||
}
|
||||
|
||||
fn before(&self, t: &f32) -> Whispered {
|
||||
let mut result = new_whispered();
|
||||
let end = self.data.iter().map(|x| x.offset + x.length).max().unwrap();
|
||||
let t = (end as f32) - *t;
|
||||
self.data
|
||||
.iter()
|
||||
.filter(|x| ((x.offset + x.length) as f32) <= t)
|
||||
.for_each(|x| result.data.push(x.clone()));
|
||||
eprintln!("before {}: {:?} => {:?}", t, &self.data, &result.data);
|
||||
result
|
||||
}
|
||||
|
||||
fn after(&self, t: &f32) -> Whispered {
|
||||
let mut result = new_whispered();
|
||||
self.data
|
||||
.iter()
|
||||
.filter(|x| x.offset as f32 > *t)
|
||||
.for_each(|x| result.data.push(x.clone()));
|
||||
result
|
||||
}
|
||||
|
||||
fn before(&self, t: &f32) -> Whispered {
|
||||
let mut result = new_whispered();
|
||||
self.data
|
||||
.iter()
|
||||
.filter(|x| ((x.offset + x.length) as f32) < *t)
|
||||
.filter(|x| x.offset as f32 >= *t)
|
||||
.for_each(|x| result.data.push(x.clone()));
|
||||
eprintln!("after {}: {:?} => {:?}", t, &self.data, &result.data);
|
||||
result
|
||||
}
|
||||
|
||||
|
|
@ -243,8 +247,12 @@ struct Handler {
|
|||
|
||||
impl Handler {
|
||||
fn on_success(&self, result: Whispered) {
|
||||
eprintln!("{}", chrono::Local::now());
|
||||
println!("{}", result.after(&self.head).before(&self.tail).as_string());
|
||||
eprintln!("{}: {:?}", chrono::Local::now(), &result);
|
||||
println!("{}", result
|
||||
.after(&(self.head * 100.0))
|
||||
.before(&(self.tail * 100.0))
|
||||
.to_string(),
|
||||
);
|
||||
}
|
||||
fn on_error(&self, msg: String) {
|
||||
eprintln!("error: {}", msg);
|
||||
|
|
|
|||
Loading…
Reference in New Issue