#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ExpenseField {
pub r#type: ::std::option::Option<crate::types::ExpenseType>,
pub label_detection: ::std::option::Option<crate::types::ExpenseDetection>,
pub value_detection: ::std::option::Option<crate::types::ExpenseDetection>,
pub page_number: ::std::option::Option<i32>,
pub currency: ::std::option::Option<crate::types::ExpenseCurrency>,
pub group_properties: ::std::option::Option<::std::vec::Vec<crate::types::ExpenseGroupProperty>>,
}
impl ExpenseField {
pub fn r#type(&self) -> ::std::option::Option<&crate::types::ExpenseType> {
self.r#type.as_ref()
}
pub fn label_detection(&self) -> ::std::option::Option<&crate::types::ExpenseDetection> {
self.label_detection.as_ref()
}
pub fn value_detection(&self) -> ::std::option::Option<&crate::types::ExpenseDetection> {
self.value_detection.as_ref()
}
pub fn page_number(&self) -> ::std::option::Option<i32> {
self.page_number
}
pub fn currency(&self) -> ::std::option::Option<&crate::types::ExpenseCurrency> {
self.currency.as_ref()
}
pub fn group_properties(&self) -> &[crate::types::ExpenseGroupProperty] {
self.group_properties.as_deref().unwrap_or_default()
}
}
impl ExpenseField {
pub fn builder() -> crate::types::builders::ExpenseFieldBuilder {
crate::types::builders::ExpenseFieldBuilder::default()
}
}
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ExpenseFieldBuilder {
pub(crate) r#type: ::std::option::Option<crate::types::ExpenseType>,
pub(crate) label_detection: ::std::option::Option<crate::types::ExpenseDetection>,
pub(crate) value_detection: ::std::option::Option<crate::types::ExpenseDetection>,
pub(crate) page_number: ::std::option::Option<i32>,
pub(crate) currency: ::std::option::Option<crate::types::ExpenseCurrency>,
pub(crate) group_properties: ::std::option::Option<::std::vec::Vec<crate::types::ExpenseGroupProperty>>,
}
impl ExpenseFieldBuilder {
pub fn r#type(mut self, input: crate::types::ExpenseType) -> Self {
self.r#type = ::std::option::Option::Some(input);
self
}
pub fn set_type(mut self, input: ::std::option::Option<crate::types::ExpenseType>) -> Self {
self.r#type = input;
self
}
pub fn get_type(&self) -> &::std::option::Option<crate::types::ExpenseType> {
&self.r#type
}
pub fn label_detection(mut self, input: crate::types::ExpenseDetection) -> Self {
self.label_detection = ::std::option::Option::Some(input);
self
}
pub fn set_label_detection(mut self, input: ::std::option::Option<crate::types::ExpenseDetection>) -> Self {
self.label_detection = input;
self
}
pub fn get_label_detection(&self) -> &::std::option::Option<crate::types::ExpenseDetection> {
&self.label_detection
}
pub fn value_detection(mut self, input: crate::types::ExpenseDetection) -> Self {
self.value_detection = ::std::option::Option::Some(input);
self
}
pub fn set_value_detection(mut self, input: ::std::option::Option<crate::types::ExpenseDetection>) -> Self {
self.value_detection = input;
self
}
pub fn get_value_detection(&self) -> &::std::option::Option<crate::types::ExpenseDetection> {
&self.value_detection
}
pub fn page_number(mut self, input: i32) -> Self {
self.page_number = ::std::option::Option::Some(input);
self
}
pub fn set_page_number(mut self, input: ::std::option::Option<i32>) -> Self {
self.page_number = input;
self
}
pub fn get_page_number(&self) -> &::std::option::Option<i32> {
&self.page_number
}
pub fn currency(mut self, input: crate::types::ExpenseCurrency) -> Self {
self.currency = ::std::option::Option::Some(input);
self
}
pub fn set_currency(mut self, input: ::std::option::Option<crate::types::ExpenseCurrency>) -> Self {
self.currency = input;
self
}
pub fn get_currency(&self) -> &::std::option::Option<crate::types::ExpenseCurrency> {
&self.currency
}
pub fn group_properties(mut self, input: crate::types::ExpenseGroupProperty) -> Self {
let mut v = self.group_properties.unwrap_or_default();
v.push(input);
self.group_properties = ::std::option::Option::Some(v);
self
}
pub fn set_group_properties(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ExpenseGroupProperty>>) -> Self {
self.group_properties = input;
self
}
pub fn get_group_properties(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ExpenseGroupProperty>> {
&self.group_properties
}
pub fn build(self) -> crate::types::ExpenseField {
crate::types::ExpenseField {
r#type: self.r#type,
label_detection: self.label_detection,
value_detection: self.value_detection,
page_number: self.page_number,
currency: self.currency,
group_properties: self.group_properties,
}
}
}