let es_humano = true; // boolenano
let es_alienigena: bool = false;
let caracter = 'c'; // carácter
let x = 1; // entero
let primer_arreglo = [1, 2, 3]; // lista de elementos del mismo tipo
let mut segundo_arreglo = [4, 5, 6];
let tupla = (1, "hola", 2.5, 'x'); // lista de elementos de distintos tipos
let a: [i32; 4] = [1, 2, 3, 4]; // arreglo
let e = &a[1..3]; //[2, 3] Slice
let hola = "¡Hola mundo!" // Cadena
let numero_de_jugadores = 7;
if numero_de_jugadores < 5 {
println!("No son suficientes jugadores");
}
else if numero_de_jugadores < 10 {
println!("Tienes suficientes jugadores");
}
else {
println!("Tienes muchos jugadores");
}
[package]
name = "meetup08"
version = "0.1.0"
authors = ["Tu Nombre <tu@correo.com>"]
[dependencies]
rocket = "0.3.3"
rocket_codegen = "0.3.3"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;
#[get("/")]
fn index() -> String {
"It Works!".to_string()
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
[package]
name = "meetup08"
version = "0.1.0"
authors = ["Tu Nombre <tu@correo.com>"]
[dependencies]
rand = "0.3.17"
rocket = "0.3.3"
rocket_codegen = "0.3.3"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rand;
extern crate rocket;
use rand::Rng;
const FRASES: &[&'static str] = &[
"“La fuerza estará ya contigo… siempre.” (Obi-Wan Kenobi a Luke Skywalker en la Estrella de la Muerte. STAR WARS, episodio IV, Una Nueva Esperanza)",
"“Miedo, ira, agresividad, el lado oscuro ellos son. Si algún día rigen tu vida, para siempre tu destino dominarán.” (Yoda a Luke Skywalker. STAR WARS, episodio V, El Imperio Contrataca)",
"“¡Tú siempre con tus “NO PUEDE HACERSE”! ¿Es que escuchándome no estabas?.” (Yoda a Luke Skywalker. STAR WARS, episodio V, El Imperio Contrataca)",
"“Impresionante… ¡Muy impresionante! Controlas tu miedo, Obi-Wan te ha instruido bien…” (Darth Vader a Luke Skywalker, durante el duelo de sables de luz. STAR WARS, episodio V, El Imperio Contrataca)",
];
fn sacar_frase_aleatoria(frases: &[&'static str]) -> &'static str {
let mut generador_aleatorio = rand::thread_rng();
let indice = generador_aleatorio.gen_range(0, FRASES.len());
frases.get(indice).expect("No se pudo obtener una frase")
}
#[get("/")]
fn index() -> String {
let frase = sacar_frase_aleatoria(&FRASES);
frase.to_string()
}
fn main() {
rocket::ignite().mount("/", routes![index]).launch();
}
[package]
name = "meetup08"
version = "0.1.0"
authors = ["Tu Nombre <tu@correo.com>"]
[dependencies]
rand = "0.3.17"
rocket = "0.3.3"
rocket_codegen = "0.3.3"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
[dependencies.rocket_contrib]
version = "0.3.3"
default-features = false
features = ["tera_templates"]
#![feature(plugin, custom_derive)]
...
extern crate rocket_contrib;
#[macro_use]
extern crate serde_derive;
...
use rocket::request::Form;
use rocket_contrib::Template;
...
#[derive(Serialize)]
struct ContextoPlantilla {
frase: String,
nombre: Option<String>,
}
#[get("/")]
fn index() -> Template {
let contexto = ContextoPlantilla {
frase: sacar_frase_aleatoria(&FRASES).to_string(),
nombre: None,
};
Template::render("index", &contexto)
}
#[derive(FromForm)]
struct Formulario {
nombre: String,
}
#[post("/", data = "<formulario>")]
fn index_personalizado(formulario: Form<Formulario>) -> Template {
let form = formulario.get();
let nombre = form.nombre.clone();
let contexto = ContextoPlantilla {
frase: sacar_frase_aleatoria(&FRASES).to_string(),
nombre: Some(nombre),
};
Template::render("index", &contexto)
}
fn main() {
rocket::ignite()
.mount("/", routes![index, index_personalizado])
.attach(Template::fairing())
.launch();
}
}
<h1>{% if nombre %}<strong>{{nombre}}</strong>{% endif %} {{frase}}</h1>
[package]
name = "meetup08"
version = "0.1.0"
authors = ["Tu Nombre <tu@correo.com>"]
[dependencies]
rand = "0.3.17"
rocket = "0.3.3"
rocket_codegen = "0.3.3"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
[dependencies.rocket_contrib]
version = "0.3.3"
default-features = false
features = ["tera_templates", "json"]
...
use rocket_contrib::{Template, Json};
...
#[get("/frases")]
fn api_frases() -> Json<&'static [&'static str]> {
Json(FRASES)
}
...
.mount("/api/v1", routes![api_frases])
...