#[macro_use] extern crate derive_builder; #[derive(Debug, PartialEq, Default, Builder, Clone)] pub struct Lorem { // `default` is incompatible with `field.build` #[builder( default = "1", field(build = "self.ipsum.map(|v| v + 42).unwrap_or(100)") )] ipsum: usize, // `default` is incompatible with `field.ty`, even without `field.build` #[builder(default = "2", field(ty = "usize"))] sit: usize, // Both errors can occur on the same field #[builder(default = "3", field(ty = "usize", build = "self.ipsum + 42"))] amet: usize, } fn main() {}