Skip to content

Instantly share code, notes, and snippets.

@nanpuyue
Last active June 4, 2020 00:06
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

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, 

@wtfiwinomgs
Copy link

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

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