Sha256: 252b82233c31d15a29a0d185db03d38fc94bbd7e995d26b06da72a5d088f4eb3

Contents?: true

Size: 426 Bytes

Versions: 38

Compression:

Stored size: 426 Bytes

Contents

use crate::ast::{Id, Span};
use std::cell::Cell;

thread_local!(static NEXT: Cell<u32> = Cell::new(0));

pub fn reset() {
    NEXT.with(|c| c.set(0));
}

pub fn gen(span: Span) -> Id<'static> {
    NEXT.with(|next| {
        let gen = next.get() + 1;
        next.set(gen);
        Id::gensym(span, gen)
    })
}

pub fn fill<'a>(span: Span, slot: &mut Option<Id<'a>>) -> Id<'a> {
    *slot.get_or_insert_with(|| gen(span))
}

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-28.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-27.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-26.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-25.0.2 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-25.0.1 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-25.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-24.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-23.0.2 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-22.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-21.0.1 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-20.0.2 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-20.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-18.0.3 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-17.0.1 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-17.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-16.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-15.0.1 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-15.0.0 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs
wasmtime-14.0.4 ./ext/cargo-vendor/wast-35.0.2/src/resolve/gensym.rs