rustは関数オーバーロードがないからビルダーパターンに頼らざるを得ない