reso_dd/generated/
enum_special_listing_conditions.rs

1// THIS IS A GENERATED FILE
2// If anything in this file needs to be updated, it needs to be fixed in reso_dd_generator
3use serde::{Deserialize, Serialize};
4
5/// [SpecialListingConditions Lookups](https://ddwiki.reso.org/display/DDW17/SpecialListingConditions+Lookups)
6#[derive(Debug, Clone, Eq, PartialEq)]
7pub enum SpecialListingConditions {
8    /// "[Auction](https://ddwiki.reso.org/display/DDW17/Auction)": The listing is an auction.
9    Auction,
10
11    /// "[Bankruptcy Property](https://ddwiki.reso.org/display/DDW17/Bankruptcy+Property)": The listed property is currently involved in a bankruptcy.
12    BankruptcyProperty,
13
14    /// "[HUD Owned](https://ddwiki.reso.org/display/DDW17/HUD+Owned)": The listed property is owned, and being sold, by the US Department of Housing and Urban Development.
15    HUDOwned,
16
17    /// "[In Foreclosure](https://ddwiki.reso.org/display/DDW17/In+Foreclosure)": The listed property is currently in the process of foreclosure.
18    InForeclosure,
19
20    /// "[Notice Of Default](https://ddwiki.reso.org/display/DDW17/Notice+Of+Default)": There is a notice of default on the listed property.
21    NoticeOfDefault,
22
23    /// "[Probate Listing](https://ddwiki.reso.org/display/DDW17/Probate+Listing)": The listed property is a probate sale.
24    ProbateListing,
25
26    /// "[Real Estate Owned](https://ddwiki.reso.org/display/DDW17/Real+Estate+Owned)": The listed property is currently bank/lender owned.
27    RealEstateOwned,
28
29    /// "[Short Sale](https://ddwiki.reso.org/display/DDW17/Short+Sale)": The listing is a short sale (short pay) and may require bank approval.
30    ShortSale,
31
32    /// "[Standard](https://ddwiki.reso.org/display/DDW17/Standard)": The listing has none of the other conditions in the Special Listing Conditions field.
33    Standard,
34
35    /// "[Third Party Approval](https://ddwiki.reso.org/display/DDW17/Third+Party+Approval)": A court or other third party approval is required for the sale to finalize.
36    ThirdPartyApproval,
37
38    /// A value that was not defined by the enumeration
39    OpenEnumeration(String),
40}
41
42impl crate::ResoEnumeration for SpecialListingConditions {
43    fn from_str(s: &str) -> SpecialListingConditions {
44        match s {
45            "Auction" => SpecialListingConditions::Auction,
46
47            "Bankruptcy Property" => SpecialListingConditions::BankruptcyProperty,
48
49            "HUD Owned" => SpecialListingConditions::HUDOwned,
50
51            "In Foreclosure" => SpecialListingConditions::InForeclosure,
52
53            "Notice Of Default" => SpecialListingConditions::NoticeOfDefault,
54
55            "Probate Listing" => SpecialListingConditions::ProbateListing,
56
57            "Real Estate Owned" => SpecialListingConditions::RealEstateOwned,
58
59            "Short Sale" => SpecialListingConditions::ShortSale,
60
61            "Standard" => SpecialListingConditions::Standard,
62
63            "Third Party Approval" => SpecialListingConditions::ThirdPartyApproval,
64
65            _ => SpecialListingConditions::OpenEnumeration(s.into()),
66        }
67    }
68
69    fn from_string(s: String) -> SpecialListingConditions {
70        match s.as_ref() {
71            "Auction" => SpecialListingConditions::Auction,
72
73            "Bankruptcy Property" => SpecialListingConditions::BankruptcyProperty,
74
75            "HUD Owned" => SpecialListingConditions::HUDOwned,
76
77            "In Foreclosure" => SpecialListingConditions::InForeclosure,
78
79            "Notice Of Default" => SpecialListingConditions::NoticeOfDefault,
80
81            "Probate Listing" => SpecialListingConditions::ProbateListing,
82
83            "Real Estate Owned" => SpecialListingConditions::RealEstateOwned,
84
85            "Short Sale" => SpecialListingConditions::ShortSale,
86
87            "Standard" => SpecialListingConditions::Standard,
88
89            "Third Party Approval" => SpecialListingConditions::ThirdPartyApproval,
90
91            _ => SpecialListingConditions::OpenEnumeration(s),
92        }
93    }
94
95    fn to_str(&self) -> &str {
96        match self {
97            SpecialListingConditions::Auction => "Auction",
98
99            SpecialListingConditions::BankruptcyProperty => "Bankruptcy Property",
100
101            SpecialListingConditions::HUDOwned => "HUD Owned",
102
103            SpecialListingConditions::InForeclosure => "In Foreclosure",
104
105            SpecialListingConditions::NoticeOfDefault => "Notice Of Default",
106
107            SpecialListingConditions::ProbateListing => "Probate Listing",
108
109            SpecialListingConditions::RealEstateOwned => "Real Estate Owned",
110
111            SpecialListingConditions::ShortSale => "Short Sale",
112
113            SpecialListingConditions::Standard => "Standard",
114
115            SpecialListingConditions::ThirdPartyApproval => "Third Party Approval",
116
117            SpecialListingConditions::OpenEnumeration(ref s) => s,
118        }
119    }
120
121    fn into_string(self) -> String {
122        match self {
123            SpecialListingConditions::Auction => "Auction".into(),
124
125            SpecialListingConditions::BankruptcyProperty => "Bankruptcy Property".into(),
126
127            SpecialListingConditions::HUDOwned => "HUD Owned".into(),
128
129            SpecialListingConditions::InForeclosure => "In Foreclosure".into(),
130
131            SpecialListingConditions::NoticeOfDefault => "Notice Of Default".into(),
132
133            SpecialListingConditions::ProbateListing => "Probate Listing".into(),
134
135            SpecialListingConditions::RealEstateOwned => "Real Estate Owned".into(),
136
137            SpecialListingConditions::ShortSale => "Short Sale".into(),
138
139            SpecialListingConditions::Standard => "Standard".into(),
140
141            SpecialListingConditions::ThirdPartyApproval => "Third Party Approval".into(),
142
143            SpecialListingConditions::OpenEnumeration(s) => s,
144        }
145    }
146
147    fn fallback_value(&self) -> Option<&str> {
148        match self {
149            SpecialListingConditions::OpenEnumeration(ref s) => Some(s),
150            _ => None,
151        }
152    }
153}
154
155impl From<String> for SpecialListingConditions {
156    fn from(s: String) -> SpecialListingConditions {
157        match s.as_ref() {
158            "Auction" => SpecialListingConditions::Auction,
159
160            "Bankruptcy Property" => SpecialListingConditions::BankruptcyProperty,
161
162            "HUD Owned" => SpecialListingConditions::HUDOwned,
163
164            "In Foreclosure" => SpecialListingConditions::InForeclosure,
165
166            "Notice Of Default" => SpecialListingConditions::NoticeOfDefault,
167
168            "Probate Listing" => SpecialListingConditions::ProbateListing,
169
170            "Real Estate Owned" => SpecialListingConditions::RealEstateOwned,
171
172            "Short Sale" => SpecialListingConditions::ShortSale,
173
174            "Standard" => SpecialListingConditions::Standard,
175
176            "Third Party Approval" => SpecialListingConditions::ThirdPartyApproval,
177
178            _ => SpecialListingConditions::OpenEnumeration(s),
179        }
180    }
181}
182
183impl From<&str> for SpecialListingConditions {
184    fn from(s: &str) -> SpecialListingConditions {
185        match s {
186            "Auction" => SpecialListingConditions::Auction,
187
188            "Bankruptcy Property" => SpecialListingConditions::BankruptcyProperty,
189
190            "HUD Owned" => SpecialListingConditions::HUDOwned,
191
192            "In Foreclosure" => SpecialListingConditions::InForeclosure,
193
194            "Notice Of Default" => SpecialListingConditions::NoticeOfDefault,
195
196            "Probate Listing" => SpecialListingConditions::ProbateListing,
197
198            "Real Estate Owned" => SpecialListingConditions::RealEstateOwned,
199
200            "Short Sale" => SpecialListingConditions::ShortSale,
201
202            "Standard" => SpecialListingConditions::Standard,
203
204            "Third Party Approval" => SpecialListingConditions::ThirdPartyApproval,
205
206            _ => SpecialListingConditions::OpenEnumeration(s.into()),
207        }
208    }
209}
210
211impl<'a> From<&'a SpecialListingConditions> for &'a str {
212    fn from(s: &'a SpecialListingConditions) -> &'a str {
213        match s {
214            SpecialListingConditions::Auction => "Auction",
215
216            SpecialListingConditions::BankruptcyProperty => "Bankruptcy Property",
217
218            SpecialListingConditions::HUDOwned => "HUD Owned",
219
220            SpecialListingConditions::InForeclosure => "In Foreclosure",
221
222            SpecialListingConditions::NoticeOfDefault => "Notice Of Default",
223
224            SpecialListingConditions::ProbateListing => "Probate Listing",
225
226            SpecialListingConditions::RealEstateOwned => "Real Estate Owned",
227
228            SpecialListingConditions::ShortSale => "Short Sale",
229
230            SpecialListingConditions::Standard => "Standard",
231
232            SpecialListingConditions::ThirdPartyApproval => "Third Party Approval",
233
234            SpecialListingConditions::OpenEnumeration(s) => s,
235        }
236    }
237}
238
239impl Serialize for SpecialListingConditions {
240    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
241    where
242        S: serde::Serializer,
243    {
244        serializer.serialize_str(self.into())
245    }
246}
247
248impl<'de> Deserialize<'de> for SpecialListingConditions {
249    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
250    where
251        D: serde::Deserializer<'de>,
252    {
253        let s = String::deserialize(deserializer)?;
254        Ok(From::from(s))
255    }
256}