File: default_typeparams.rs

package info (click to toggle)
rust-derive-builder 0.20.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 500 kB
  • sloc: makefile: 2
file content (30 lines) | stat: -rw-r--r-- 629 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//! Test ensuring that default type params gets forwarded to Builder.

#[macro_use]
extern crate derive_builder;

#[derive(Builder)]
#[builder(setter(strip_option))]
struct Settings<T, U = (), C = fn(T) -> U> {
    first: T,
    #[builder(default)]
    second: Option<U>,
    #[builder(default)]
    third: Option<C>,
}

fn main() {
    SettingsBuilder::<usize>::default()
        .first(1)
        .second(())
        .third(|_: usize| ())
        .build()
        .unwrap();

    SettingsBuilder::<usize, usize>::default()
        .first(1)
        .second(2)
        .third(|_: usize| 3)
        .build()
        .unwrap();
}