aboutsummaryrefslogtreecommitdiffstats
path: root/examples/scope.rs
diff options
context:
space:
mode:
authorBrian Cully <bjc@kublai.com>2019-08-06 16:31:34 -0400
committerBrian Cully <bjc@kublai.com>2019-08-06 16:31:34 -0400
commit392239c7f522acb7ca5847a48dd9ab2480242924 (patch)
treeb02f1f568085ae1dcb3c33c780d49a8d1a77a2eb /examples/scope.rs
parentb0c6c4f9a45cf2b965acd3d10499e9df54929b36 (diff)
downloadclint-392239c7f522acb7ca5847a48dd9ab2480242924.tar.gz
clint-392239c7f522acb7ca5847a48dd9ab2480242924.zip
Add compatibilty with rust-stable.
* Add feature flag for const-fn functionality, which simplifies some things and lets this crate run on architectures where atomic CAS isn't available (e.g., thumbv6). * Remove `const fn` where necessary to compile under rust-stable. * BREAKING CHANGE - Change signature of `Handler::replace` to take a mutable borrow. This is required because the underlying type is now a NonNull, which needs `mut`. The old behavior was never desired, but a consequence of trying to avoid `Option` by using a default handler. * Use lazy_static crate for initialization of Handler/HandlerArray. * Specify Sync for Handler. This is not amazing, since it isn't, but it's necessary for initialization in static contexts inside `lazy_static`. This should be fine, because any actual manipulation of the handler is done in unsafe functions.
Diffstat (limited to 'examples/scope.rs')
-rw-r--r--examples/scope.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/examples/scope.rs b/examples/scope.rs
index cd17570..8df0702 100644
--- a/examples/scope.rs
+++ b/examples/scope.rs
@@ -1,6 +1,11 @@
use clint::HandlerArray;
-static HANDLERS: HandlerArray = HandlerArray::new();
+#[macro_use]
+extern crate lazy_static;
+
+lazy_static! {
+ static ref HANDLERS: HandlerArray<'static> = HandlerArray::new();
+}
fn main() {
let mut cl = || println!("whoa!");