use actix_web::guard::Guard;
use rudi::{Context, Singleton, Transient};
use serde::{Deserialize, Serialize};
#[Singleton(name = "prod")]
fn prod_config() -> String {
"production_url".to_string()
}
#[Singleton(name = "dev")]
fn dev_config() -> String {
"development_url".to_string()
}
#[Singleton]
fn provide_answeri232() -> i32 {
0
}
#[Singleton]
fn provide_answerStr() -> String {
String::from("")
}
#[Singleton]
fn provide_answeri64() -> i64 {
0
}
#[Transient]
#[derive(Serialize, Deserialize, Debug, Clone)]
struct User {
id: i64,
name: String,
}
impl User {
pub fn new(id: i64, name: String) -> Self {
Self { id, name }
}
pub fn set_name(&mut self, name: String) {
self.name = name;
}
}
#[test]
fn test_001_di_single() {
let mut cx = Context::auto_register();
let prod_url: String = cx.resolve_with_name::<String>("prod");
let dev_url: String = cx.resolve_with_name::<String>("dev");
println!("Prod: {}, Dev: {}", prod_url, dev_url);
}
#[test]
fn test_002_di_single() {
let mut cx = Context::auto_register();
let u: User = cx.resolve::<User>();
println!("Prod: {:?} ", u);
}
use ruwebframe::rubase::rutils::{fileutils, idseq};
use ruwebframe::rulog::rulog;
#[test]
fn test_005_di_single() {
let mut cx = Context::auto_register();
let seq = cx.resolve::<idseq::IdSeq>();
println!("Prod id: {} ", idseq::IdSeq::next_id());
rulog::info(idseq::IdSeq::next_id().to_string().as_str());
let mut u = cx.resolve::<pageresult::PageResult>();
println!("Prod id: {} ", u );
}
use std::fs;
fn list_files(dir: &str) -> std::io::Result<Vec<std::path::PathBuf>> {
let mut files = Vec::new();
for entry in fs::read_dir(dir)? {
let entry = entry?;
let path = entry.path();
if path.is_file() {
files.push(path);
}
}
Ok(files)
}
fn f() -> std::io::Result<()> {
for f in list_files(".")? {
println!("{}", f.display());
}
Ok(())
}
#[test]
fn test_006_di_single() {
f();
}
use walkdir::WalkDir;
use ruwebframe::rupage::page::pageresult;
fn list_all_files(dir: &str) -> Vec<std::path::PathBuf> {
WalkDir::new(dir)
.into_iter()
.filter_map(|e| e.ok())
.filter(|e| e.file_type().is_file())
.map(|e| e.path().to_path_buf())
.collect()
}
#[test]
fn test_007_list_all_files() {
for f in list_all_files("./src") {
if f.extension().and_then(|s| s.to_str()) == Some("rs") {
println!("{}", f.display());
}
}
}
#[test]
fn test_008_list_all_files() {
for f in fileutils::list_all_files("./src") {
println!("{}", f.display());
}
}
#[test]
fn test_009_di_single() {
rulog::info(idseq::IdSeq::next_id().to_string().as_str());
rulog::info(1.to_string().as_str());
}
#[test]
fn test_011_di_single() {
let ret=fileutils::read_file("./commit.bat");
rulog::info(ret.unwrap().as_str());
}
#[test]
fn test_012_di_single() {
let ret=fileutils::read_file("./tests/ruconfig_test");
rulog::info(ret.unwrap().as_str());
}