builder.rs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. use crate::proto::ProtoGen;
  2. #[allow(dead_code)]
  3. pub struct ProtoGenBuilder {
  4. rust_source_dirs: Option<Vec<String>>,
  5. flutter_package_lib: Option<String>,
  6. derive_meta_dir: Option<String>,
  7. }
  8. impl ProtoGenBuilder {
  9. pub fn new() -> Self {
  10. ProtoGenBuilder {
  11. rust_source_dirs: None,
  12. flutter_package_lib: None,
  13. derive_meta_dir: None,
  14. }
  15. }
  16. pub fn set_rust_source_dirs(mut self, dirs: Vec<String>) -> Self {
  17. self.rust_source_dirs = Some(dirs);
  18. self
  19. }
  20. pub fn set_flutter_package_lib(mut self, dir: &str) -> Self {
  21. self.flutter_package_lib = Some(dir.to_string());
  22. self
  23. }
  24. pub fn set_derive_meta_dir(mut self, dir: &str) -> Self {
  25. self.derive_meta_dir = Some(dir.to_string());
  26. self
  27. }
  28. pub fn build(self) -> ProtoGen {
  29. ProtoGen {
  30. rust_source_dirs: self.rust_source_dirs.unwrap(),
  31. flutter_package_lib: self.flutter_package_lib.unwrap(),
  32. derive_meta_dir: self.derive_meta_dir.unwrap(),
  33. }
  34. }
  35. }