pub struct FeatureBuilder(/* private fields */);
Expand description
Provides a way to build feature with some checks.
Implementations§
Source§impl FeatureBuilder
impl FeatureBuilder
Sourcepub fn from_feature(feature: Feature) -> Self
pub fn from_feature(feature: Feature) -> Self
Creates a builder from another feature.
Sourcepub fn with_name(self, name: &str) -> Self
pub fn with_name(self, name: &str) -> Self
Sets given name.
Examples found in repository?
examples/custom_constraint.rs (line 111)
102fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
103 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
104 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
105 let transport_feature = TransportFeatureBuilder::new("min-distance")
106 .set_transport_cost(transport)
107 .set_time_constrained(false)
108 .build_minimize_distance()?;
109 // create our custom feature
110 let hardware_feature = FeatureBuilder::default()
111 .with_name("hardware")
112 .with_constraint(HardwareConstraint { code: ViolationCode::default() })
113 .build()?;
114
115 // configure goal of optimization
116 GoalContextBuilder::with_features(&[minimize_unassigned, transport_feature, capacity_feature, hardware_feature])?
117 .build()
118}
More examples
examples/custom_objective.rs (line 127)
117fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
118 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
119 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
120 let transport_feature = TransportFeatureBuilder::new("min-distance")
121 .set_transport_cost(transport)
122 .set_time_constrained(false)
123 .build_minimize_distance()?;
124
125 // create our custom feature that consists of an objective and a state
126 let priority_feature = FeatureBuilder::default()
127 .with_name("maximize-priority")
128 .with_objective(PriorityObjective)
129 .with_state(PriorityState)
130 .build()?;
131
132 // configure goal of optimization
133 GoalContextBuilder::with_features(&[priority_feature, minimize_unassigned, transport_feature, capacity_feature])?
134 .build()
135}
Sourcepub fn with_constraint<T: FeatureConstraint + 'static>(
self,
constraint: T,
) -> Self
pub fn with_constraint<T: FeatureConstraint + 'static>( self, constraint: T, ) -> Self
Adds given constraint.
Examples found in repository?
examples/custom_constraint.rs (line 112)
102fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
103 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
104 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
105 let transport_feature = TransportFeatureBuilder::new("min-distance")
106 .set_transport_cost(transport)
107 .set_time_constrained(false)
108 .build_minimize_distance()?;
109 // create our custom feature
110 let hardware_feature = FeatureBuilder::default()
111 .with_name("hardware")
112 .with_constraint(HardwareConstraint { code: ViolationCode::default() })
113 .build()?;
114
115 // configure goal of optimization
116 GoalContextBuilder::with_features(&[minimize_unassigned, transport_feature, capacity_feature, hardware_feature])?
117 .build()
118}
Sourcepub fn with_objective<T: FeatureObjective + 'static>(self, objective: T) -> Self
pub fn with_objective<T: FeatureObjective + 'static>(self, objective: T) -> Self
Adds given objective.
Examples found in repository?
examples/custom_objective.rs (line 128)
117fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
118 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
119 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
120 let transport_feature = TransportFeatureBuilder::new("min-distance")
121 .set_transport_cost(transport)
122 .set_time_constrained(false)
123 .build_minimize_distance()?;
124
125 // create our custom feature that consists of an objective and a state
126 let priority_feature = FeatureBuilder::default()
127 .with_name("maximize-priority")
128 .with_objective(PriorityObjective)
129 .with_state(PriorityState)
130 .build()?;
131
132 // configure goal of optimization
133 GoalContextBuilder::with_features(&[priority_feature, minimize_unassigned, transport_feature, capacity_feature])?
134 .build()
135}
Sourcepub fn with_state<T: FeatureState + 'static>(self, state: T) -> Self
pub fn with_state<T: FeatureState + 'static>(self, state: T) -> Self
Adds given state.
Examples found in repository?
examples/custom_objective.rs (line 129)
117fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
118 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
119 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
120 let transport_feature = TransportFeatureBuilder::new("min-distance")
121 .set_transport_cost(transport)
122 .set_time_constrained(false)
123 .build_minimize_distance()?;
124
125 // create our custom feature that consists of an objective and a state
126 let priority_feature = FeatureBuilder::default()
127 .with_name("maximize-priority")
128 .with_objective(PriorityObjective)
129 .with_state(PriorityState)
130 .build()?;
131
132 // configure goal of optimization
133 GoalContextBuilder::with_features(&[priority_feature, minimize_unassigned, transport_feature, capacity_feature])?
134 .build()
135}
Sourcepub fn build(self) -> Result<Feature, GenericError>
pub fn build(self) -> Result<Feature, GenericError>
Tries to build a feature.
Examples found in repository?
examples/custom_constraint.rs (line 113)
102fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
103 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
104 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
105 let transport_feature = TransportFeatureBuilder::new("min-distance")
106 .set_transport_cost(transport)
107 .set_time_constrained(false)
108 .build_minimize_distance()?;
109 // create our custom feature
110 let hardware_feature = FeatureBuilder::default()
111 .with_name("hardware")
112 .with_constraint(HardwareConstraint { code: ViolationCode::default() })
113 .build()?;
114
115 // configure goal of optimization
116 GoalContextBuilder::with_features(&[minimize_unassigned, transport_feature, capacity_feature, hardware_feature])?
117 .build()
118}
More examples
examples/custom_objective.rs (line 130)
117fn define_goal(transport: Arc<dyn TransportCost>) -> GenericResult<GoalContext> {
118 let minimize_unassigned = MinimizeUnassignedBuilder::new("min-unassigned").build()?;
119 let capacity_feature = CapacityFeatureBuilder::<SingleDimLoad>::new("capacity").build()?;
120 let transport_feature = TransportFeatureBuilder::new("min-distance")
121 .set_transport_cost(transport)
122 .set_time_constrained(false)
123 .build_minimize_distance()?;
124
125 // create our custom feature that consists of an objective and a state
126 let priority_feature = FeatureBuilder::default()
127 .with_name("maximize-priority")
128 .with_objective(PriorityObjective)
129 .with_state(PriorityState)
130 .build()?;
131
132 // configure goal of optimization
133 GoalContextBuilder::with_features(&[priority_feature, minimize_unassigned, transport_feature, capacity_feature])?
134 .build()
135}
Trait Implementations§
Source§impl Default for FeatureBuilder
impl Default for FeatureBuilder
Source§fn default() -> FeatureBuilder
fn default() -> FeatureBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for FeatureBuilder
impl !RefUnwindSafe for FeatureBuilder
impl Send for FeatureBuilder
impl Sync for FeatureBuilder
impl Unpin for FeatureBuilder
impl !UnwindSafe for FeatureBuilder
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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