bevy/crates
Alice Cecile 5f1e762f19
Return Result from tab navigation API (#17071)
# Objective

Tab navigation can fail in all manner of ways. The current API
recognizes this, but merely logs a warning and returns `None`.

We should supply the actual reason for failure to the caller, so they
can handle it in whatever fashion they please (including logging a
warning!).

Swapping to a Result-oriented pattern is also a bit more idiomatic and
makes the code's control flow easier to follow.

## Solution

- Refactor the `tab_navigation` module to return a `Result` rather than
an `Option` from its key APIs.
- Move the logging to the provided prebuilt observer. This leaves the
default behavior largely unchanged, but allows for better user control.
- Make the case where no tab group was found for the currently focused
entity an error branch, but provide enough information that we can still
recover from it.

## Testing

The `tab_navigation` example continues to function as intended.
2025-01-01 04:05:48 +00:00
..
bevy_a11y Replace bevy_a11y::Focus with InputFocus (#16863) 2024-12-18 00:16:19 +00:00
bevy_animation Replace map + unwrap_or(false) with is_some_and (#17067) 2024-12-31 20:28:02 +00:00
bevy_app Replace map + unwrap_or(false) with is_some_and (#17067) 2024-12-31 20:28:02 +00:00
bevy_asset Do not lowercase asset file extensions (#17065) 2025-01-01 00:42:56 +00:00
bevy_audio Prefer Display over Debug (#16112) 2024-12-27 00:40:06 +00:00
bevy_color Fix msrvs (#17012) 2024-12-29 20:00:19 +00:00
bevy_core_pipeline Fix Docs // incorrect default value for ChromaticAberration intensity (#16994) 2024-12-29 19:32:44 +00:00
bevy_derive Add benchmarks and compile_fail tests back to workspace (#16858) 2024-12-21 22:30:29 +00:00
bevy_dev_tools Draw the UI debug overlay using the UI renderer (#16693) 2024-12-11 00:49:47 +00:00
bevy_diagnostic Remove bevy_core (#16897) 2024-12-19 18:36:51 +00:00
bevy_dylib Generate links to definition in source code pages on docs.rs and dev-docs.bevyengine.org (#12965) 2024-07-29 23:10:16 +00:00
bevy_ecs Replace map_or(true, _) with is_none_or(_) (#17073) 2025-01-01 04:05:26 +00:00
bevy_encase_derive Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_gilrs Deny derive_more error feature and replace it with thiserror (#16684) 2024-12-06 17:03:55 +00:00
bevy_gizmos Refactor non-core Curve methods into extension traits (#16930) 2024-12-29 19:26:49 +00:00
bevy_gltf Prefer Display over Debug (#16112) 2024-12-27 00:40:06 +00:00
bevy_hierarchy Replace map + unwrap_or(true) with is_none_or (#17070) 2024-12-31 20:17:03 +00:00
bevy_image Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_input Add no_std support to bevy_input (#16995) 2024-12-29 22:46:30 +00:00
bevy_input_focus Return Result from tab navigation API (#17071) 2025-01-01 04:05:48 +00:00
bevy_internal Expose bevy_image as a feature (#16948) 2024-12-24 03:11:01 +00:00
bevy_log Basic filtering examples for users of the bevy_log. (#16455) 2024-12-29 22:56:40 +00:00
bevy_macro_utils Use one BevyManifest instance in proc macros (#16766) 2024-12-15 15:00:05 +00:00
bevy_math Fix no_std CI Warnings and WASM Compatibility (#17049) 2024-12-30 23:01:27 +00:00
bevy_mesh Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_mikktspace Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
bevy_pbr Simplify sort/max_by calls (#17048) 2024-12-30 22:59:36 +00:00
bevy_picking Replace map + unwrap_or(false) with is_some_and (#17067) 2024-12-31 20:28:02 +00:00
bevy_ptr Fix MSRVs for standalone crates (#16333) 2024-11-17 09:38:13 +00:00
bevy_reflect Replace map_or(false, _) with is_some_and(_) (#17074) 2024-12-31 21:13:13 +00:00
bevy_remote show these 'fully qualified paths' for bevy_remote's rpc (#16944) 2024-12-31 00:29:27 +00:00
bevy_render Fix compilation error (#17060) 2024-12-31 16:22:19 +00:00
bevy_scene Replace map + unwrap_or(true) with is_none_or (#17070) 2024-12-31 20:17:03 +00:00
bevy_sprite Replace map + unwrap_or(false) with is_some_and (#17067) 2024-12-31 20:28:02 +00:00
bevy_state Add no_std support to bevy_state (#17028) 2024-12-29 23:28:18 +00:00
bevy_tasks Use -D warnings in all relevant CI (#17011) 2024-12-31 00:15:28 +00:00
bevy_text get_glyph_atlas_info refactor (#17044) 2024-12-30 21:08:12 +00:00
bevy_time Use en-us locale for typos (#16037) 2024-10-20 18:55:17 +00:00
bevy_transform Add no_std support to bevy_transform (#17030) 2024-12-30 21:01:13 +00:00
bevy_ui Replace map + unwrap_or(false) with is_some_and (#17067) 2024-12-31 20:28:02 +00:00
bevy_utils Add portable-atomic support to bevy_utils for once! (#17027) 2024-12-29 22:50:08 +00:00
bevy_window Make RawHandleWrapper fields private to save users from themselves (#16968) 2024-12-29 19:54:57 +00:00
bevy_winit Simplify sort/max_by calls (#17048) 2024-12-30 22:59:36 +00:00