summaryrefslogtreecommitdiff
path: root/graph-checker/src/main.rs
diff options
context:
space:
mode:
authorAndrew Guschin <guschin@altlinux.org>2024-09-11 18:12:42 +0400
committerAndrew Guschin <guschin@altlinux.org>2024-09-11 18:12:42 +0400
commit67b2ce202097c4ce0db3ea81df775405608d527f (patch)
tree636c0526df705597acc00b48a411307e8480d0e2 /graph-checker/src/main.rs
parentb9796c72d952517e866f729691389723fa381bc0 (diff)
wip: add egui
Diffstat (limited to 'graph-checker/src/main.rs')
-rw-r--r--graph-checker/src/main.rs76
1 files changed, 46 insertions, 30 deletions
diff --git a/graph-checker/src/main.rs b/graph-checker/src/main.rs
index a62143c..e73b23b 100644
--- a/graph-checker/src/main.rs
+++ b/graph-checker/src/main.rs
@@ -1,6 +1,6 @@
// use std::io::{self, BufRead};
use rayon::prelude::*;
-use sqlx::migrate::MigrateDatabase;
+use sqlx::{migrate::MigrateDatabase, Pool, Sqlite};
// use std::sync::{Arc, Mutex};
use std::time::Instant;
use tokio;
@@ -16,41 +16,55 @@ use crate::geng::GengIterator;
mod compute;
-#[tokio::main]
-async fn main() -> Result<(), sqlx::Error> {
+mod gui;
+
+fn main() -> Result<(), sqlx::Error> {
dotenv::dotenv().ok();
- let database_url =
- std::env::var("DATABASE_URL").expect("Expected DATABASE_URL in env");
- if !sqlx::Sqlite::database_exists(&database_url).await? {
- sqlx::Sqlite::create_database(&database_url).await?;
- }
- let db = sqlx::SqlitePool::connect(&database_url).await?;
- let _ = sqlx::query!(
- "CREATE TABLE IF NOT EXISTS graphs (g6 VARCHAR NOT NULL);"
- )
- .execute(&db)
- .await;
- // let mut counters = Arc::new(Mutex::new(Counters::new()));
+ let rt = tokio::runtime::Builder::new_multi_thread()
+ .enable_all()
+ .build()
+ .unwrap();
- // gi.par_bridge().for_each(|_| {});
+ let db = rt.block_on(async {
+ let database_url = std::env::var("DATABASE_URL")
+ .expect("Expected DATABASE_URL in env");
+ if !sqlx::Sqlite::database_exists(&database_url).await? {
+ sqlx::Sqlite::create_database(&database_url).await?;
+ }
+ let db = sqlx::SqlitePool::connect(&database_url).await?;
+ let _ = sqlx::query!(
+ "CREATE TABLE IF NOT EXISTS graphs (g6 VARCHAR NOT NULL);"
+ )
+ .execute(&db)
+ .await;
+ Ok::<Pool<Sqlite>, sqlx::Error>(db)
+ })?;
- let gi = GengIterator::new(9);
+ gui::run_gui(rt);
+ // let gui_task = tokio::spawn(gui::run_gui());
+ println!("next");
- let start = Instant::now();
- let tasks: Vec<_> = gi
- .map(|g| {
- // let db = db.clone();
- tokio::spawn(compute::async_theorems1(g))
- })
- .collect();
+ // let mut counters = Arc::new(Mutex::new(Counters::new()));
- let res = futures::future::join_all(tasks).await;
- let elapsed = start.elapsed();
- let time = elapsed.as_nanos();
- let res = res.iter().map(|e| e.as_ref().unwrap()).collect::<Vec<_>>();
- println!("len = {}", res.len());
- println!("Time elapsed: {}s", time as f64 / 1e9);
+ // gi.par_bridge().for_each(|_| {});
+
+ // let gi = GengIterator::new(7);
+ //
+ // let start = Instant::now();
+ // let tasks: Vec<_> = gi
+ // .map(|g| {
+ // // let db = db.clone();
+ // tokio::spawn(compute::async_theorems1(g))
+ // })
+ // .collect();
+ //
+ // let res = futures::future::join_all(tasks).await;
+ // let elapsed = start.elapsed();
+ // let time = elapsed.as_nanos();
+ // let res = res.iter().map(|e| e.as_ref().unwrap()).collect::<Vec<_>>();
+ // println!("len = {}", res.len());
+ // println!("Time elapsed: {}s", time as f64 / 1e9);
// let start = Instant::now();
// let res = gi
@@ -63,6 +77,8 @@ async fn main() -> Result<(), sqlx::Error> {
// println!("len = {}", res.len());
// println!("Time elapsed: {}s", time as f64 / 1e9);
+ // let _ = gui_task.await;
+
/*
println!("Total count of graphs: {}", counters.graphs);
println!("Count of 1-tough graphs: {}", counters.tough_1);