Expand description
App process implementation.
§Widget Instantiation
See enable_widget_macros!
if you want to instantiate widgets without depending on the zng
crate.
§Crate
This crate is part of the zng
project.
§Cargo Features
This crate provides 12 feature flags, 2 enabled by default.
§"debug_default"
Enable the "dyn_*"
and "inspector"
features in debug builds.
Enabled by default.
§"dyn_node"
Use dynamic dispatch at the node level by placing each property node in a BoxedUiNode
and enabling UiNode::cfg_boxed
.
This speeds-up compilation time at the cost of runtime.
§"inspector"
Instrument each widget instance to retain build information.
§"dyn_app_extension"
Use dynamic dispatch at the app-extension level.
This speeds-up compilation time at the cost of runtime.
§"dyn_closure"
Box closures at opportune places, such as Var::map
, reducing the number of monomorphised types.
This speeds-up compilation time at the cost of runtime.
§"test_util"
Like cfg(test)
but also visible in docs and integration tests.
§"multi_app"
Allows multiple app instances per-process.
This feature allows multiple apps, one app per thread at a time. The LocalContext
tracks
what app is currently running in each thread and app_local!
statics switch to the value of each app
depending on the current thread.
Not enabled by default, but enabled by feature="test_util"
.
§"trace_widget"
Instrument every widget outer-most node to trace UI methods.
§"trace_wgt_item"
Instrument every property and intrinsic node to trace UI methods.
Note that this can cause very large trace files and bad performance.
§"crash_handler"
Allow app-process crash handler.
Only enables in not(any(target_arch = "wasm32", target_os = "android", target_os = "ios"))
builds.
§"ipc"
Enables IPC tasks and pre-build views and connecting to views running in another process.
Enabled by default.
§"deadlock_detection"
Spawns a thread on app creation that checks and prints parking_lot
deadlocks.
Not enabled by default, but enabled by feature="test_util"
.
Modules§
- access
- Accessibility/automation events.
- crash_
handler - App-process crash handler.
- event
- App event and commands API.
- handler
- Handler types and macros.
- render
- Frame render and metadata API.
- shortcut
- Key combination types.
- third_
party - Third party licenses service and types.
- timer
- App timers, deadlines and timeouts.
- update
- App updates API.
- view_
process - View process connection and other types.
- widget
- Widget, UI node API.
- window
- Window context API.
Macros§
- app_hn
- Declare a mutable clone-move app event handler.
- app_
hn_ once - Declare a clone-move app event handler that is only called once.
- async_
app_ hn - Declare an async clone-move app event handler.
- async_
app_ hn_ once - Declare an async clone-move app event handler that is only called once.
- async_
hn - Declare an async clone-move event handler.
- async_
hn_ once - Declare an async clone-move event handler that is only called once.
- command
- Declares new
Command
static items. - crash_
handler_ config - Register a
FnOnce(&mut CrashConfig)
closure to be called on process init to configure the crash handler. - enable_
widget_ macros - Enable widget instantiation in crates that can’t depend on the
zng
crate. - event_
args - Declares new
EventArgs
types. - event_
macro - Declares new
Event<A>
static items. - hn
- Declare a mutable clone-move event handler.
- hn_once
- Declare a clone-move event handler that is only called once.
- property_
args - New
Box<PropertyArgs>
box from a property and value. - property_
id - New
PropertyId
that represents the type and name. - property_
info - New
PropertyInfo
from property path. - property_
input_ types - Gets the strong input storage types from a property path.
- shortcut_
macro - Creates a
Shortcut
. - source_
location - New
SourceLocation
that represents the location you call this macro. - static_
id - Declares a static unique ID that is lazy inited.
- ui_vec
- Creates an
UiVec
containing the arguments. - widget_
impl - Implement a property on the widget to strongly associate it with the widget.
- widget_
set - Sets properties and when condition on a widget builder.
- widget_
type - Gets the
WidgetType
info of a widget.
Structs§
- APP
- Start and manage an app process.
- AppEvent
Sender - A sender that can awake apps and insert events into the main loop.
- AppExt
Receiver - Represents a channel receiver in an app extension.
- AppExt
Sender - Represents a channel sender that causes an extensions update for each value transferred.
- AppExtended
- Application builder.
- AppExtension
Info - Info about an app-extension.
- AppExtensions
Info - List of app-extensions that are part of an app.
- AppStart
Args - Arguments for
on_app_start
handlers. - DInstant
- Duration elapsed since an epoch.
- Deadline
- Represents a timeout instant.
- Exit
Cancelled - Cancellation message of an exit request.
- Exit
Requested Args - Arguments for
EXIT_REQUESTED_EVENT
. - Headless
App - A headless app controller.
- INSTANT
- Instant service.
Enums§
- AppChannel
Error - Error during send or receive of app channels.
- AppControl
Flow - Desired next step of app main loop.
- Instant
Mode - Defines how the
INSTANT.now
value updates in the app.
Statics§
- EXIT_
CMD - Represents the app process
exit
request. - EXIT_
REQUESTED_ EVENT - Cancellable event raised when app process exit is requested.
Traits§
- AppEvent
Observer - Observer for
HeadlessApp::update_observed
. - AppExtension
- An app extension.
Functions§
- on_
app_ start - Register a
handler
to run when anAPP
starts running in the process. - print_
tracing - Enables
tracing
events printing if a subscriber is not already set. - print_
tracing_ filter - Filter used by
print_tracing
, removes some log noise from dependencies. - test_
log - Modifies the
print_tracing
subscriber to panic for error logs in the current app.