Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
// date: 2020-01-10
// license: GPLv3 https://www.gnu.org/licenses/gpl-3.0.txt
// author: nanpuyue <nanpuyue@gmail.com> https://blog.nanpuyue.com
#![feature(generators)]
#![feature(generator_trait)]
use std::ops::{Generator, GeneratorState};
use std::pin::Pin;
struct GeneratorIter<T: Generator + Unpin>(T);
impl<T: Generator + Unpin> Iterator for GeneratorIter<T> {
type Item = <T as Generator>::Yield;
fn next(&mut self) -> Option<Self::Item> {
match Pin::new(&mut self.0).resume(()) {
GeneratorState::Yielded(x) => Some(x),
_ => None
}
}
}
fn prime_generator() -> impl Generator<Yield=u16, Return=()> {
|| {
yield 2;
yield 3;
let mut l = vec![3];
let mut n = 5u16;
loop {
for &i in &l {
let (q, r) = (n / i, n % i);
if i > q {
l.push(n);
yield n;
break;
} else if r == 0 {
break;
}
}
n = n.wrapping_add(2);
}
}
}
fn sha2_constant(root: f64) -> u32 {
(root.fract() * (1u64 << 32) as f64) as u32
}
fn main() {
for v in GeneratorIter(prime_generator()).take(8) {
print!("{:#010x}, ", sha2_constant((v as f64).sqrt()));
}
println!("\n");
for (i, v) in GeneratorIter(prime_generator()).take(64).enumerate() {
print!("{:#010x}, ", sha2_constant((v as f64).cbrt()));
if i % 8 == 7 {
println!();
}
}
}
@nanpuyue
Copy link
Author

nanpuyue commented Jan 10, 2020

0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, 

0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, 

Loading

@wtfiwinomgs
Copy link

wtfiwinomgs commented Jun 4, 2020

hey, is it possible to work with firefox's css thing to combine titlebar and menubar instead of hiding title bar all together?

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment