summaryrefslogtreecommitdiffstats
path: root/third_party/rust/neqo-crypto/src/once.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /third_party/rust/neqo-crypto/src/once.rs
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-adbda400be353e676059e335c3c0aaf99e719475.tar.xz
firefox-adbda400be353e676059e335c3c0aaf99e719475.zip
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/neqo-crypto/src/once.rs')
-rw-r--r--third_party/rust/neqo-crypto/src/once.rs44
1 files changed, 0 insertions, 44 deletions
diff --git a/third_party/rust/neqo-crypto/src/once.rs b/third_party/rust/neqo-crypto/src/once.rs
deleted file mode 100644
index 80657cfe26..0000000000
--- a/third_party/rust/neqo-crypto/src/once.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-use std::sync::Once;
-
-#[allow(clippy::module_name_repetitions)]
-pub struct OnceResult<T> {
- once: Once,
- v: Option<T>,
-}
-
-impl<T> OnceResult<T> {
- #[must_use]
- pub const fn new() -> Self {
- Self {
- once: Once::new(),
- v: None,
- }
- }
-
- pub fn call_once<F: FnOnce() -> T>(&mut self, f: F) -> &T {
- let v = &mut self.v;
- self.once.call_once(|| {
- *v = Some(f());
- });
- self.v.as_ref().unwrap()
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::OnceResult;
-
- static mut STATIC_ONCE_RESULT: OnceResult<u64> = OnceResult::new();
-
- #[test]
- fn static_update() {
- assert_eq!(*unsafe { STATIC_ONCE_RESULT.call_once(|| 23) }, 23);
- assert_eq!(*unsafe { STATIC_ONCE_RESULT.call_once(|| 24) }, 23);
- }
-}