mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 19:47:38 +00:00
safe transmute: use AtomicU32
State
ids to appease mips
...instead of `AtomicU64`, which is unavailable. ref: https://github.com/rust-lang/rust/pull/92268#issuecomment-1197797990
This commit is contained in:
parent
aee5f31c68
commit
e8a1925b64
@ -1,7 +1,7 @@
|
|||||||
use super::{nfa, Byte, Nfa, Ref};
|
use super::{nfa, Byte, Nfa, Ref};
|
||||||
use crate::Map;
|
use crate::Map;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::sync::atomic::{AtomicU64, Ordering};
|
use std::sync::atomic::{AtomicU32, Ordering};
|
||||||
|
|
||||||
#[derive(PartialEq, Clone, Debug)]
|
#[derive(PartialEq, Clone, Debug)]
|
||||||
pub(crate) struct Dfa<R>
|
pub(crate) struct Dfa<R>
|
||||||
@ -49,7 +49,7 @@ where
|
|||||||
|
|
||||||
/// The states in a `Nfa` represent byte offsets.
|
/// The states in a `Nfa` represent byte offsets.
|
||||||
#[derive(Hash, Eq, PartialEq, PartialOrd, Ord, Copy, Clone)]
|
#[derive(Hash, Eq, PartialEq, PartialOrd, Ord, Copy, Clone)]
|
||||||
pub(crate) struct State(u64);
|
pub(crate) struct State(u32);
|
||||||
|
|
||||||
#[derive(Hash, Eq, PartialEq, Clone, Copy)]
|
#[derive(Hash, Eq, PartialEq, Clone, Copy)]
|
||||||
pub(crate) enum Transition<R>
|
pub(crate) enum Transition<R>
|
||||||
@ -166,7 +166,7 @@ where
|
|||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
pub(crate) fn new() -> Self {
|
pub(crate) fn new() -> Self {
|
||||||
static COUNTER: AtomicU64 = AtomicU64::new(0);
|
static COUNTER: AtomicU32 = AtomicU32::new(0);
|
||||||
Self(COUNTER.fetch_add(1, Ordering::SeqCst))
|
Self(COUNTER.fetch_add(1, Ordering::SeqCst))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use super::{Byte, Ref, Tree, Uninhabited};
|
use super::{Byte, Ref, Tree, Uninhabited};
|
||||||
use crate::{Map, Set};
|
use crate::{Map, Set};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::sync::atomic::{AtomicU64, Ordering};
|
use std::sync::atomic::{AtomicU32, Ordering};
|
||||||
|
|
||||||
/// A non-deterministic finite automaton (NFA) that represents the layout of a type.
|
/// A non-deterministic finite automaton (NFA) that represents the layout of a type.
|
||||||
/// The transmutability of two given types is computed by comparing their `Nfa`s.
|
/// The transmutability of two given types is computed by comparing their `Nfa`s.
|
||||||
@ -17,7 +17,7 @@ where
|
|||||||
|
|
||||||
/// The states in a `Nfa` represent byte offsets.
|
/// The states in a `Nfa` represent byte offsets.
|
||||||
#[derive(Hash, Eq, PartialEq, PartialOrd, Ord, Copy, Clone)]
|
#[derive(Hash, Eq, PartialEq, PartialOrd, Ord, Copy, Clone)]
|
||||||
pub(crate) struct State(u64);
|
pub(crate) struct State(u32);
|
||||||
|
|
||||||
/// The transitions between states in a `Nfa` reflect bit validity.
|
/// The transitions between states in a `Nfa` reflect bit validity.
|
||||||
#[derive(Hash, Eq, PartialEq, Clone, Copy)]
|
#[derive(Hash, Eq, PartialEq, Clone, Copy)]
|
||||||
@ -173,7 +173,7 @@ where
|
|||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
pub(crate) fn new() -> Self {
|
pub(crate) fn new() -> Self {
|
||||||
static COUNTER: AtomicU64 = AtomicU64::new(0);
|
static COUNTER: AtomicU32 = AtomicU32::new(0);
|
||||||
Self(COUNTER.fetch_add(1, Ordering::SeqCst))
|
Self(COUNTER.fetch_add(1, Ordering::SeqCst))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user