pub fn compose<T, A, B>(a: A, b: B) -> impl FnOnce(T) -> T
where
    T: Apply<A> + Apply<B>,
{
    move |t: T| t.apply(a).apply(b)
}
/// Allows you to compose different CSS styles together. This function takes
///
/// ```rust
/// # use mercutio::*;
/// # use malvolio::prelude::H1;
///
/// #[derive(CSS)]
/// #[mercutio(
///     css(color = "blue"),
///     elements(H1)
/// )]
/// struct Blue;
///
/// #[derive(CSS)]
/// #[mercutio(
///     elements(H1),
///     css(font_size="24px")
/// )]
/// struct Title;
///
/// let blue_title = compose(Blue, Title);
/// H1::new("Blue title").apply(blue_title);
/// ```
///
/// ```rust
/// # use mercutio::*;
/// # use malvolio::prelude::H1;
///
/// #[derive(CSS)]
/// #[mercutio(
///     css(color = "blue"),
///     elements(H1)
/// )]
/// struct Blue;
///
/// #[derive(CSS)]
/// #[mercutio(
///     elements(H1),
///     css(font_size="24px")
/// )]
/// struct Title;
///
/// #[derive(CSS)]
/// #[mercutio(
///     css(background_color = "blue"),
///     elements(H1)
/// )]
/// struct BlueBackground;
///
/// let composed = compose(BlueBackground, compose(Blue, Title));
/// H1::new("Blue title with blue background.").apply(composed);
/// ```
Allows you to compose different CSS styles together. This function takes
```rust
Allows you to compose different CSS styles together . This function takes ` ` ` rust
pub fn compose<T, A, B>(a: A, b: B) -> impl FnOnce(T) -> T
where
    T: Apply<A> + Apply<B>,
{
    move |t: T| t.apply(a).apply(b)
}
pub fn compose < T , A , B > ( a : A , b : B ) -> impl FnOnce ( T ) -> T where T : Apply < A > + Apply < B > , { move | t : T | t . apply ( a ) . apply ( b ) }
Allows you to compose different CSS styles together.
Allows you to compose different CSS styles together .
a
A
b
B
use mercutio::*;
None
use malvolio::prelude::h1;
None
[derive(css)]
None
[mercutio(
css(color = "blue"),
elements(H1)
)]
struct Blue.
css ( color = " blue " ) elements ( H1 ) ) ] struct Blue .
[derive(css)]
None
[mercutio(
elements(H1),
css(font_size="24px")
)]
struct Title.

let blue_title = compose(Blue, Title);
H1::new("Blue title").apply(blue_title);
```


elements ( H1 ) css ( font_size = " 24px " ) ) ] struct Title . let blue_title = compose ( Blue Title ) ; H1 :: new ( " Blue title " ) . apply ( blue_title ) ; ` ` `
use mercutio::*;
None
use malvolio::prelude::h1;
None
[derive(css)]
None
[mercutio(
css(color = "blue"),
elements(H1)
)]
struct Blue.
css ( color = " blue " ) elements ( H1 ) ) ] struct Blue .
[derive(css)]
None
[mercutio(
elements(H1),
css(font_size="24px")
)]
struct Title.
elements ( H1 ) css ( font_size = " 24px " ) ) ] struct Title .
[derive(css)]
None
[mercutio(
css(background_color = "blue"),
elements(H1)
)]
struct BlueBackground.

let composed = compose(BlueBackground, compose(Blue, Title));
H1::new("Blue title with blue background.").apply(composed);
```
css ( background_color = " blue " ) elements ( H1 ) ) ] struct BlueBackground . let composed = compose ( BlueBackground compose ( Blue Title )) ; H1 :: new ( " Blue title with blue background . " ) . apply ( composed ) ; ` ` `