Skip to content

Instantly share code, notes, and snippets.

@NebulaFox
NebulaFox / playground.rs
Last active March 18, 2020 17:16
Vec contains solution
fn contains<T, Q>(arr: &[T], value: &Q) -> bool
where
T: std::cmp::PartialEq<Q>,
{
arr.iter().any(|v| v == value)
}
fn main() {
let array_str = ["a", "b", "c"];
let array_string = ["a".to_string(), "b".to_string(), "c".to_string()];
@NebulaFox
NebulaFox / playground.rs
Last active March 18, 2020 13:56
Deref example
use std::ops::Deref;
use rand; // 0.7.3
use rand::Rng;
#[derive(Debug, PartialEq)]
struct Wrap<T> {
inside: T
}
impl<T> Wrap<T> {
@NebulaFox
NebulaFox / playground.rs
Created March 17, 2020 15:51
how long is a piece of string corecing String
use rand; // 0.7.3
use rand::Rng;
fn make_a_string() -> String {
let mut s = String::new();
s.push_str("Hello World");
let mut rng = rand::thread_rng();
let r = rng.gen_range(0, 100);
for _ in 0..r {
@NebulaFox
NebulaFox / playground.rs
Last active March 17, 2020 15:55
move semantic
use rand; // 0.7.3
use rand::Rng;
fn make_a_string_with(string: &str) -> String {
let mut s = String::new();
s.push_str(string);
let mut rng = rand::thread_rng();
let r = rng.gen_range(0, 100);
for _ in 0..r {
@NebulaFox
NebulaFox / playground.rs
Last active March 19, 2020 19:36
trait magic
use rand; // 0.7.3
use rand::Rng;
fn make_a_string_with(string: &str) -> String {
let mut s = String::new();
s.push_str(string);
let mut rng = rand::thread_rng();
let r = rng.gen_range(0, 100);
for _ in 0..r {
@NebulaFox
NebulaFox / playground.rs
Last active March 17, 2020 13:54
How long is a piece of string with make a string with another string
use rand; // 0.7.3
use rand::Rng;
fn make_a_string_with(string: &str) -> String {
let mut s = String::new();
s.push_str(string);
let mut rng = rand::thread_rng();
let r = rng.gen_range(0, 100);
for _ in 0..r {
@NebulaFox
NebulaFox / playground.rs
Last active March 17, 2020 15:41
How long is a piece of string with make a string
use rand; // 0.7.3
use rand::Rng;
fn make_a_string() -> String {
let mut s = String::new();
s.push_str("Hello World");
let mut rng = rand::thread_rng();
let r = rng.gen_range(0, 100);
for _ in 0..r {
@NebulaFox
NebulaFox / playground.rs
Last active March 16, 2020 15:52
HashSet<&String> to be coerced into HashSet<&str>
use std::collections::HashSet;
fn main() {
// move strings into HashSet
let known_values: HashSet<&str> = ["a", "b", "c"]
.iter().cloned().collect();
// provided an Vec<String>
let provided_values: Vec<String> = vec![
use std::collections::HashSet;
#[derive(Debug)]
enum Check<'a> {
Known(&'a str),
Duplicate(&'a str),
Missing(&'a str),
Unknown(&'a str)
}
use std::collections::HashSet;
use std::rc::Rc;
#[derive(Debug)]
enum Check {
Known(Rc<String>),
Duplicate(Rc<String>),
Missing(Rc<String>),
Unknown(Rc<String>)