# Changelog ## 0.8.0 ### `nsi-core` * `Context::render_control()` now takes `nsi::Action` as fist parameter. This change was made to reflect the fact that the action cannot be omitted. The 2nd parameter is the familiar `Option<&ArgSlice>`. I.e. this: ```rust ctx.render_control(&[nsi::string!("action", "start")]); ``` changes to: ```rust ctx.render_control(nsi::Action::Start, None); ``` * All `Arg` types now implement `Clone`. * `Pointer` & `Pointers` have been deprecated. You should be able to do everything via `Reference` & `Refererences`. * The following types are now `Send` & `Sync`: * Callbacks with static lifetimes (`Callback<'static>`). * References with static lifetimes (`Reference<'static>`). * `Strings` ## 0.7.0 ### `nsi-core` * `Context` is now `Send`, `Sync`, `Copy` & `Clone`. * All `Context` methods that have optional arguments now take `Option<&ArgSlice>` (instead of `&ArgSlice`). I.e. this: ```rust let ctx = nsi::Context::new(&[]).unwrap(); ``` changes to: ```rust let ctx = nsi::Context::new(None).unwrap(); ```