use chrono::prelude::*;
use derive_builder::Builder;
use getset::Getters;
use getset::Setters;
use getset::MutGetters;
use serde_derive::{Serialize, Deserialize};
use url::Url;
pub mod action {
use super::*;
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum InputOutput {
#[serde(rename="input")]
Input,
#[serde(rename="output")]
Output,
#[serde(rename="notApplicable")]
NotApplicable,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum Label {
#[serde(rename="dropoff")]
Dropoff,
#[serde(rename="pickup")]
Pickup,
#[serde(rename="consume")]
Consume,
#[serde(rename="use")]
Use,
#[serde(rename="work")]
Work,
#[serde(rename="cite")]
Cite,
#[serde(rename="produce")]
Produce,
#[serde(rename="accept")]
Accept,
#[serde(rename="modify")]
Modify,
#[serde(rename="pass")]
Pass,
#[serde(rename="fail")]
Fail,
#[serde(rename="deliver-service")]
DeliverService,
#[serde(rename="transfer-all-rights")]
TransferAllRights,
#[serde(rename="transfer-custody")]
TransferCustody,
#[serde(rename="transfer-complete")]
TransferComplete,
#[serde(rename="move")]
Move,
#[serde(rename="raise")]
Raise,
#[serde(rename="lower")]
Lower,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum PairsWith {
#[serde(rename="notApplicable")]
NotApplicable,
#[serde(rename="dropoff")]
Dropoff,
#[serde(rename="pickup")]
Pickup,
#[serde(rename="accept")]
Accept,
#[serde(rename="modify")]
Modify,
#[serde(rename="pass")]
Pass,
#[serde(rename="fail")]
Fail,
}
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum ResourceEffect {
#[serde(rename="increment")]
Increment,
#[serde(rename="decrement")]
Decrement,
#[serde(rename="noEffect")]
NoEffect,
#[serde(rename="decrementIncrement")]
DecrementIncrement,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Action {
#[builder(setter(into, strip_option), default)]
input_output: Option<InputOutput>,
#[builder(setter(into, strip_option), default)]
label: Option<Label>,
#[builder(setter(into, strip_option), default)]
pairs_with: Option<PairsWith>,
resource_effect: ResourceEffect,
}
impl Action {
pub fn into_builder(self) -> ActionBuilder {
let Action { input_output, label, pairs_with, resource_effect } = self;
let mut builder = ActionBuilder::default();
builder = match input_output { Some(x) => builder.input_output(x), None => builder, };
builder = match label { Some(x) => builder.label(x), None => builder, };
builder = match pairs_with { Some(x) => builder.pairs_with(x), None => builder, };
builder = builder.resource_effect(resource_effect);
builder
}
}
}
pub mod agent {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Agent {
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
image: Option<Url>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
primary_location: Option<Box<spatial_thing::SpatialThing>>,
}
impl Agent {
pub fn into_builder(self) -> AgentBuilder {
let Agent { image, name, note, primary_location } = self;
let mut builder = AgentBuilder::default();
builder = match image { Some(x) => builder.image(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match primary_location { Some(x) => builder.primary_location(x), None => builder, };
builder
}
}
}
pub mod agent_relationship {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct AgentRelationship {
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
object: Box<agent::Agent>,
relationship: Box<agent_relationship_role::AgentRelationshipRole>,
subject: Box<agent::Agent>,
}
impl AgentRelationship {
pub fn into_builder(self) -> AgentRelationshipBuilder {
let AgentRelationship { in_scope_of, note, object, relationship, subject } = self;
let mut builder = AgentRelationshipBuilder::default();
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = builder.object(object);
builder = builder.relationship(relationship);
builder = builder.subject(subject);
builder
}
}
}
pub mod agent_relationship_role {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct AgentRelationshipRole {
#[builder(setter(into, strip_option), default)]
inverse_role_label: Option<String>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
role_label: Option<String>,
}
impl AgentRelationshipRole {
pub fn into_builder(self) -> AgentRelationshipRoleBuilder {
let AgentRelationshipRole { inverse_role_label, note, role_label } = self;
let mut builder = AgentRelationshipRoleBuilder::default();
builder = match inverse_role_label { Some(x) => builder.inverse_role_label(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match role_label { Some(x) => builder.role_label(x), None => builder, };
builder
}
}
}
pub mod agreement {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Agreement {
#[serde(with="crate::ser::datetime")]
created: DateTime<Utc>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl Agreement {
pub fn into_builder(self) -> AgreementBuilder {
let Agreement { created, name, note } = self;
let mut builder = AgreementBuilder::default();
builder = builder.created(created);
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod appreciation {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Appreciation {
#[builder(setter(into, strip_option), default)]
appreciation_of: Option<Box<economic_event::EconomicEvent>>,
#[builder(setter(into, strip_option), default)]
appreciation_with: Option<Box<economic_event::EconomicEvent>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl Appreciation {
pub fn into_builder(self) -> AppreciationBuilder {
let Appreciation { appreciation_of, appreciation_with, note } = self;
let mut builder = AppreciationBuilder::default();
builder = match appreciation_of { Some(x) => builder.appreciation_of(x), None => builder, };
builder = match appreciation_with { Some(x) => builder.appreciation_with(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod claim {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Claim {
action: String,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
agreed_in: Option<Url>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
created: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
due: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
finished: Option<bool>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
provider: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
receiver: Option<Box<agent::Agent>>,
#[serde(with="crate::ser::url_vec")]
resource_classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
resource_conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
triggered_by: Option<Box<economic_event::EconomicEvent>>,
}
impl Claim {
pub fn into_builder(self) -> ClaimBuilder {
let Claim { action, agreed_in, created, due, effort_quantity, finished, in_scope_of, note, provider, receiver, resource_classified_as, resource_conforms_to, resource_quantity, triggered_by } = self;
let mut builder = ClaimBuilder::default();
builder = builder.action(action);
builder = match agreed_in { Some(x) => builder.agreed_in(x), None => builder, };
builder = match created { Some(x) => builder.created(x), None => builder, };
builder = match due { Some(x) => builder.due(x), None => builder, };
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match finished { Some(x) => builder.finished(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match provider { Some(x) => builder.provider(x), None => builder, };
builder = match receiver { Some(x) => builder.receiver(x), None => builder, };
builder = builder.resource_classified_as(resource_classified_as);
builder = match resource_conforms_to { Some(x) => builder.resource_conforms_to(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder = match triggered_by { Some(x) => builder.triggered_by(x), None => builder, };
builder
}
}
}
pub mod commitment {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Commitment {
action: String,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
agreed_in: Option<Url>,
#[builder(setter(into, strip_option), default)]
at_location: Option<Box<spatial_thing::SpatialThing>>,
#[builder(setter(into, strip_option), default)]
clause_of: Option<Box<agreement::Agreement>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
created: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
due: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
finished: Option<bool>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_point_in_time: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
independent_demand_of: Option<Box<plan::Plan>>,
#[builder(setter(into, strip_option), default)]
input_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
output_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
provider: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
receiver: Option<Box<agent::Agent>>,
#[serde(with="crate::ser::url_vec")]
resource_classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
resource_conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
resource_inventoried_as: Option<Box<economic_resource::EconomicResource>>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
}
impl Commitment {
pub fn into_builder(self) -> CommitmentBuilder {
let Commitment { action, agreed_in, at_location, clause_of, created, due, effort_quantity, finished, has_beginning, has_end, has_point_in_time, in_scope_of, independent_demand_of, input_of, note, output_of, provider, receiver, resource_classified_as, resource_conforms_to, resource_inventoried_as, resource_quantity } = self;
let mut builder = CommitmentBuilder::default();
builder = builder.action(action);
builder = match agreed_in { Some(x) => builder.agreed_in(x), None => builder, };
builder = match at_location { Some(x) => builder.at_location(x), None => builder, };
builder = match clause_of { Some(x) => builder.clause_of(x), None => builder, };
builder = match created { Some(x) => builder.created(x), None => builder, };
builder = match due { Some(x) => builder.due(x), None => builder, };
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match finished { Some(x) => builder.finished(x), None => builder, };
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match has_point_in_time { Some(x) => builder.has_point_in_time(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match independent_demand_of { Some(x) => builder.independent_demand_of(x), None => builder, };
builder = match input_of { Some(x) => builder.input_of(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match output_of { Some(x) => builder.output_of(x), None => builder, };
builder = match provider { Some(x) => builder.provider(x), None => builder, };
builder = match receiver { Some(x) => builder.receiver(x), None => builder, };
builder = builder.resource_classified_as(resource_classified_as);
builder = match resource_conforms_to { Some(x) => builder.resource_conforms_to(x), None => builder, };
builder = match resource_inventoried_as { Some(x) => builder.resource_inventoried_as(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder
}
}
}
pub mod duration {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Duration {
numeric_duration: f64,
unit_type: String,
}
impl Duration {
pub fn into_builder(self) -> DurationBuilder {
let Duration { numeric_duration, unit_type } = self;
let mut builder = DurationBuilder::default();
builder = builder.numeric_duration(numeric_duration);
builder = builder.unit_type(unit_type);
builder
}
}
}
pub mod economic_event {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct EconomicEvent {
action: String,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
agreed_in: Option<Url>,
#[builder(setter(into, strip_option), default)]
at_location: Option<Box<spatial_thing::SpatialThing>>,
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_point_in_time: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
input_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
output_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
provider: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
realization_of: Option<Box<agreement::Agreement>>,
#[builder(setter(into, strip_option), default)]
receiver: Option<Box<agent::Agent>>,
#[serde(with="crate::ser::url_vec")]
resource_classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
resource_conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
resource_inventoried_as: Option<Box<economic_resource::EconomicResource>>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
to_resource_inventoried_as: Option<Box<economic_resource::EconomicResource>>,
#[builder(setter(into, strip_option), default)]
triggered_by: Option<Box<economic_event::EconomicEvent>>,
}
impl EconomicEvent {
pub fn into_builder(self) -> EconomicEventBuilder {
let EconomicEvent { action, agreed_in, at_location, effort_quantity, has_beginning, has_end, has_point_in_time, in_scope_of, input_of, note, output_of, provider, realization_of, receiver, resource_classified_as, resource_conforms_to, resource_inventoried_as, resource_quantity, to_resource_inventoried_as, triggered_by } = self;
let mut builder = EconomicEventBuilder::default();
builder = builder.action(action);
builder = match agreed_in { Some(x) => builder.agreed_in(x), None => builder, };
builder = match at_location { Some(x) => builder.at_location(x), None => builder, };
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match has_point_in_time { Some(x) => builder.has_point_in_time(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match input_of { Some(x) => builder.input_of(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match output_of { Some(x) => builder.output_of(x), None => builder, };
builder = match provider { Some(x) => builder.provider(x), None => builder, };
builder = match realization_of { Some(x) => builder.realization_of(x), None => builder, };
builder = match receiver { Some(x) => builder.receiver(x), None => builder, };
builder = builder.resource_classified_as(resource_classified_as);
builder = match resource_conforms_to { Some(x) => builder.resource_conforms_to(x), None => builder, };
builder = match resource_inventoried_as { Some(x) => builder.resource_inventoried_as(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder = match to_resource_inventoried_as { Some(x) => builder.to_resource_inventoried_as(x), None => builder, };
builder = match triggered_by { Some(x) => builder.triggered_by(x), None => builder, };
builder
}
}
}
pub mod economic_resource {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct EconomicResource {
#[builder(setter(into, strip_option), default)]
accounting_quantity: Option<Box<measure::Measure>>,
#[serde(with="crate::ser::url_vec")]
classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
contained_in: Option<Box<economic_resource::EconomicResource>>,
#[builder(setter(into, strip_option), default)]
current_location: Option<Box<spatial_thing::SpatialThing>>,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
image: Option<Url>,
#[builder(setter(into, strip_option), default)]
lot: Option<Box<product_batch::ProductBatch>>,
#[builder(setter(into, strip_option), default)]
name: Option<String>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
onhand_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
stage: Option<Box<process_specification::ProcessSpecification>>,
#[builder(setter(into, strip_option), default)]
state: Option<Box<action::Action>>,
#[builder(setter(into, strip_option), default)]
tracking_identifier: Option<String>,
#[builder(setter(into, strip_option), default)]
unit_of_effort: Option<Box<unit::Unit>>,
}
impl EconomicResource {
pub fn into_builder(self) -> EconomicResourceBuilder {
let EconomicResource { accounting_quantity, classified_as, conforms_to, contained_in, current_location, image, lot, name, note, onhand_quantity, stage, state, tracking_identifier, unit_of_effort } = self;
let mut builder = EconomicResourceBuilder::default();
builder = match accounting_quantity { Some(x) => builder.accounting_quantity(x), None => builder, };
builder = builder.classified_as(classified_as);
builder = match conforms_to { Some(x) => builder.conforms_to(x), None => builder, };
builder = match contained_in { Some(x) => builder.contained_in(x), None => builder, };
builder = match current_location { Some(x) => builder.current_location(x), None => builder, };
builder = match image { Some(x) => builder.image(x), None => builder, };
builder = match lot { Some(x) => builder.lot(x), None => builder, };
builder = match name { Some(x) => builder.name(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match onhand_quantity { Some(x) => builder.onhand_quantity(x), None => builder, };
builder = match stage { Some(x) => builder.stage(x), None => builder, };
builder = match state { Some(x) => builder.state(x), None => builder, };
builder = match tracking_identifier { Some(x) => builder.tracking_identifier(x), None => builder, };
builder = match unit_of_effort { Some(x) => builder.unit_of_effort(x), None => builder, };
builder
}
}
}
pub mod fulfillment {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Fulfillment {
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
fulfilled_by: Box<economic_event::EconomicEvent>,
fulfills: Box<commitment::Commitment>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
}
impl Fulfillment {
pub fn into_builder(self) -> FulfillmentBuilder {
let Fulfillment { effort_quantity, fulfilled_by, fulfills, note, resource_quantity } = self;
let mut builder = FulfillmentBuilder::default();
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = builder.fulfilled_by(fulfilled_by);
builder = builder.fulfills(fulfills);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder
}
}
}
pub mod intent {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Intent {
action: String,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
agreed_in: Option<Url>,
#[builder(setter(into, strip_option), default)]
at_location: Option<Box<spatial_thing::SpatialThing>>,
#[builder(setter(into, strip_option), default)]
available_quantity: Option<Box<measure::Measure>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
due: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
finished: Option<bool>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_point_in_time: Option<DateTime<Utc>>,
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
image: Option<Url>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
input_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
name: Option<String>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
output_of: Option<Box<process::Process>>,
#[builder(setter(into, strip_option), default)]
provider: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
receiver: Option<Box<agent::Agent>>,
#[serde(with="crate::ser::url_vec")]
resource_classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
resource_conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
resource_inventoried_as: Option<Box<economic_resource::EconomicResource>>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
}
impl Intent {
pub fn into_builder(self) -> IntentBuilder {
let Intent { action, agreed_in, at_location, available_quantity, due, effort_quantity, finished, has_beginning, has_end, has_point_in_time, image, in_scope_of, input_of, name, note, output_of, provider, receiver, resource_classified_as, resource_conforms_to, resource_inventoried_as, resource_quantity } = self;
let mut builder = IntentBuilder::default();
builder = builder.action(action);
builder = match agreed_in { Some(x) => builder.agreed_in(x), None => builder, };
builder = match at_location { Some(x) => builder.at_location(x), None => builder, };
builder = match available_quantity { Some(x) => builder.available_quantity(x), None => builder, };
builder = match due { Some(x) => builder.due(x), None => builder, };
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match finished { Some(x) => builder.finished(x), None => builder, };
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match has_point_in_time { Some(x) => builder.has_point_in_time(x), None => builder, };
builder = match image { Some(x) => builder.image(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match input_of { Some(x) => builder.input_of(x), None => builder, };
builder = match name { Some(x) => builder.name(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match output_of { Some(x) => builder.output_of(x), None => builder, };
builder = match provider { Some(x) => builder.provider(x), None => builder, };
builder = match receiver { Some(x) => builder.receiver(x), None => builder, };
builder = builder.resource_classified_as(resource_classified_as);
builder = match resource_conforms_to { Some(x) => builder.resource_conforms_to(x), None => builder, };
builder = match resource_inventoried_as { Some(x) => builder.resource_inventoried_as(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder
}
}
}
pub mod measure {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Measure {
has_numerical_value: f64,
has_unit: Box<unit::Unit>,
}
impl Measure {
pub fn into_builder(self) -> MeasureBuilder {
let Measure { has_numerical_value, has_unit } = self;
let mut builder = MeasureBuilder::default();
builder = builder.has_numerical_value(has_numerical_value);
builder = builder.has_unit(has_unit);
builder
}
}
}
pub mod plan {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Plan {
#[serde(with="crate::ser::datetime")]
created: DateTime<Utc>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
due: Option<DateTime<Utc>>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
refinement_of: Option<Box<scenario::Scenario>>,
}
impl Plan {
pub fn into_builder(self) -> PlanBuilder {
let Plan { created, due, name, note, refinement_of } = self;
let mut builder = PlanBuilder::default();
builder = builder.created(created);
builder = match due { Some(x) => builder.due(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match refinement_of { Some(x) => builder.refinement_of(x), None => builder, };
builder
}
}
}
pub mod process {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Process {
#[builder(setter(into, strip_option), default)]
based_on: Option<Box<process_specification::ProcessSpecification>>,
#[serde(with="crate::ser::url_vec")]
classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
finished: Option<bool>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
name: String,
#[builder(setter(into, strip_option), default)]
nested_in: Option<Box<scenario::Scenario>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
planned_within: Option<Box<plan::Plan>>,
}
impl Process {
pub fn into_builder(self) -> ProcessBuilder {
let Process { based_on, classified_as, finished, has_beginning, has_end, in_scope_of, name, nested_in, note, planned_within } = self;
let mut builder = ProcessBuilder::default();
builder = match based_on { Some(x) => builder.based_on(x), None => builder, };
builder = builder.classified_as(classified_as);
builder = match finished { Some(x) => builder.finished(x), None => builder, };
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = builder.name(name);
builder = match nested_in { Some(x) => builder.nested_in(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match planned_within { Some(x) => builder.planned_within(x), None => builder, };
builder
}
}
}
pub mod process_specification {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ProcessSpecification {
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl ProcessSpecification {
pub fn into_builder(self) -> ProcessSpecificationBuilder {
let ProcessSpecification { name, note } = self;
let mut builder = ProcessSpecificationBuilder::default();
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod product_batch {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ProductBatch {
batch_number: String,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
expiry_date: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
production_date: Option<DateTime<Utc>>,
}
impl ProductBatch {
pub fn into_builder(self) -> ProductBatchBuilder {
let ProductBatch { batch_number, expiry_date, production_date } = self;
let mut builder = ProductBatchBuilder::default();
builder = builder.batch_number(batch_number);
builder = match expiry_date { Some(x) => builder.expiry_date(x), None => builder, };
builder = match production_date { Some(x) => builder.production_date(x), None => builder, };
builder
}
}
}
pub mod proposal {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Proposal {
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
created: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
eligible_location: Option<Box<spatial_thing::SpatialThing>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
#[builder(setter(into, strip_option), default)]
name: Option<String>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
unit_based: Option<bool>,
}
impl Proposal {
pub fn into_builder(self) -> ProposalBuilder {
let Proposal { created, eligible_location, has_beginning, has_end, in_scope_of, name, note, unit_based } = self;
let mut builder = ProposalBuilder::default();
builder = match created { Some(x) => builder.created(x), None => builder, };
builder = match eligible_location { Some(x) => builder.eligible_location(x), None => builder, };
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = match name { Some(x) => builder.name(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match unit_based { Some(x) => builder.unit_based(x), None => builder, };
builder
}
}
}
pub mod proposed_intent {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ProposedIntent {
published_in: Box<proposal::Proposal>,
publishes: Box<intent::Intent>,
#[builder(setter(into, strip_option), default)]
reciprocal: Option<bool>,
}
impl ProposedIntent {
pub fn into_builder(self) -> ProposedIntentBuilder {
let ProposedIntent { published_in, publishes, reciprocal } = self;
let mut builder = ProposedIntentBuilder::default();
builder = builder.published_in(published_in);
builder = builder.publishes(publishes);
builder = match reciprocal { Some(x) => builder.reciprocal(x), None => builder, };
builder
}
}
}
pub mod proposed_to {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ProposedTo {
proposed: Box<proposal::Proposal>,
proposed_to: Box<agent::Agent>,
}
impl ProposedTo {
pub fn into_builder(self) -> ProposedToBuilder {
let ProposedTo { proposed, proposed_to } = self;
let mut builder = ProposedToBuilder::default();
builder = builder.proposed(proposed);
builder = builder.proposed_to(proposed_to);
builder
}
}
}
pub mod recipe_flow {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct RecipeFlow {
action: Box<action::Action>,
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
recipe_flow_resource: Option<Box<recipe_resource::RecipeResource>>,
#[builder(setter(into, strip_option), default)]
recipe_input_of: Option<Box<recipe_process::RecipeProcess>>,
#[builder(setter(into, strip_option), default)]
recipe_output_of: Option<Box<recipe_process::RecipeProcess>>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
}
impl RecipeFlow {
pub fn into_builder(self) -> RecipeFlowBuilder {
let RecipeFlow { action, effort_quantity, note, recipe_flow_resource, recipe_input_of, recipe_output_of, resource_quantity } = self;
let mut builder = RecipeFlowBuilder::default();
builder = builder.action(action);
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match recipe_flow_resource { Some(x) => builder.recipe_flow_resource(x), None => builder, };
builder = match recipe_input_of { Some(x) => builder.recipe_input_of(x), None => builder, };
builder = match recipe_output_of { Some(x) => builder.recipe_output_of(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder
}
}
}
pub mod recipe_process {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct RecipeProcess {
#[builder(setter(into, strip_option), default)]
has_duration: Option<Box<duration::Duration>>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[serde(with="crate::ser::url_vec")]
process_classified_as: Vec<Url>,
process_conforms_to: Box<process_specification::ProcessSpecification>,
}
impl RecipeProcess {
pub fn into_builder(self) -> RecipeProcessBuilder {
let RecipeProcess { has_duration, name, note, process_classified_as, process_conforms_to } = self;
let mut builder = RecipeProcessBuilder::default();
builder = match has_duration { Some(x) => builder.has_duration(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = builder.process_classified_as(process_classified_as);
builder = builder.process_conforms_to(process_conforms_to);
builder
}
}
}
pub mod recipe_resource {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct RecipeResource {
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
image: Option<Url>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[serde(with="crate::ser::url_vec")]
resource_classified_as: Vec<Url>,
#[builder(setter(into, strip_option), default)]
resource_conforms_to: Option<Box<resource_specification::ResourceSpecification>>,
#[builder(setter(into, strip_option), default)]
substitutable: Option<bool>,
#[builder(setter(into, strip_option), default)]
unit_of_effort: Option<Box<unit::Unit>>,
#[builder(setter(into, strip_option), default)]
unit_of_resource: Option<Box<unit::Unit>>,
}
impl RecipeResource {
pub fn into_builder(self) -> RecipeResourceBuilder {
let RecipeResource { image, name, note, resource_classified_as, resource_conforms_to, substitutable, unit_of_effort, unit_of_resource } = self;
let mut builder = RecipeResourceBuilder::default();
builder = match image { Some(x) => builder.image(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = builder.resource_classified_as(resource_classified_as);
builder = match resource_conforms_to { Some(x) => builder.resource_conforms_to(x), None => builder, };
builder = match substitutable { Some(x) => builder.substitutable(x), None => builder, };
builder = match unit_of_effort { Some(x) => builder.unit_of_effort(x), None => builder, };
builder = match unit_of_resource { Some(x) => builder.unit_of_resource(x), None => builder, };
builder
}
}
}
pub mod resource_specification {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ResourceSpecification {
#[serde(with="crate::ser::url_opt")]
#[builder(setter(into, strip_option), default)]
image: Option<Url>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl ResourceSpecification {
pub fn into_builder(self) -> ResourceSpecificationBuilder {
let ResourceSpecification { image, name, note } = self;
let mut builder = ResourceSpecificationBuilder::default();
builder = match image { Some(x) => builder.image(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod satisfaction {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Satisfaction {
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
satisfied_by: Box<economic_event::EconomicEvent>,
satisfies: Box<commitment::Commitment>,
}
impl Satisfaction {
pub fn into_builder(self) -> SatisfactionBuilder {
let Satisfaction { effort_quantity, note, resource_quantity, satisfied_by, satisfies } = self;
let mut builder = SatisfactionBuilder::default();
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder = builder.satisfied_by(satisfied_by);
builder = builder.satisfies(satisfies);
builder
}
}
}
pub mod scenario {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Scenario {
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_beginning: Option<DateTime<Utc>>,
#[serde(with="crate::ser::datetime_opt")]
#[builder(setter(into, strip_option), default)]
has_end: Option<DateTime<Utc>>,
#[builder(setter(into, strip_option), default)]
in_scope_of: Option<Box<agent::Agent>>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
refinement_of: Option<Box<scenario::Scenario>>,
}
impl Scenario {
pub fn into_builder(self) -> ScenarioBuilder {
let Scenario { has_beginning, has_end, in_scope_of, name, note, refinement_of } = self;
let mut builder = ScenarioBuilder::default();
builder = match has_beginning { Some(x) => builder.has_beginning(x), None => builder, };
builder = match has_end { Some(x) => builder.has_end(x), None => builder, };
builder = match in_scope_of { Some(x) => builder.in_scope_of(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match refinement_of { Some(x) => builder.refinement_of(x), None => builder, };
builder
}
}
}
pub mod scenario_definition {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct ScenarioDefinition {
#[builder(setter(into, strip_option), default)]
has_duration: Option<Box<duration::Duration>>,
name: String,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl ScenarioDefinition {
pub fn into_builder(self) -> ScenarioDefinitionBuilder {
let ScenarioDefinition { has_duration, name, note } = self;
let mut builder = ScenarioDefinitionBuilder::default();
builder = match has_duration { Some(x) => builder.has_duration(x), None => builder, };
builder = builder.name(name);
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod settlement {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Settlement {
#[builder(setter(into, strip_option), default)]
effort_quantity: Option<Box<measure::Measure>>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
#[builder(setter(into, strip_option), default)]
resource_quantity: Option<Box<measure::Measure>>,
settled_by: Box<economic_event::EconomicEvent>,
settles: Box<claim::Claim>,
}
impl Settlement {
pub fn into_builder(self) -> SettlementBuilder {
let Settlement { effort_quantity, note, resource_quantity, settled_by, settles } = self;
let mut builder = SettlementBuilder::default();
builder = match effort_quantity { Some(x) => builder.effort_quantity(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder = match resource_quantity { Some(x) => builder.resource_quantity(x), None => builder, };
builder = builder.settled_by(settled_by);
builder = builder.settles(settles);
builder
}
}
}
pub mod spatial_thing {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct SpatialThing {
#[builder(setter(into, strip_option), default)]
alt: Option<f64>,
#[builder(setter(into, strip_option), default)]
lat: Option<f64>,
#[builder(setter(into, strip_option), default)]
long: Option<f64>,
#[builder(setter(into, strip_option), default)]
mappable_address: Option<String>,
#[builder(setter(into, strip_option), default)]
name: Option<String>,
#[builder(setter(into, strip_option), default)]
note: Option<String>,
}
impl SpatialThing {
pub fn into_builder(self) -> SpatialThingBuilder {
let SpatialThing { alt, lat, long, mappable_address, name, note } = self;
let mut builder = SpatialThingBuilder::default();
builder = match alt { Some(x) => builder.alt(x), None => builder, };
builder = match lat { Some(x) => builder.lat(x), None => builder, };
builder = match long { Some(x) => builder.long(x), None => builder, };
builder = match mappable_address { Some(x) => builder.mappable_address(x), None => builder, };
builder = match name { Some(x) => builder.name(x), None => builder, };
builder = match note { Some(x) => builder.note(x), None => builder, };
builder
}
}
}
pub mod unit {
use super::*;
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Builder, Getters)]
#[derive(Setters)]
#[derive(MutGetters)]
#[builder(pattern = "owned")]
#[getset(get = "pub", set = "pub", get_mut = "pub")]
pub struct Unit {
label: String,
#[builder(setter(into, strip_option), default)]
symbol: Option<String>,
}
impl Unit {
pub fn into_builder(self) -> UnitBuilder {
let Unit { label, symbol } = self;
let mut builder = UnitBuilder::default();
builder = builder.label(label);
builder = match symbol { Some(x) => builder.symbol(x), None => builder, };
builder
}
}
}