pub struct ServiceDefinitionBuilder { /* private fields */ }Expand description
Fluent builder for a ServiceDefinition.
Construct via shared_broker (per-user local) or
explicit_instance (trust-grouped CI), chain the
optional setters, then build to validate or
install to validate and write the .servicedef.
Implementations§
Source§impl ServiceDefinitionBuilder
impl ServiceDefinitionBuilder
Begin a SHARED_BROKER (per-user local) service definition.
binary_path must be an absolute path — the broker validates it on
build.
Sourcepub fn explicit_instance(
service_name: impl Into<String>,
binary_path: impl Into<String>,
instance: impl Into<String>,
) -> Self
pub fn explicit_instance( service_name: impl Into<String>, binary_path: impl Into<String>, instance: impl Into<String>, ) -> Self
Begin an EXPLICIT_INSTANCE (trust-grouped) service definition.
instance is the trust-group label; it must be a valid service-name
token.
Sourcepub fn min_version(self, version: impl Into<String>) -> Self
pub fn min_version(self, version: impl Into<String>) -> Self
Set the minimum acceptable backend version.
Sourcepub fn allow_version(self, version: impl Into<String>) -> Self
pub fn allow_version(self, version: impl Into<String>) -> Self
Append one version to the allow-list.
Sourcepub fn per_version_binary_dir(self, dir: impl Into<String>) -> Self
pub fn per_version_binary_dir(self, dir: impl Into<String>) -> Self
Set the absolute directory holding per-version backend binaries.
Sourcepub fn label(self, key: impl Into<String>, value: impl Into<String>) -> Self
pub fn label(self, key: impl Into<String>, value: impl Into<String>) -> Self
Attach one diagnostic label.
Sourcepub fn build(self) -> Result<ServiceDefinition, ServiceDefinitionError>
pub fn build(self) -> Result<ServiceDefinition, ServiceDefinitionError>
Validate and return the ServiceDefinition without persisting it.
Sourcepub fn install(self) -> Result<PathBuf, ServiceDefinitionError>
pub fn install(self) -> Result<PathBuf, ServiceDefinitionError>
Validate and write the .servicedef into the default
service-definition directory.
Sourcepub fn install_in(self, root: &Path) -> Result<PathBuf, ServiceDefinitionError>
pub fn install_in(self, root: &Path) -> Result<PathBuf, ServiceDefinitionError>
Validate and write the .servicedef into an explicit root (tests,
custom layouts).
Trait Implementations§
Source§impl Clone for ServiceDefinitionBuilder
impl Clone for ServiceDefinitionBuilder
Source§fn clone(&self) -> ServiceDefinitionBuilder
fn clone(&self) -> ServiceDefinitionBuilder
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ServiceDefinitionBuilder
impl RefUnwindSafe for ServiceDefinitionBuilder
impl Send for ServiceDefinitionBuilder
impl Sync for ServiceDefinitionBuilder
impl Unpin for ServiceDefinitionBuilder
impl UnsafeUnpin for ServiceDefinitionBuilder
impl UnwindSafe for ServiceDefinitionBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more