If it were me, I would write:

```rust
struct MyThing<B: AsRef<Component>> {
    buf: B,
}

#[cfg(feature = "std")]
pub type OwnedMyThing = MyThing<Vec<Component>>;

pub type BorrowedMyThing<'a> = MyThing<&'a [Component]>;
```