Skip to content

Instantly share code, notes, and snippets.

@ArtemGr
ArtemGr / simple-create-process.rs
Created August 12, 2016 17:07
BashOnWindows issue 861 - workaround
extern crate kernel32;
extern crate winapi;
use kernel32::{CreateProcessA, WaitForSingleObject, CloseHandle};
use winapi::{LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPSTARTUPINFOA,
LPPROCESS_INFORMATION, PROCESS_INFORMATION, STARTUPINFOA};
use winapi::winbase::INFINITE;
use std::ptr::null_mut;
use std::mem::size_of;
fn main() {
@ArtemGr
ArtemGr / output.txt
Created August 12, 2016 12:55
BashOnWindows issue 861
C:\Users\Artemciy\Downloads>test_bash_bat.exe
Output {
status: ExitStatus(ExitStatus(0)),
stdout: "\r\nC:\\Users\\Artemciy\\Downloads>echo foo \r\nfoo\r\n\r\nC:\\Users\\Artemciy\\Downloads>bash --help \r\n\u{1e}\u{4}H\u{4}8\u{4}1\u{4}:\u{4}0\u{4}:\u{0} \u{0}0\u{0}x\u{0}8\u{0}0\u{0}0\u{0}7\u{0}0\u{0}0\u{0}0\u{0}6\u{0}\r\u{0}\r\u{0}\n\u{0}\r\nC:\\Users\\Artemciy\\Downloads>echo bar \r\nbar\r\n",
stderr: "" }
// [build] rustc -O bench_iterators.rs --test
// [build] ./bench_iterators.exe --bench
#![feature(test)]
extern crate test;
use test::{Bencher, black_box};
#[bench]
fn construction_only(b: &mut Bencher) {
let foo = String::from("foo");
@ArtemGr
ArtemGr / Keys.java
Last active February 9, 2016 09:17
Merge experiments
package test;
import java.util.ArrayList;
import java.util.Random;
public class Keys implements Comparable<Keys> {
private final int[] keys;
public Keys(final int[] keys) {
this.keys = keys;
@ArtemGr
ArtemGr / pcre-jit.rs
Last active April 6, 2021 21:03
Example using JIT-compiled PCRE expressions from Rust.
pub struct PcreJit {
pub re: Mutex<pcre::Pcre>,
/// Map from a capturing group name to its number.
/// `None` if no named capturing groups found or if the `auto_capture` option is given to `PcreJit::new`.
pub names: Option<BTreeMap<String, Vec<usize>>>}
unsafe impl Sync for PcreJit {}
unsafe impl Send for PcreJit {}
impl PcreJit {
/// JIT-compiles the regular expression.
///
@ArtemGr
ArtemGr / gstring.rs
Last active October 27, 2015 10:55
gstring - Rust macros to make strings on stack
/// A helper to build a string on the stack.
///
/// Given an array it makes a writeable cursor available to the passed code block.
///
/// Returns a &str slice pointing at memory between the array start and the cursor.
///
/// Example:
///
/// use std::io::Write;
/// let mut foobar: [u8; 128] = unsafe {std::mem::uninitialized()};
INFO:cargo::ops::cargo_rustc::fingerprint: fingerprint at: /tmp/yup-oauth2/target/debug/.fingerprint/yup-oauth2-f648bac97266aa1c/lib-yup-oauth2
DEBUG:cargo::ops::cargo_rustc::fingerprint: extra Target { kind: Lib([Lib]), name: "yup-oauth2", src_path: "/tmp/yup-oauth2/src/lib.rs", metadata: Some(Metadata { metadata: "f648bac97266aa1c", extra_filename: "-f648bac97266aa1c" }), tested: true, benched: true, doc: true, doctest: true, harness: true, for_host: false } Profile { opt_level: 0, lto: false, codegen_units: None, rustc_args: None, debuginfo: true, debug_assertions: true, rpath: false, test: false, doc: false } None = def601c33e56949f
DEBUG:cargo::ops::cargo_rustc::fingerprint: extra Target { kind: Lib([Dylib]), name: "serde_macros", src_path: "/root/.cargo/registry/src/github.com-1ecc6299db9ec823/serde_macros-0.4.0/src/lib.rs", metadata: Some(Metadata { metadata: "a56f347bda653264", extra_filename: "-a56f347bda653264" }), tested: true, benched: true, doc: true, doctest: false, harness: true, for_host: true
#![feature(scoped_tls)]
#[macro_use] extern crate nickel;
use nickel::Nickel;
use nickel::router::http_router::HttpRouter;
use nickel::ResponseFinalizer;
struct MyObject;
impl MyObject {
@ArtemGr
ArtemGr / icu.rs
Created January 25, 2015 21:05
Partial ICU bindings for Rust
pub mod ICU {
// --- Hand-made ICU bindings ---
// $ apt-get install -y libicu-dev
// To check the argument types:
// $ apt-get install -y libicu52-dbg
// $ cd /usr/lib/x86_64-linux-gnu && gdb libicui18n.so
// ) print utrans_open_52
// ) ptype UChar
// ) ptype UParseError
@ArtemGr
ArtemGr / Cargo.toml
Created January 18, 2015 20:43
Test case for json_macros bug
[package]
name = "err"
version = "0.0.1"
authors = ["ArtemGr"]
[[bin]]
name = "test"
path = "test.rs"
[dependencies]