#![allow(dead_code)]
#[macro_use]
extern crate derive_into_owned;
use std::borrow::Cow;
#[derive(IntoOwned)]
struct Simplest<'a> {
field: Cow<'a, str>,
}
#[derive(IntoOwned)]
struct PaddedWithDifferent<'a, 'b> {
a: bool,
b: u32,
c: Cow<'a, str>,
d: Simplest<'b>,
}
#[derive(IntoOwned)]
struct PaddedWithSame<'a> {
a: bool,
b: u32,
c: Cow<'a, str>,
d: Simplest<'a>,
}
#[test]
fn simplest() {
let non_static_string = "foobar".to_string();
let simplest = Simplest {
field: Cow::Borrowed(&non_static_string),
};
accepts_only_static(simplest.into_owned());
}
fn accepts_only_static(s: Simplest<'static>) {
drop(s)
}