1use nix_eval::NativeFn;23#[derive(thiserror::Error, Debug)]4enum Error {}56struct Parts {7 encrypted: Vec<String>,8 public: Vec<String>,9}1011trait SecretsBackend {12 fn has_shared(&self, name: &str);13 fn has_host(&self, host: &str, name: &str);14 fn shared_parts(&self, name: &str) -> Parts;15 fn host_parts(&self, host: &str, name: &str) -> Parts;16}1718struct FsSecretsBackend {1920}2122pub fn init_primops() {23 NativeFn::new(24 c"fleet_ensure_secret",25 c"Ensure secret existence for a host, regenerating it in case of some mismatch",26 [27 c"host",28 c"secret",29 c"expected_parts",30 c"expected_encrypted_parts",31 c"generator",32 ],33 |[34 host,35 secret,36 expected_parts,37 expected_encrypted_parts,38 generator,39 ]| { 4041 todo!()42 },43 )44 .register();45}