- Stop rendering widgets when
BBox
is empty - Made sure to pass out
BBox
toRenderer::render_done
method
- Added
Renderer::render_done
method - Adjusted showing and hiding of widgets to no longer change child order in parent
- Sealed
Cap
andMutCap
traits - Added a step building the documentation to CI pipeline
- Switched to using GitHub Actions as CI provider
- Added GitHub Actions workflow for publishing the crate
- Bumped minimum supported Rust version to
1.58
- Removed custom event variants & infrastructure
- Removed
UiEvent
&UnhandledEvent
types - Adjusted event handlers to return a single event only
- Removed event chaining logic
- Converted event hooks to async functions
- Adjusted event hooks to return a single event
- Introduced
Mergeable
trait to combine events emitted from an event hook
- Introduced
- Introduced post-hook support
- Introduced asynchronous message passing mechanism
- Added additional generic
Message
type toUi
,Widget
, and more structs & traits - Added
MutCap::send
&MutCap::call
methods
- Added additional generic
- Converted all event handlers to async functions
- Added
async-trait
dependency in version0.1
- Added
- Separated widgets from their mutable data
- Added data creation function alongside widget creation one
- Added
data
anddata_mut
accessors toCap
andMutCap
- Changed all
Handleable
event handling methods to target&self
- Changed event hooks to target non-mutable
&dyn Widget
- Reordered
Cap
&MutCap
parameter in various function signatures - Changed widget creation function from
FnMut
toFnOnce
- Adjusted event hooks to accept
MutCap
instead ofCap
- Added code coverage collection and reporting to CI pipeline
- Bumped minimum required Rust version to
1.42.0
- Bumped minimum required Rust version to
1.36.0
- Downgraded
deny
crate-level lints towarn
- Made
Handleable
trait generic over the event type to use- Made
UiEvent
andUnhandledEvent
generic over the underlying event
- Made
- Split
Cap
trait intoCap
andMutCap
with all methods requiring a mutable self ending up inMutCap
- Require
Debug
implementation forCap
,MutCap
,Handleable
, andObject
- Added
TypeId
functionality toRenderable
- Adjusted event hook function signature to take event to use by reference
- Removed
Event
andKey
types - Introduced 'derive' feature pulling in and re-exporting the custom
derive functionality provided by
gui-derive
- Adjusted crate to use Rust Edition 2018
- Removed
#![deny(warnings)]
attribute and demoted lints prone to future changes fromdeny
towarn
- Enabled CI pipeline comprising building, testing, and linting of the project
- Added badges indicating pipeline status, current
crates.io
published version of the crate, currentdocs.rs
published version of the documentation, and minimum version ofrustc
required - Added categories to
Cargo.toml
- Usage of event hooks no longer induces an unnecessary clone of a
HashSet
every time an event is handled - Hook emitted events are now delivered to the destination widget after
the source event was delivered
- Order was left unspecified beforehand, but was happening in reverse (i.e., hook emitted events arrived before the source event did)
- Enabled Rust 2018 edition lints
- Enabled
unused-results
lint
- Moved
Custom
event variant fromgui::Event
intogui::UiEvent
and renamed formergui::UiEvent::Custom
intogui::UiEvent::Directed
- Adjusted signature of event hook functions to take event by value, not
reference (made possible because
gui::Event
is now copyable) - Added support for "returnable" events, i.e., a variant of a custom
event that is guaranteed to be returned to the sending widget (after
potential modification by the destination widget)
- Handling of custom events changed to using two new methods in the
Handleable
trait:handle_custom
andhandle_custom_ref
- Handling of custom events changed to using two new methods in the
- Introduced new event type for unhandled events:
UnhandledEvent
- Changed return type of
Ui::handle
fromOption<MetaEvent>
toOption<UnhandledEvent>
- Changed return type of
- Renamed
MetaEvent
toUiEvents
- Added link to
docs.rs
based documentation to README
- Initial release