FullAppBackend.swift 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /// Denotes a fully-featured backend that implements all features of
  2. /// SwiftCrossUI.
  3. ///
  4. /// ## Topics
  5. ///
  6. /// ### Constituent Protocols
  7. /// - ``BaseAppBackend``
  8. /// - ``BackendFeatures/MenuButtons``
  9. /// - ``BackendFeatures/Paths``
  10. /// - ``BackendFeatures/Alerts``
  11. /// - ``BackendFeatures/Sheets``
  12. /// - ``BackendFeatures/IncomingURLs``
  13. /// - ``BackendFeatures/ExternalURLs``
  14. /// - ``BackendFeatures/RevealFiles``
  15. /// - ``BackendFeatures/ApplicationMenus``
  16. /// - ``BackendFeatures/FileDialogs``
  17. /// - ``BackendFeatures/CornerRadius``
  18. /// - ``BackendFeatures/WebViews``
  19. /// - ``BackendFeatures/Tables``
  20. /// - ``BackendFeatures/Gestures``
  21. /// - ``BackendFeatures/Tooltips``
  22. /// - ``BackendFeatures/Colors``
  23. /// - ``BackendFeatures/DatePickers``
  24. /// - ``BackendFeatures/Windowing``
  25. public typealias FullAppBackend =
  26. BaseAppBackend
  27. & BackendFeatures.MenuButtons
  28. & BackendFeatures.Paths
  29. & BackendFeatures.Alerts
  30. & BackendFeatures.Sheets
  31. & BackendFeatures.IncomingURLs
  32. & BackendFeatures.ExternalURLs
  33. & BackendFeatures.RevealFiles
  34. & BackendFeatures.ApplicationMenus
  35. & BackendFeatures.FileDialogs
  36. & BackendFeatures.CornerRadius
  37. & BackendFeatures.WebViews
  38. & BackendFeatures.Tables
  39. & BackendFeatures.Gestures
  40. & BackendFeatures.Tooltips
  41. & BackendFeatures.Colors
  42. & BackendFeatures.DatePickers
  43. & BackendFeatures.Windowing
  44. & BackendFeatures.Gradients
  45. /// A typealias for ``FullAppBackend``.
  46. ///
  47. /// Long story short, [SwiftCrossUI PR #513](https://github.com/moreSwift/swift-cross-ui/pull/513)
  48. /// completely refactored the monolithic `AppBackend` protocol, splitting it out
  49. /// into around three dozen smaller protocols. This typealias now refers to
  50. /// another typealias that composes all of these protocols together, meaning
  51. /// it should behave just as it used to.
  52. ///
  53. /// After SwiftCrossUI 1.0.0, this typealias will be removed and we may choose
  54. /// to reuse the name `AppBackend`.
  55. @available(
  56. *,
  57. deprecated,
  58. renamed: "FullAppBackend",
  59. message: """
  60. This is now a composition of many smaller protocols; see SwiftCrossUI \
  61. PR #513 for details
  62. """
  63. )
  64. public typealias AppBackend = FullAppBackend