mirror of
https://github.com/balkian/experiments.git
synced 2024-12-21 21:48:13 +00:00
first commit
This commit is contained in:
commit
3e0dc9f01f
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
target
|
||||
.*
|
||||
build
|
1712
rust/actix/Cargo.lock
generated
Normal file
1712
rust/actix/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
13
rust/actix/Cargo.toml
Normal file
13
rust/actix/Cargo.toml
Normal file
@ -0,0 +1,13 @@
|
||||
[package]
|
||||
name = "actixtest"
|
||||
version = "0.1.0"
|
||||
authors = ["J. Fernando Sánchez <balkian@gmail.com>"]
|
||||
edition = "2018"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
actix-web = "1.0.9"
|
||||
actix-service = "0.4.2"
|
||||
futures = "0.1.29"
|
||||
#actix-http = "1.0.0"
|
20
rust/actix/src/main-old.rs
Normal file
20
rust/actix/src/main-old.rs
Normal file
@ -0,0 +1,20 @@
|
||||
use futures::future::Future;
|
||||
use actix_service::Service;
|
||||
use actix_web::{web, App};
|
||||
use actix_web::http::{header::CONTENT_TYPE, HeaderValue};
|
||||
|
||||
|
||||
fn main() {
|
||||
let app = App::new()
|
||||
.wrap_fn(|req, srv|
|
||||
srv.call(req).map(|mut res| {
|
||||
res.headers_mut().insert(
|
||||
CONTENT_TYPE, HeaderValue::from_static("text/plain"),
|
||||
);
|
||||
res
|
||||
}))
|
||||
.route(
|
||||
"/index.html",
|
||||
web::get().to(|| "Hello, middleware!"),
|
||||
);
|
||||
}
|
45
rust/actix/src/main.rs
Normal file
45
rust/actix/src/main.rs
Normal file
@ -0,0 +1,45 @@
|
||||
use futures::future::Future;
|
||||
use actix_service::{Service};
|
||||
use actix_web::{web, App, HttpRequest, HttpServer, Responder};
|
||||
use actix_web::http::{header::CONTENT_TYPE, HeaderValue};
|
||||
|
||||
|
||||
fn greet(req: HttpRequest) -> impl Responder {
|
||||
let name = req.match_info().get("name").unwrap_or("World");
|
||||
format!("Hello {}!", &name)
|
||||
|
||||
}
|
||||
|
||||
fn p404(req: HttpRequest) -> impl Responder {
|
||||
println!("{:?}", req);
|
||||
actix_web::HttpResponse::NotFound()
|
||||
.content_type("text/plain")
|
||||
.body("Thou shall not pass")
|
||||
|
||||
}
|
||||
|
||||
|
||||
fn main() {
|
||||
HttpServer::new(|| {
|
||||
App::new()
|
||||
.route("/", web::get().to(greet))
|
||||
.route("/{name}", web::get().to(greet))
|
||||
.default_service(
|
||||
web::route().to(p404))
|
||||
.wrap_fn(|req, srv| {
|
||||
println!("{:?}", req);
|
||||
srv.call(req).map(|mut res| {
|
||||
res.headers_mut().insert(
|
||||
CONTENT_TYPE,
|
||||
HeaderValue::from_static("0001"),
|
||||
);
|
||||
res
|
||||
})
|
||||
})
|
||||
})
|
||||
.bind("127.0.0.1:8000")
|
||||
.expect("Can not bind to port 8000")
|
||||
.run()
|
||||
.unwrap();
|
||||
|
||||
}
|
29
rust/balance-strings.rs
Executable file
29
rust/balance-strings.rs
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/env cargo-play
|
||||
fn balanced(s: &str) -> bool {
|
||||
let mut buffer: String = String::new();
|
||||
for c in s.chars() {
|
||||
// dbg!{&buffer};
|
||||
match c {
|
||||
'(' | '[' | '{' => buffer.push(c),
|
||||
')' | ']' | '}' =>
|
||||
match (c, buffer.chars().last()) {
|
||||
(']', Some('[')) | (')', Some('(')) | ('}', Some('{')) => {buffer.pop();},
|
||||
_ => return false,
|
||||
},
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
buffer.is_empty()
|
||||
}
|
||||
fn main() {
|
||||
dbg! {balanced(")(")};
|
||||
dbg! {balanced("({)}")};
|
||||
dbg! {balanced("()")};
|
||||
|
||||
dbg! {balanced("{}")};
|
||||
dbg! {balanced("{()}")};
|
||||
dbg! {balanced("({})")};
|
||||
dbg! {balanced("(())()")};
|
||||
dbg! {balanced("((abc)())")};
|
||||
dbg! {balanced("((abc)()")};
|
||||
}
|
26
rust/implicit-call.rs
Normal file
26
rust/implicit-call.rs
Normal file
@ -0,0 +1,26 @@
|
||||
use std::fmt::Debug;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Prueba1<'a>(&'a str);
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Prueba2(usize);
|
||||
|
||||
trait GreetTrait: Debug {
|
||||
fn greet(&self);
|
||||
}
|
||||
|
||||
impl<T> GreetTrait for T
|
||||
where T: Debug {
|
||||
fn greet(&self){
|
||||
println!("{:?}", self);
|
||||
}
|
||||
}
|
||||
|
||||
fn main(){
|
||||
let p1 = Prueba1("hello");
|
||||
let p2 = Prueba2(5);
|
||||
|
||||
p1.greet();
|
||||
p2.greet();
|
||||
}
|
Loading…
Reference in New Issue
Block a user