Just some small changes For gbdt::config::Config, - a ConfigBuilder (following the builder pattern) that has a build() method to create a Config() object is more Rust like. - The to_string() method is not necessary if you implement Display. - The config.set_loss function takes str rather than an enum. Are you open to PRs?