mirror of
				https://github.com/balkian/experiments.git
				synced 2025-10-30 23:28:24 +00:00 
			
		
		
		
	first commit
This commit is contained in:
		
							
								
								
									
										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(); | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user