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