Skip to main content

dfhack_proto/generated/messages/
stockpiles.rs

1// This file is generated by rust-protobuf 3.7.2. Do not edit
2// .proto file is parsed by pure
3// @generated
4
5// https://github.com/rust-lang/rust-clippy/issues/702
6#![allow(unknown_lints)]
7#![allow(clippy::all)]
8
9#![allow(unused_attributes)]
10#![cfg_attr(rustfmt, rustfmt::skip)]
11
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_results)]
19#![allow(unused_mut)]
20
21//! Generated file from `stockpiles.proto`
22
23/// Generated files are compatible only with the same version
24/// of protobuf runtime.
25const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_3_7_2;
26
27// @@protoc_insertion_point(message:dfstockpiles.StockpileSettings)
28#[derive(PartialEq,Clone,Default,Debug)]
29pub struct StockpileSettings {
30    // message fields
31    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.max_barrels)
32    pub max_barrels: ::std::option::Option<i32>,
33    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.max_bins)
34    pub max_bins: ::std::option::Option<i32>,
35    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.max_wheelbarrows)
36    pub max_wheelbarrows: ::std::option::Option<i32>,
37    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.use_links_only)
38    pub use_links_only: ::std::option::Option<bool>,
39    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.allow_organic)
40    pub allow_organic: ::std::option::Option<bool>,
41    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.allow_inorganic)
42    pub allow_inorganic: ::std::option::Option<bool>,
43    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ammo)
44    pub ammo: ::protobuf::MessageField<stockpile_settings::AmmoSet>,
45    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.animals)
46    pub animals: ::protobuf::MessageField<stockpile_settings::AnimalsSet>,
47    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.armor)
48    pub armor: ::protobuf::MessageField<stockpile_settings::ArmorSet>,
49    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.barsblocks)
50    pub barsblocks: ::protobuf::MessageField<stockpile_settings::BarsBlocksSet>,
51    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.cloth)
52    pub cloth: ::protobuf::MessageField<stockpile_settings::ClothSet>,
53    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.coin)
54    pub coin: ::protobuf::MessageField<stockpile_settings::CoinSet>,
55    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.finished_goods)
56    pub finished_goods: ::protobuf::MessageField<stockpile_settings::FinishedGoodsSet>,
57    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.food)
58    pub food: ::protobuf::MessageField<stockpile_settings::FoodSet>,
59    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.furniture)
60    pub furniture: ::protobuf::MessageField<stockpile_settings::FurnitureSet>,
61    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.gems)
62    pub gems: ::protobuf::MessageField<stockpile_settings::GemsSet>,
63    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.leather)
64    pub leather: ::protobuf::MessageField<stockpile_settings::LeatherSet>,
65    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.corpses_v50)
66    pub corpses_v50: ::protobuf::MessageField<stockpile_settings::CorpsesSet>,
67    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.refuse)
68    pub refuse: ::protobuf::MessageField<stockpile_settings::RefuseSet>,
69    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.sheet)
70    pub sheet: ::protobuf::MessageField<stockpile_settings::SheetSet>,
71    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.stone)
72    pub stone: ::protobuf::MessageField<stockpile_settings::StoneSet>,
73    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.weapons)
74    pub weapons: ::protobuf::MessageField<stockpile_settings::WeaponsSet>,
75    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.wood)
76    pub wood: ::protobuf::MessageField<stockpile_settings::WoodSet>,
77    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.corpses)
78    pub corpses: ::std::option::Option<bool>,
79    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ore)
80    pub ore: ::protobuf::MessageField<stockpile_settings::OreSet>,
81    // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.unknown1)
82    pub unknown1: ::std::option::Option<i32>,
83    // special fields
84    // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.special_fields)
85    pub special_fields: ::protobuf::SpecialFields,
86}
87
88impl<'a> ::std::default::Default for &'a StockpileSettings {
89    fn default() -> &'a StockpileSettings {
90        <StockpileSettings as ::protobuf::Message>::default_instance()
91    }
92}
93
94impl StockpileSettings {
95    pub fn new() -> StockpileSettings {
96        ::std::default::Default::default()
97    }
98
99    // optional int32 max_barrels = 20;
100
101    pub fn max_barrels(&self) -> i32 {
102        self.max_barrels.unwrap_or(0)
103    }
104
105    pub fn clear_max_barrels(&mut self) {
106        self.max_barrels = ::std::option::Option::None;
107    }
108
109    pub fn has_max_barrels(&self) -> bool {
110        self.max_barrels.is_some()
111    }
112
113    // Param is passed by value, moved
114    pub fn set_max_barrels(&mut self, v: i32) {
115        self.max_barrels = ::std::option::Option::Some(v);
116    }
117
118    // optional int32 max_bins = 21;
119
120    pub fn max_bins(&self) -> i32 {
121        self.max_bins.unwrap_or(0)
122    }
123
124    pub fn clear_max_bins(&mut self) {
125        self.max_bins = ::std::option::Option::None;
126    }
127
128    pub fn has_max_bins(&self) -> bool {
129        self.max_bins.is_some()
130    }
131
132    // Param is passed by value, moved
133    pub fn set_max_bins(&mut self, v: i32) {
134        self.max_bins = ::std::option::Option::Some(v);
135    }
136
137    // optional int32 max_wheelbarrows = 22;
138
139    pub fn max_wheelbarrows(&self) -> i32 {
140        self.max_wheelbarrows.unwrap_or(0)
141    }
142
143    pub fn clear_max_wheelbarrows(&mut self) {
144        self.max_wheelbarrows = ::std::option::Option::None;
145    }
146
147    pub fn has_max_wheelbarrows(&self) -> bool {
148        self.max_wheelbarrows.is_some()
149    }
150
151    // Param is passed by value, moved
152    pub fn set_max_wheelbarrows(&mut self, v: i32) {
153        self.max_wheelbarrows = ::std::option::Option::Some(v);
154    }
155
156    // optional bool use_links_only = 23;
157
158    pub fn use_links_only(&self) -> bool {
159        self.use_links_only.unwrap_or(false)
160    }
161
162    pub fn clear_use_links_only(&mut self) {
163        self.use_links_only = ::std::option::Option::None;
164    }
165
166    pub fn has_use_links_only(&self) -> bool {
167        self.use_links_only.is_some()
168    }
169
170    // Param is passed by value, moved
171    pub fn set_use_links_only(&mut self, v: bool) {
172        self.use_links_only = ::std::option::Option::Some(v);
173    }
174
175    // optional bool allow_organic = 18;
176
177    pub fn allow_organic(&self) -> bool {
178        self.allow_organic.unwrap_or(false)
179    }
180
181    pub fn clear_allow_organic(&mut self) {
182        self.allow_organic = ::std::option::Option::None;
183    }
184
185    pub fn has_allow_organic(&self) -> bool {
186        self.allow_organic.is_some()
187    }
188
189    // Param is passed by value, moved
190    pub fn set_allow_organic(&mut self, v: bool) {
191        self.allow_organic = ::std::option::Option::Some(v);
192    }
193
194    // optional bool allow_inorganic = 19;
195
196    pub fn allow_inorganic(&self) -> bool {
197        self.allow_inorganic.unwrap_or(false)
198    }
199
200    pub fn clear_allow_inorganic(&mut self) {
201        self.allow_inorganic = ::std::option::Option::None;
202    }
203
204    pub fn has_allow_inorganic(&self) -> bool {
205        self.allow_inorganic.is_some()
206    }
207
208    // Param is passed by value, moved
209    pub fn set_allow_inorganic(&mut self, v: bool) {
210        self.allow_inorganic = ::std::option::Option::Some(v);
211    }
212
213    // optional bool corpses = 24;
214
215    pub fn corpses(&self) -> bool {
216        self.corpses.unwrap_or(false)
217    }
218
219    pub fn clear_corpses(&mut self) {
220        self.corpses = ::std::option::Option::None;
221    }
222
223    pub fn has_corpses(&self) -> bool {
224        self.corpses.is_some()
225    }
226
227    // Param is passed by value, moved
228    pub fn set_corpses(&mut self, v: bool) {
229        self.corpses = ::std::option::Option::Some(v);
230    }
231
232    // optional int32 unknown1 = 4;
233
234    pub fn unknown1(&self) -> i32 {
235        self.unknown1.unwrap_or(0)
236    }
237
238    pub fn clear_unknown1(&mut self) {
239        self.unknown1 = ::std::option::Option::None;
240    }
241
242    pub fn has_unknown1(&self) -> bool {
243        self.unknown1.is_some()
244    }
245
246    // Param is passed by value, moved
247    pub fn set_unknown1(&mut self, v: i32) {
248        self.unknown1 = ::std::option::Option::Some(v);
249    }
250
251    fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
252        let mut fields = ::std::vec::Vec::with_capacity(26);
253        let mut oneofs = ::std::vec::Vec::with_capacity(0);
254        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
255            "max_barrels",
256            |m: &StockpileSettings| { &m.max_barrels },
257            |m: &mut StockpileSettings| { &mut m.max_barrels },
258        ));
259        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
260            "max_bins",
261            |m: &StockpileSettings| { &m.max_bins },
262            |m: &mut StockpileSettings| { &mut m.max_bins },
263        ));
264        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
265            "max_wheelbarrows",
266            |m: &StockpileSettings| { &m.max_wheelbarrows },
267            |m: &mut StockpileSettings| { &mut m.max_wheelbarrows },
268        ));
269        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
270            "use_links_only",
271            |m: &StockpileSettings| { &m.use_links_only },
272            |m: &mut StockpileSettings| { &mut m.use_links_only },
273        ));
274        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
275            "allow_organic",
276            |m: &StockpileSettings| { &m.allow_organic },
277            |m: &mut StockpileSettings| { &mut m.allow_organic },
278        ));
279        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
280            "allow_inorganic",
281            |m: &StockpileSettings| { &m.allow_inorganic },
282            |m: &mut StockpileSettings| { &mut m.allow_inorganic },
283        ));
284        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::AmmoSet>(
285            "ammo",
286            |m: &StockpileSettings| { &m.ammo },
287            |m: &mut StockpileSettings| { &mut m.ammo },
288        ));
289        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::AnimalsSet>(
290            "animals",
291            |m: &StockpileSettings| { &m.animals },
292            |m: &mut StockpileSettings| { &mut m.animals },
293        ));
294        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::ArmorSet>(
295            "armor",
296            |m: &StockpileSettings| { &m.armor },
297            |m: &mut StockpileSettings| { &mut m.armor },
298        ));
299        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::BarsBlocksSet>(
300            "barsblocks",
301            |m: &StockpileSettings| { &m.barsblocks },
302            |m: &mut StockpileSettings| { &mut m.barsblocks },
303        ));
304        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::ClothSet>(
305            "cloth",
306            |m: &StockpileSettings| { &m.cloth },
307            |m: &mut StockpileSettings| { &mut m.cloth },
308        ));
309        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::CoinSet>(
310            "coin",
311            |m: &StockpileSettings| { &m.coin },
312            |m: &mut StockpileSettings| { &mut m.coin },
313        ));
314        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::FinishedGoodsSet>(
315            "finished_goods",
316            |m: &StockpileSettings| { &m.finished_goods },
317            |m: &mut StockpileSettings| { &mut m.finished_goods },
318        ));
319        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::FoodSet>(
320            "food",
321            |m: &StockpileSettings| { &m.food },
322            |m: &mut StockpileSettings| { &mut m.food },
323        ));
324        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::FurnitureSet>(
325            "furniture",
326            |m: &StockpileSettings| { &m.furniture },
327            |m: &mut StockpileSettings| { &mut m.furniture },
328        ));
329        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::GemsSet>(
330            "gems",
331            |m: &StockpileSettings| { &m.gems },
332            |m: &mut StockpileSettings| { &mut m.gems },
333        ));
334        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::LeatherSet>(
335            "leather",
336            |m: &StockpileSettings| { &m.leather },
337            |m: &mut StockpileSettings| { &mut m.leather },
338        ));
339        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::CorpsesSet>(
340            "corpses_v50",
341            |m: &StockpileSettings| { &m.corpses_v50 },
342            |m: &mut StockpileSettings| { &mut m.corpses_v50 },
343        ));
344        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::RefuseSet>(
345            "refuse",
346            |m: &StockpileSettings| { &m.refuse },
347            |m: &mut StockpileSettings| { &mut m.refuse },
348        ));
349        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::SheetSet>(
350            "sheet",
351            |m: &StockpileSettings| { &m.sheet },
352            |m: &mut StockpileSettings| { &mut m.sheet },
353        ));
354        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::StoneSet>(
355            "stone",
356            |m: &StockpileSettings| { &m.stone },
357            |m: &mut StockpileSettings| { &mut m.stone },
358        ));
359        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::WeaponsSet>(
360            "weapons",
361            |m: &StockpileSettings| { &m.weapons },
362            |m: &mut StockpileSettings| { &mut m.weapons },
363        ));
364        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::WoodSet>(
365            "wood",
366            |m: &StockpileSettings| { &m.wood },
367            |m: &mut StockpileSettings| { &mut m.wood },
368        ));
369        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
370            "corpses",
371            |m: &StockpileSettings| { &m.corpses },
372            |m: &mut StockpileSettings| { &mut m.corpses },
373        ));
374        fields.push(::protobuf::reflect::rt::v2::make_message_field_accessor::<_, stockpile_settings::OreSet>(
375            "ore",
376            |m: &StockpileSettings| { &m.ore },
377            |m: &mut StockpileSettings| { &mut m.ore },
378        ));
379        fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
380            "unknown1",
381            |m: &StockpileSettings| { &m.unknown1 },
382            |m: &mut StockpileSettings| { &mut m.unknown1 },
383        ));
384        ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<StockpileSettings>(
385            "StockpileSettings",
386            fields,
387            oneofs,
388        )
389    }
390}
391
392impl ::protobuf::Message for StockpileSettings {
393    const NAME: &'static str = "StockpileSettings";
394
395    fn is_initialized(&self) -> bool {
396        true
397    }
398
399    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
400        while let Some(tag) = is.read_raw_tag_or_eof()? {
401            match tag {
402                160 => {
403                    self.max_barrels = ::std::option::Option::Some(is.read_int32()?);
404                },
405                168 => {
406                    self.max_bins = ::std::option::Option::Some(is.read_int32()?);
407                },
408                176 => {
409                    self.max_wheelbarrows = ::std::option::Option::Some(is.read_int32()?);
410                },
411                184 => {
412                    self.use_links_only = ::std::option::Option::Some(is.read_bool()?);
413                },
414                144 => {
415                    self.allow_organic = ::std::option::Option::Some(is.read_bool()?);
416                },
417                152 => {
418                    self.allow_inorganic = ::std::option::Option::Some(is.read_bool()?);
419                },
420                66 => {
421                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.ammo)?;
422                },
423                10 => {
424                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.animals)?;
425                },
426                138 => {
427                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.armor)?;
428                },
429                82 => {
430                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.barsblocks)?;
431                },
432                114 => {
433                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.cloth)?;
434                },
435                74 => {
436                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.coin)?;
437                },
438                98 => {
439                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.finished_goods)?;
440                },
441                18 => {
442                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.food)?;
443                },
444                26 => {
445                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.furniture)?;
446                },
447                90 => {
448                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.gems)?;
449                },
450                106 => {
451                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.leather)?;
452                },
453                202 => {
454                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.corpses_v50)?;
455                },
456                42 => {
457                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.refuse)?;
458                },
459                210 => {
460                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.sheet)?;
461                },
462                50 => {
463                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.stone)?;
464                },
465                130 => {
466                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.weapons)?;
467                },
468                122 => {
469                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.wood)?;
470                },
471                192 => {
472                    self.corpses = ::std::option::Option::Some(is.read_bool()?);
473                },
474                58 => {
475                    ::protobuf::rt::read_singular_message_into_field(is, &mut self.ore)?;
476                },
477                32 => {
478                    self.unknown1 = ::std::option::Option::Some(is.read_int32()?);
479                },
480                tag => {
481                    ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
482                },
483            };
484        }
485        ::std::result::Result::Ok(())
486    }
487
488    // Compute sizes of nested messages
489    #[allow(unused_variables)]
490    fn compute_size(&self) -> u64 {
491        let mut my_size = 0;
492        if let Some(v) = self.max_barrels {
493            my_size += ::protobuf::rt::int32_size(20, v);
494        }
495        if let Some(v) = self.max_bins {
496            my_size += ::protobuf::rt::int32_size(21, v);
497        }
498        if let Some(v) = self.max_wheelbarrows {
499            my_size += ::protobuf::rt::int32_size(22, v);
500        }
501        if let Some(v) = self.use_links_only {
502            my_size += 2 + 1;
503        }
504        if let Some(v) = self.allow_organic {
505            my_size += 2 + 1;
506        }
507        if let Some(v) = self.allow_inorganic {
508            my_size += 2 + 1;
509        }
510        if let Some(v) = self.ammo.as_ref() {
511            let len = v.compute_size();
512            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
513        }
514        if let Some(v) = self.animals.as_ref() {
515            let len = v.compute_size();
516            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
517        }
518        if let Some(v) = self.armor.as_ref() {
519            let len = v.compute_size();
520            my_size += 2 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
521        }
522        if let Some(v) = self.barsblocks.as_ref() {
523            let len = v.compute_size();
524            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
525        }
526        if let Some(v) = self.cloth.as_ref() {
527            let len = v.compute_size();
528            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
529        }
530        if let Some(v) = self.coin.as_ref() {
531            let len = v.compute_size();
532            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
533        }
534        if let Some(v) = self.finished_goods.as_ref() {
535            let len = v.compute_size();
536            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
537        }
538        if let Some(v) = self.food.as_ref() {
539            let len = v.compute_size();
540            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
541        }
542        if let Some(v) = self.furniture.as_ref() {
543            let len = v.compute_size();
544            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
545        }
546        if let Some(v) = self.gems.as_ref() {
547            let len = v.compute_size();
548            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
549        }
550        if let Some(v) = self.leather.as_ref() {
551            let len = v.compute_size();
552            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
553        }
554        if let Some(v) = self.corpses_v50.as_ref() {
555            let len = v.compute_size();
556            my_size += 2 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
557        }
558        if let Some(v) = self.refuse.as_ref() {
559            let len = v.compute_size();
560            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
561        }
562        if let Some(v) = self.sheet.as_ref() {
563            let len = v.compute_size();
564            my_size += 2 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
565        }
566        if let Some(v) = self.stone.as_ref() {
567            let len = v.compute_size();
568            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
569        }
570        if let Some(v) = self.weapons.as_ref() {
571            let len = v.compute_size();
572            my_size += 2 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
573        }
574        if let Some(v) = self.wood.as_ref() {
575            let len = v.compute_size();
576            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
577        }
578        if let Some(v) = self.corpses {
579            my_size += 2 + 1;
580        }
581        if let Some(v) = self.ore.as_ref() {
582            let len = v.compute_size();
583            my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len;
584        }
585        if let Some(v) = self.unknown1 {
586            my_size += ::protobuf::rt::int32_size(4, v);
587        }
588        my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
589        self.special_fields.cached_size().set(my_size as u32);
590        my_size
591    }
592
593    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
594        if let Some(v) = self.max_barrels {
595            os.write_int32(20, v)?;
596        }
597        if let Some(v) = self.max_bins {
598            os.write_int32(21, v)?;
599        }
600        if let Some(v) = self.max_wheelbarrows {
601            os.write_int32(22, v)?;
602        }
603        if let Some(v) = self.use_links_only {
604            os.write_bool(23, v)?;
605        }
606        if let Some(v) = self.allow_organic {
607            os.write_bool(18, v)?;
608        }
609        if let Some(v) = self.allow_inorganic {
610            os.write_bool(19, v)?;
611        }
612        if let Some(v) = self.ammo.as_ref() {
613            ::protobuf::rt::write_message_field_with_cached_size(8, v, os)?;
614        }
615        if let Some(v) = self.animals.as_ref() {
616            ::protobuf::rt::write_message_field_with_cached_size(1, v, os)?;
617        }
618        if let Some(v) = self.armor.as_ref() {
619            ::protobuf::rt::write_message_field_with_cached_size(17, v, os)?;
620        }
621        if let Some(v) = self.barsblocks.as_ref() {
622            ::protobuf::rt::write_message_field_with_cached_size(10, v, os)?;
623        }
624        if let Some(v) = self.cloth.as_ref() {
625            ::protobuf::rt::write_message_field_with_cached_size(14, v, os)?;
626        }
627        if let Some(v) = self.coin.as_ref() {
628            ::protobuf::rt::write_message_field_with_cached_size(9, v, os)?;
629        }
630        if let Some(v) = self.finished_goods.as_ref() {
631            ::protobuf::rt::write_message_field_with_cached_size(12, v, os)?;
632        }
633        if let Some(v) = self.food.as_ref() {
634            ::protobuf::rt::write_message_field_with_cached_size(2, v, os)?;
635        }
636        if let Some(v) = self.furniture.as_ref() {
637            ::protobuf::rt::write_message_field_with_cached_size(3, v, os)?;
638        }
639        if let Some(v) = self.gems.as_ref() {
640            ::protobuf::rt::write_message_field_with_cached_size(11, v, os)?;
641        }
642        if let Some(v) = self.leather.as_ref() {
643            ::protobuf::rt::write_message_field_with_cached_size(13, v, os)?;
644        }
645        if let Some(v) = self.corpses_v50.as_ref() {
646            ::protobuf::rt::write_message_field_with_cached_size(25, v, os)?;
647        }
648        if let Some(v) = self.refuse.as_ref() {
649            ::protobuf::rt::write_message_field_with_cached_size(5, v, os)?;
650        }
651        if let Some(v) = self.sheet.as_ref() {
652            ::protobuf::rt::write_message_field_with_cached_size(26, v, os)?;
653        }
654        if let Some(v) = self.stone.as_ref() {
655            ::protobuf::rt::write_message_field_with_cached_size(6, v, os)?;
656        }
657        if let Some(v) = self.weapons.as_ref() {
658            ::protobuf::rt::write_message_field_with_cached_size(16, v, os)?;
659        }
660        if let Some(v) = self.wood.as_ref() {
661            ::protobuf::rt::write_message_field_with_cached_size(15, v, os)?;
662        }
663        if let Some(v) = self.corpses {
664            os.write_bool(24, v)?;
665        }
666        if let Some(v) = self.ore.as_ref() {
667            ::protobuf::rt::write_message_field_with_cached_size(7, v, os)?;
668        }
669        if let Some(v) = self.unknown1 {
670            os.write_int32(4, v)?;
671        }
672        os.write_unknown_fields(self.special_fields.unknown_fields())?;
673        ::std::result::Result::Ok(())
674    }
675
676    fn special_fields(&self) -> &::protobuf::SpecialFields {
677        &self.special_fields
678    }
679
680    fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
681        &mut self.special_fields
682    }
683
684    fn new() -> StockpileSettings {
685        StockpileSettings::new()
686    }
687
688    fn clear(&mut self) {
689        self.max_barrels = ::std::option::Option::None;
690        self.max_bins = ::std::option::Option::None;
691        self.max_wheelbarrows = ::std::option::Option::None;
692        self.use_links_only = ::std::option::Option::None;
693        self.allow_organic = ::std::option::Option::None;
694        self.allow_inorganic = ::std::option::Option::None;
695        self.ammo.clear();
696        self.animals.clear();
697        self.armor.clear();
698        self.barsblocks.clear();
699        self.cloth.clear();
700        self.coin.clear();
701        self.finished_goods.clear();
702        self.food.clear();
703        self.furniture.clear();
704        self.gems.clear();
705        self.leather.clear();
706        self.corpses_v50.clear();
707        self.refuse.clear();
708        self.sheet.clear();
709        self.stone.clear();
710        self.weapons.clear();
711        self.wood.clear();
712        self.corpses = ::std::option::Option::None;
713        self.ore.clear();
714        self.unknown1 = ::std::option::Option::None;
715        self.special_fields.clear();
716    }
717
718    fn default_instance() -> &'static StockpileSettings {
719        static instance: StockpileSettings = StockpileSettings {
720            max_barrels: ::std::option::Option::None,
721            max_bins: ::std::option::Option::None,
722            max_wheelbarrows: ::std::option::Option::None,
723            use_links_only: ::std::option::Option::None,
724            allow_organic: ::std::option::Option::None,
725            allow_inorganic: ::std::option::Option::None,
726            ammo: ::protobuf::MessageField::none(),
727            animals: ::protobuf::MessageField::none(),
728            armor: ::protobuf::MessageField::none(),
729            barsblocks: ::protobuf::MessageField::none(),
730            cloth: ::protobuf::MessageField::none(),
731            coin: ::protobuf::MessageField::none(),
732            finished_goods: ::protobuf::MessageField::none(),
733            food: ::protobuf::MessageField::none(),
734            furniture: ::protobuf::MessageField::none(),
735            gems: ::protobuf::MessageField::none(),
736            leather: ::protobuf::MessageField::none(),
737            corpses_v50: ::protobuf::MessageField::none(),
738            refuse: ::protobuf::MessageField::none(),
739            sheet: ::protobuf::MessageField::none(),
740            stone: ::protobuf::MessageField::none(),
741            weapons: ::protobuf::MessageField::none(),
742            wood: ::protobuf::MessageField::none(),
743            corpses: ::std::option::Option::None,
744            ore: ::protobuf::MessageField::none(),
745            unknown1: ::std::option::Option::None,
746            special_fields: ::protobuf::SpecialFields::new(),
747        };
748        &instance
749    }
750}
751
752impl ::protobuf::MessageFull for StockpileSettings {
753    fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
754        static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
755        descriptor.get(|| file_descriptor().message_by_package_relative_name("StockpileSettings").unwrap()).clone()
756    }
757}
758
759impl ::std::fmt::Display for StockpileSettings {
760    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
761        ::protobuf::text_format::fmt(self, f)
762    }
763}
764
765impl ::protobuf::reflect::ProtobufValue for StockpileSettings {
766    type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
767}
768
769/// Nested message and enums of message `StockpileSettings`
770pub mod stockpile_settings {
771    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.AnimalsSet)
772    #[derive(PartialEq,Clone,Default,Debug)]
773    pub struct AnimalsSet {
774        // message fields
775        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AnimalsSet.all)
776        pub all: ::std::option::Option<bool>,
777        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AnimalsSet.empty_cages)
778        pub empty_cages: ::std::option::Option<bool>,
779        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AnimalsSet.empty_traps)
780        pub empty_traps: ::std::option::Option<bool>,
781        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AnimalsSet.enabled)
782        pub enabled: ::std::vec::Vec<::std::string::String>,
783        // special fields
784        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.AnimalsSet.special_fields)
785        pub special_fields: ::protobuf::SpecialFields,
786    }
787
788    impl<'a> ::std::default::Default for &'a AnimalsSet {
789        fn default() -> &'a AnimalsSet {
790            <AnimalsSet as ::protobuf::Message>::default_instance()
791        }
792    }
793
794    impl AnimalsSet {
795        pub fn new() -> AnimalsSet {
796            ::std::default::Default::default()
797        }
798
799        // optional bool all = 4;
800
801        pub fn all(&self) -> bool {
802            self.all.unwrap_or(false)
803        }
804
805        pub fn clear_all(&mut self) {
806            self.all = ::std::option::Option::None;
807        }
808
809        pub fn has_all(&self) -> bool {
810            self.all.is_some()
811        }
812
813        // Param is passed by value, moved
814        pub fn set_all(&mut self, v: bool) {
815            self.all = ::std::option::Option::Some(v);
816        }
817
818        // optional bool empty_cages = 1;
819
820        pub fn empty_cages(&self) -> bool {
821            self.empty_cages.unwrap_or(false)
822        }
823
824        pub fn clear_empty_cages(&mut self) {
825            self.empty_cages = ::std::option::Option::None;
826        }
827
828        pub fn has_empty_cages(&self) -> bool {
829            self.empty_cages.is_some()
830        }
831
832        // Param is passed by value, moved
833        pub fn set_empty_cages(&mut self, v: bool) {
834            self.empty_cages = ::std::option::Option::Some(v);
835        }
836
837        // optional bool empty_traps = 2;
838
839        pub fn empty_traps(&self) -> bool {
840            self.empty_traps.unwrap_or(false)
841        }
842
843        pub fn clear_empty_traps(&mut self) {
844            self.empty_traps = ::std::option::Option::None;
845        }
846
847        pub fn has_empty_traps(&self) -> bool {
848            self.empty_traps.is_some()
849        }
850
851        // Param is passed by value, moved
852        pub fn set_empty_traps(&mut self, v: bool) {
853            self.empty_traps = ::std::option::Option::Some(v);
854        }
855
856        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
857            let mut fields = ::std::vec::Vec::with_capacity(4);
858            let mut oneofs = ::std::vec::Vec::with_capacity(0);
859            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
860                "all",
861                |m: &AnimalsSet| { &m.all },
862                |m: &mut AnimalsSet| { &mut m.all },
863            ));
864            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
865                "empty_cages",
866                |m: &AnimalsSet| { &m.empty_cages },
867                |m: &mut AnimalsSet| { &mut m.empty_cages },
868            ));
869            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
870                "empty_traps",
871                |m: &AnimalsSet| { &m.empty_traps },
872                |m: &mut AnimalsSet| { &mut m.empty_traps },
873            ));
874            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
875                "enabled",
876                |m: &AnimalsSet| { &m.enabled },
877                |m: &mut AnimalsSet| { &mut m.enabled },
878            ));
879            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<AnimalsSet>(
880                "StockpileSettings.AnimalsSet",
881                fields,
882                oneofs,
883            )
884        }
885    }
886
887    impl ::protobuf::Message for AnimalsSet {
888        const NAME: &'static str = "AnimalsSet";
889
890        fn is_initialized(&self) -> bool {
891            true
892        }
893
894        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
895            while let Some(tag) = is.read_raw_tag_or_eof()? {
896                match tag {
897                    32 => {
898                        self.all = ::std::option::Option::Some(is.read_bool()?);
899                    },
900                    8 => {
901                        self.empty_cages = ::std::option::Option::Some(is.read_bool()?);
902                    },
903                    16 => {
904                        self.empty_traps = ::std::option::Option::Some(is.read_bool()?);
905                    },
906                    26 => {
907                        self.enabled.push(is.read_string()?);
908                    },
909                    tag => {
910                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
911                    },
912                };
913            }
914            ::std::result::Result::Ok(())
915        }
916
917        // Compute sizes of nested messages
918        #[allow(unused_variables)]
919        fn compute_size(&self) -> u64 {
920            let mut my_size = 0;
921            if let Some(v) = self.all {
922                my_size += 1 + 1;
923            }
924            if let Some(v) = self.empty_cages {
925                my_size += 1 + 1;
926            }
927            if let Some(v) = self.empty_traps {
928                my_size += 1 + 1;
929            }
930            for value in &self.enabled {
931                my_size += ::protobuf::rt::string_size(3, &value);
932            };
933            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
934            self.special_fields.cached_size().set(my_size as u32);
935            my_size
936        }
937
938        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
939            if let Some(v) = self.all {
940                os.write_bool(4, v)?;
941            }
942            if let Some(v) = self.empty_cages {
943                os.write_bool(1, v)?;
944            }
945            if let Some(v) = self.empty_traps {
946                os.write_bool(2, v)?;
947            }
948            for v in &self.enabled {
949                os.write_string(3, &v)?;
950            };
951            os.write_unknown_fields(self.special_fields.unknown_fields())?;
952            ::std::result::Result::Ok(())
953        }
954
955        fn special_fields(&self) -> &::protobuf::SpecialFields {
956            &self.special_fields
957        }
958
959        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
960            &mut self.special_fields
961        }
962
963        fn new() -> AnimalsSet {
964            AnimalsSet::new()
965        }
966
967        fn clear(&mut self) {
968            self.all = ::std::option::Option::None;
969            self.empty_cages = ::std::option::Option::None;
970            self.empty_traps = ::std::option::Option::None;
971            self.enabled.clear();
972            self.special_fields.clear();
973        }
974
975        fn default_instance() -> &'static AnimalsSet {
976            static instance: AnimalsSet = AnimalsSet {
977                all: ::std::option::Option::None,
978                empty_cages: ::std::option::Option::None,
979                empty_traps: ::std::option::Option::None,
980                enabled: ::std::vec::Vec::new(),
981                special_fields: ::protobuf::SpecialFields::new(),
982            };
983            &instance
984        }
985    }
986
987    impl ::protobuf::MessageFull for AnimalsSet {
988        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
989            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
990            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.AnimalsSet").unwrap()).clone()
991        }
992    }
993
994    impl ::std::fmt::Display for AnimalsSet {
995        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
996            ::protobuf::text_format::fmt(self, f)
997        }
998    }
999
1000    impl ::protobuf::reflect::ProtobufValue for AnimalsSet {
1001        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1002    }
1003
1004    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.FoodSet)
1005    #[derive(PartialEq,Clone,Default,Debug)]
1006    pub struct FoodSet {
1007        // message fields
1008        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.all)
1009        pub all: ::std::option::Option<bool>,
1010        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.meat)
1011        pub meat: ::std::vec::Vec<::std::string::String>,
1012        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.fish)
1013        pub fish: ::std::vec::Vec<::std::string::String>,
1014        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.unprepared_fish)
1015        pub unprepared_fish: ::std::vec::Vec<::std::string::String>,
1016        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.egg)
1017        pub egg: ::std::vec::Vec<::std::string::String>,
1018        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.plants)
1019        pub plants: ::std::vec::Vec<::std::string::String>,
1020        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.drink_plant)
1021        pub drink_plant: ::std::vec::Vec<::std::string::String>,
1022        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.drink_animal)
1023        pub drink_animal: ::std::vec::Vec<::std::string::String>,
1024        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.cheese_plant)
1025        pub cheese_plant: ::std::vec::Vec<::std::string::String>,
1026        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.cheese_animal)
1027        pub cheese_animal: ::std::vec::Vec<::std::string::String>,
1028        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.seeds)
1029        pub seeds: ::std::vec::Vec<::std::string::String>,
1030        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.leaves)
1031        pub leaves: ::std::vec::Vec<::std::string::String>,
1032        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.powder_plant)
1033        pub powder_plant: ::std::vec::Vec<::std::string::String>,
1034        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.powder_creature)
1035        pub powder_creature: ::std::vec::Vec<::std::string::String>,
1036        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.glob)
1037        pub glob: ::std::vec::Vec<::std::string::String>,
1038        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.glob_paste)
1039        pub glob_paste: ::std::vec::Vec<::std::string::String>,
1040        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.glob_pressed)
1041        pub glob_pressed: ::std::vec::Vec<::std::string::String>,
1042        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.liquid_plant)
1043        pub liquid_plant: ::std::vec::Vec<::std::string::String>,
1044        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.liquid_animal)
1045        pub liquid_animal: ::std::vec::Vec<::std::string::String>,
1046        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.liquid_misc)
1047        pub liquid_misc: ::std::vec::Vec<::std::string::String>,
1048        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FoodSet.prepared_meals)
1049        pub prepared_meals: ::std::option::Option<bool>,
1050        // special fields
1051        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.FoodSet.special_fields)
1052        pub special_fields: ::protobuf::SpecialFields,
1053    }
1054
1055    impl<'a> ::std::default::Default for &'a FoodSet {
1056        fn default() -> &'a FoodSet {
1057            <FoodSet as ::protobuf::Message>::default_instance()
1058        }
1059    }
1060
1061    impl FoodSet {
1062        pub fn new() -> FoodSet {
1063            ::std::default::Default::default()
1064        }
1065
1066        // optional bool all = 21;
1067
1068        pub fn all(&self) -> bool {
1069            self.all.unwrap_or(false)
1070        }
1071
1072        pub fn clear_all(&mut self) {
1073            self.all = ::std::option::Option::None;
1074        }
1075
1076        pub fn has_all(&self) -> bool {
1077            self.all.is_some()
1078        }
1079
1080        // Param is passed by value, moved
1081        pub fn set_all(&mut self, v: bool) {
1082            self.all = ::std::option::Option::Some(v);
1083        }
1084
1085        // optional bool prepared_meals = 19;
1086
1087        pub fn prepared_meals(&self) -> bool {
1088            self.prepared_meals.unwrap_or(false)
1089        }
1090
1091        pub fn clear_prepared_meals(&mut self) {
1092            self.prepared_meals = ::std::option::Option::None;
1093        }
1094
1095        pub fn has_prepared_meals(&self) -> bool {
1096            self.prepared_meals.is_some()
1097        }
1098
1099        // Param is passed by value, moved
1100        pub fn set_prepared_meals(&mut self, v: bool) {
1101            self.prepared_meals = ::std::option::Option::Some(v);
1102        }
1103
1104        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1105            let mut fields = ::std::vec::Vec::with_capacity(21);
1106            let mut oneofs = ::std::vec::Vec::with_capacity(0);
1107            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1108                "all",
1109                |m: &FoodSet| { &m.all },
1110                |m: &mut FoodSet| { &mut m.all },
1111            ));
1112            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1113                "meat",
1114                |m: &FoodSet| { &m.meat },
1115                |m: &mut FoodSet| { &mut m.meat },
1116            ));
1117            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1118                "fish",
1119                |m: &FoodSet| { &m.fish },
1120                |m: &mut FoodSet| { &mut m.fish },
1121            ));
1122            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1123                "unprepared_fish",
1124                |m: &FoodSet| { &m.unprepared_fish },
1125                |m: &mut FoodSet| { &mut m.unprepared_fish },
1126            ));
1127            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1128                "egg",
1129                |m: &FoodSet| { &m.egg },
1130                |m: &mut FoodSet| { &mut m.egg },
1131            ));
1132            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1133                "plants",
1134                |m: &FoodSet| { &m.plants },
1135                |m: &mut FoodSet| { &mut m.plants },
1136            ));
1137            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1138                "drink_plant",
1139                |m: &FoodSet| { &m.drink_plant },
1140                |m: &mut FoodSet| { &mut m.drink_plant },
1141            ));
1142            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1143                "drink_animal",
1144                |m: &FoodSet| { &m.drink_animal },
1145                |m: &mut FoodSet| { &mut m.drink_animal },
1146            ));
1147            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1148                "cheese_plant",
1149                |m: &FoodSet| { &m.cheese_plant },
1150                |m: &mut FoodSet| { &mut m.cheese_plant },
1151            ));
1152            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1153                "cheese_animal",
1154                |m: &FoodSet| { &m.cheese_animal },
1155                |m: &mut FoodSet| { &mut m.cheese_animal },
1156            ));
1157            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1158                "seeds",
1159                |m: &FoodSet| { &m.seeds },
1160                |m: &mut FoodSet| { &mut m.seeds },
1161            ));
1162            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1163                "leaves",
1164                |m: &FoodSet| { &m.leaves },
1165                |m: &mut FoodSet| { &mut m.leaves },
1166            ));
1167            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1168                "powder_plant",
1169                |m: &FoodSet| { &m.powder_plant },
1170                |m: &mut FoodSet| { &mut m.powder_plant },
1171            ));
1172            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1173                "powder_creature",
1174                |m: &FoodSet| { &m.powder_creature },
1175                |m: &mut FoodSet| { &mut m.powder_creature },
1176            ));
1177            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1178                "glob",
1179                |m: &FoodSet| { &m.glob },
1180                |m: &mut FoodSet| { &mut m.glob },
1181            ));
1182            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1183                "glob_paste",
1184                |m: &FoodSet| { &m.glob_paste },
1185                |m: &mut FoodSet| { &mut m.glob_paste },
1186            ));
1187            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1188                "glob_pressed",
1189                |m: &FoodSet| { &m.glob_pressed },
1190                |m: &mut FoodSet| { &mut m.glob_pressed },
1191            ));
1192            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1193                "liquid_plant",
1194                |m: &FoodSet| { &m.liquid_plant },
1195                |m: &mut FoodSet| { &mut m.liquid_plant },
1196            ));
1197            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1198                "liquid_animal",
1199                |m: &FoodSet| { &m.liquid_animal },
1200                |m: &mut FoodSet| { &mut m.liquid_animal },
1201            ));
1202            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1203                "liquid_misc",
1204                |m: &FoodSet| { &m.liquid_misc },
1205                |m: &mut FoodSet| { &mut m.liquid_misc },
1206            ));
1207            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1208                "prepared_meals",
1209                |m: &FoodSet| { &m.prepared_meals },
1210                |m: &mut FoodSet| { &mut m.prepared_meals },
1211            ));
1212            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<FoodSet>(
1213                "StockpileSettings.FoodSet",
1214                fields,
1215                oneofs,
1216            )
1217        }
1218    }
1219
1220    impl ::protobuf::Message for FoodSet {
1221        const NAME: &'static str = "FoodSet";
1222
1223        fn is_initialized(&self) -> bool {
1224            true
1225        }
1226
1227        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1228            while let Some(tag) = is.read_raw_tag_or_eof()? {
1229                match tag {
1230                    168 => {
1231                        self.all = ::std::option::Option::Some(is.read_bool()?);
1232                    },
1233                    10 => {
1234                        self.meat.push(is.read_string()?);
1235                    },
1236                    18 => {
1237                        self.fish.push(is.read_string()?);
1238                    },
1239                    162 => {
1240                        self.unprepared_fish.push(is.read_string()?);
1241                    },
1242                    26 => {
1243                        self.egg.push(is.read_string()?);
1244                    },
1245                    34 => {
1246                        self.plants.push(is.read_string()?);
1247                    },
1248                    42 => {
1249                        self.drink_plant.push(is.read_string()?);
1250                    },
1251                    50 => {
1252                        self.drink_animal.push(is.read_string()?);
1253                    },
1254                    58 => {
1255                        self.cheese_plant.push(is.read_string()?);
1256                    },
1257                    66 => {
1258                        self.cheese_animal.push(is.read_string()?);
1259                    },
1260                    74 => {
1261                        self.seeds.push(is.read_string()?);
1262                    },
1263                    82 => {
1264                        self.leaves.push(is.read_string()?);
1265                    },
1266                    90 => {
1267                        self.powder_plant.push(is.read_string()?);
1268                    },
1269                    98 => {
1270                        self.powder_creature.push(is.read_string()?);
1271                    },
1272                    106 => {
1273                        self.glob.push(is.read_string()?);
1274                    },
1275                    114 => {
1276                        self.glob_paste.push(is.read_string()?);
1277                    },
1278                    122 => {
1279                        self.glob_pressed.push(is.read_string()?);
1280                    },
1281                    130 => {
1282                        self.liquid_plant.push(is.read_string()?);
1283                    },
1284                    138 => {
1285                        self.liquid_animal.push(is.read_string()?);
1286                    },
1287                    146 => {
1288                        self.liquid_misc.push(is.read_string()?);
1289                    },
1290                    152 => {
1291                        self.prepared_meals = ::std::option::Option::Some(is.read_bool()?);
1292                    },
1293                    tag => {
1294                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1295                    },
1296                };
1297            }
1298            ::std::result::Result::Ok(())
1299        }
1300
1301        // Compute sizes of nested messages
1302        #[allow(unused_variables)]
1303        fn compute_size(&self) -> u64 {
1304            let mut my_size = 0;
1305            if let Some(v) = self.all {
1306                my_size += 2 + 1;
1307            }
1308            for value in &self.meat {
1309                my_size += ::protobuf::rt::string_size(1, &value);
1310            };
1311            for value in &self.fish {
1312                my_size += ::protobuf::rt::string_size(2, &value);
1313            };
1314            for value in &self.unprepared_fish {
1315                my_size += ::protobuf::rt::string_size(20, &value);
1316            };
1317            for value in &self.egg {
1318                my_size += ::protobuf::rt::string_size(3, &value);
1319            };
1320            for value in &self.plants {
1321                my_size += ::protobuf::rt::string_size(4, &value);
1322            };
1323            for value in &self.drink_plant {
1324                my_size += ::protobuf::rt::string_size(5, &value);
1325            };
1326            for value in &self.drink_animal {
1327                my_size += ::protobuf::rt::string_size(6, &value);
1328            };
1329            for value in &self.cheese_plant {
1330                my_size += ::protobuf::rt::string_size(7, &value);
1331            };
1332            for value in &self.cheese_animal {
1333                my_size += ::protobuf::rt::string_size(8, &value);
1334            };
1335            for value in &self.seeds {
1336                my_size += ::protobuf::rt::string_size(9, &value);
1337            };
1338            for value in &self.leaves {
1339                my_size += ::protobuf::rt::string_size(10, &value);
1340            };
1341            for value in &self.powder_plant {
1342                my_size += ::protobuf::rt::string_size(11, &value);
1343            };
1344            for value in &self.powder_creature {
1345                my_size += ::protobuf::rt::string_size(12, &value);
1346            };
1347            for value in &self.glob {
1348                my_size += ::protobuf::rt::string_size(13, &value);
1349            };
1350            for value in &self.glob_paste {
1351                my_size += ::protobuf::rt::string_size(14, &value);
1352            };
1353            for value in &self.glob_pressed {
1354                my_size += ::protobuf::rt::string_size(15, &value);
1355            };
1356            for value in &self.liquid_plant {
1357                my_size += ::protobuf::rt::string_size(16, &value);
1358            };
1359            for value in &self.liquid_animal {
1360                my_size += ::protobuf::rt::string_size(17, &value);
1361            };
1362            for value in &self.liquid_misc {
1363                my_size += ::protobuf::rt::string_size(18, &value);
1364            };
1365            if let Some(v) = self.prepared_meals {
1366                my_size += 2 + 1;
1367            }
1368            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1369            self.special_fields.cached_size().set(my_size as u32);
1370            my_size
1371        }
1372
1373        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1374            if let Some(v) = self.all {
1375                os.write_bool(21, v)?;
1376            }
1377            for v in &self.meat {
1378                os.write_string(1, &v)?;
1379            };
1380            for v in &self.fish {
1381                os.write_string(2, &v)?;
1382            };
1383            for v in &self.unprepared_fish {
1384                os.write_string(20, &v)?;
1385            };
1386            for v in &self.egg {
1387                os.write_string(3, &v)?;
1388            };
1389            for v in &self.plants {
1390                os.write_string(4, &v)?;
1391            };
1392            for v in &self.drink_plant {
1393                os.write_string(5, &v)?;
1394            };
1395            for v in &self.drink_animal {
1396                os.write_string(6, &v)?;
1397            };
1398            for v in &self.cheese_plant {
1399                os.write_string(7, &v)?;
1400            };
1401            for v in &self.cheese_animal {
1402                os.write_string(8, &v)?;
1403            };
1404            for v in &self.seeds {
1405                os.write_string(9, &v)?;
1406            };
1407            for v in &self.leaves {
1408                os.write_string(10, &v)?;
1409            };
1410            for v in &self.powder_plant {
1411                os.write_string(11, &v)?;
1412            };
1413            for v in &self.powder_creature {
1414                os.write_string(12, &v)?;
1415            };
1416            for v in &self.glob {
1417                os.write_string(13, &v)?;
1418            };
1419            for v in &self.glob_paste {
1420                os.write_string(14, &v)?;
1421            };
1422            for v in &self.glob_pressed {
1423                os.write_string(15, &v)?;
1424            };
1425            for v in &self.liquid_plant {
1426                os.write_string(16, &v)?;
1427            };
1428            for v in &self.liquid_animal {
1429                os.write_string(17, &v)?;
1430            };
1431            for v in &self.liquid_misc {
1432                os.write_string(18, &v)?;
1433            };
1434            if let Some(v) = self.prepared_meals {
1435                os.write_bool(19, v)?;
1436            }
1437            os.write_unknown_fields(self.special_fields.unknown_fields())?;
1438            ::std::result::Result::Ok(())
1439        }
1440
1441        fn special_fields(&self) -> &::protobuf::SpecialFields {
1442            &self.special_fields
1443        }
1444
1445        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1446            &mut self.special_fields
1447        }
1448
1449        fn new() -> FoodSet {
1450            FoodSet::new()
1451        }
1452
1453        fn clear(&mut self) {
1454            self.all = ::std::option::Option::None;
1455            self.meat.clear();
1456            self.fish.clear();
1457            self.unprepared_fish.clear();
1458            self.egg.clear();
1459            self.plants.clear();
1460            self.drink_plant.clear();
1461            self.drink_animal.clear();
1462            self.cheese_plant.clear();
1463            self.cheese_animal.clear();
1464            self.seeds.clear();
1465            self.leaves.clear();
1466            self.powder_plant.clear();
1467            self.powder_creature.clear();
1468            self.glob.clear();
1469            self.glob_paste.clear();
1470            self.glob_pressed.clear();
1471            self.liquid_plant.clear();
1472            self.liquid_animal.clear();
1473            self.liquid_misc.clear();
1474            self.prepared_meals = ::std::option::Option::None;
1475            self.special_fields.clear();
1476        }
1477
1478        fn default_instance() -> &'static FoodSet {
1479            static instance: FoodSet = FoodSet {
1480                all: ::std::option::Option::None,
1481                meat: ::std::vec::Vec::new(),
1482                fish: ::std::vec::Vec::new(),
1483                unprepared_fish: ::std::vec::Vec::new(),
1484                egg: ::std::vec::Vec::new(),
1485                plants: ::std::vec::Vec::new(),
1486                drink_plant: ::std::vec::Vec::new(),
1487                drink_animal: ::std::vec::Vec::new(),
1488                cheese_plant: ::std::vec::Vec::new(),
1489                cheese_animal: ::std::vec::Vec::new(),
1490                seeds: ::std::vec::Vec::new(),
1491                leaves: ::std::vec::Vec::new(),
1492                powder_plant: ::std::vec::Vec::new(),
1493                powder_creature: ::std::vec::Vec::new(),
1494                glob: ::std::vec::Vec::new(),
1495                glob_paste: ::std::vec::Vec::new(),
1496                glob_pressed: ::std::vec::Vec::new(),
1497                liquid_plant: ::std::vec::Vec::new(),
1498                liquid_animal: ::std::vec::Vec::new(),
1499                liquid_misc: ::std::vec::Vec::new(),
1500                prepared_meals: ::std::option::Option::None,
1501                special_fields: ::protobuf::SpecialFields::new(),
1502            };
1503            &instance
1504        }
1505    }
1506
1507    impl ::protobuf::MessageFull for FoodSet {
1508        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1509            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1510            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.FoodSet").unwrap()).clone()
1511        }
1512    }
1513
1514    impl ::std::fmt::Display for FoodSet {
1515        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1516            ::protobuf::text_format::fmt(self, f)
1517        }
1518    }
1519
1520    impl ::protobuf::reflect::ProtobufValue for FoodSet {
1521        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1522    }
1523
1524    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.FurnitureSet)
1525    #[derive(PartialEq,Clone,Default,Debug)]
1526    pub struct FurnitureSet {
1527        // message fields
1528        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.all)
1529        pub all: ::std::option::Option<bool>,
1530        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.type)
1531        pub type_: ::std::vec::Vec<::std::string::String>,
1532        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.other_mats)
1533        pub other_mats: ::std::vec::Vec<::std::string::String>,
1534        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.mats)
1535        pub mats: ::std::vec::Vec<::std::string::String>,
1536        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.quality_core)
1537        pub quality_core: ::std::vec::Vec<::std::string::String>,
1538        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FurnitureSet.quality_total)
1539        pub quality_total: ::std::vec::Vec<::std::string::String>,
1540        // special fields
1541        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.FurnitureSet.special_fields)
1542        pub special_fields: ::protobuf::SpecialFields,
1543    }
1544
1545    impl<'a> ::std::default::Default for &'a FurnitureSet {
1546        fn default() -> &'a FurnitureSet {
1547            <FurnitureSet as ::protobuf::Message>::default_instance()
1548        }
1549    }
1550
1551    impl FurnitureSet {
1552        pub fn new() -> FurnitureSet {
1553            ::std::default::Default::default()
1554        }
1555
1556        // optional bool all = 7;
1557
1558        pub fn all(&self) -> bool {
1559            self.all.unwrap_or(false)
1560        }
1561
1562        pub fn clear_all(&mut self) {
1563            self.all = ::std::option::Option::None;
1564        }
1565
1566        pub fn has_all(&self) -> bool {
1567            self.all.is_some()
1568        }
1569
1570        // Param is passed by value, moved
1571        pub fn set_all(&mut self, v: bool) {
1572            self.all = ::std::option::Option::Some(v);
1573        }
1574
1575        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1576            let mut fields = ::std::vec::Vec::with_capacity(6);
1577            let mut oneofs = ::std::vec::Vec::with_capacity(0);
1578            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1579                "all",
1580                |m: &FurnitureSet| { &m.all },
1581                |m: &mut FurnitureSet| { &mut m.all },
1582            ));
1583            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1584                "type",
1585                |m: &FurnitureSet| { &m.type_ },
1586                |m: &mut FurnitureSet| { &mut m.type_ },
1587            ));
1588            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1589                "other_mats",
1590                |m: &FurnitureSet| { &m.other_mats },
1591                |m: &mut FurnitureSet| { &mut m.other_mats },
1592            ));
1593            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1594                "mats",
1595                |m: &FurnitureSet| { &m.mats },
1596                |m: &mut FurnitureSet| { &mut m.mats },
1597            ));
1598            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1599                "quality_core",
1600                |m: &FurnitureSet| { &m.quality_core },
1601                |m: &mut FurnitureSet| { &mut m.quality_core },
1602            ));
1603            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1604                "quality_total",
1605                |m: &FurnitureSet| { &m.quality_total },
1606                |m: &mut FurnitureSet| { &mut m.quality_total },
1607            ));
1608            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<FurnitureSet>(
1609                "StockpileSettings.FurnitureSet",
1610                fields,
1611                oneofs,
1612            )
1613        }
1614    }
1615
1616    impl ::protobuf::Message for FurnitureSet {
1617        const NAME: &'static str = "FurnitureSet";
1618
1619        fn is_initialized(&self) -> bool {
1620            true
1621        }
1622
1623        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1624            while let Some(tag) = is.read_raw_tag_or_eof()? {
1625                match tag {
1626                    56 => {
1627                        self.all = ::std::option::Option::Some(is.read_bool()?);
1628                    },
1629                    10 => {
1630                        self.type_.push(is.read_string()?);
1631                    },
1632                    18 => {
1633                        self.other_mats.push(is.read_string()?);
1634                    },
1635                    26 => {
1636                        self.mats.push(is.read_string()?);
1637                    },
1638                    34 => {
1639                        self.quality_core.push(is.read_string()?);
1640                    },
1641                    42 => {
1642                        self.quality_total.push(is.read_string()?);
1643                    },
1644                    tag => {
1645                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1646                    },
1647                };
1648            }
1649            ::std::result::Result::Ok(())
1650        }
1651
1652        // Compute sizes of nested messages
1653        #[allow(unused_variables)]
1654        fn compute_size(&self) -> u64 {
1655            let mut my_size = 0;
1656            if let Some(v) = self.all {
1657                my_size += 1 + 1;
1658            }
1659            for value in &self.type_ {
1660                my_size += ::protobuf::rt::string_size(1, &value);
1661            };
1662            for value in &self.other_mats {
1663                my_size += ::protobuf::rt::string_size(2, &value);
1664            };
1665            for value in &self.mats {
1666                my_size += ::protobuf::rt::string_size(3, &value);
1667            };
1668            for value in &self.quality_core {
1669                my_size += ::protobuf::rt::string_size(4, &value);
1670            };
1671            for value in &self.quality_total {
1672                my_size += ::protobuf::rt::string_size(5, &value);
1673            };
1674            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
1675            self.special_fields.cached_size().set(my_size as u32);
1676            my_size
1677        }
1678
1679        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
1680            if let Some(v) = self.all {
1681                os.write_bool(7, v)?;
1682            }
1683            for v in &self.type_ {
1684                os.write_string(1, &v)?;
1685            };
1686            for v in &self.other_mats {
1687                os.write_string(2, &v)?;
1688            };
1689            for v in &self.mats {
1690                os.write_string(3, &v)?;
1691            };
1692            for v in &self.quality_core {
1693                os.write_string(4, &v)?;
1694            };
1695            for v in &self.quality_total {
1696                os.write_string(5, &v)?;
1697            };
1698            os.write_unknown_fields(self.special_fields.unknown_fields())?;
1699            ::std::result::Result::Ok(())
1700        }
1701
1702        fn special_fields(&self) -> &::protobuf::SpecialFields {
1703            &self.special_fields
1704        }
1705
1706        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
1707            &mut self.special_fields
1708        }
1709
1710        fn new() -> FurnitureSet {
1711            FurnitureSet::new()
1712        }
1713
1714        fn clear(&mut self) {
1715            self.all = ::std::option::Option::None;
1716            self.type_.clear();
1717            self.other_mats.clear();
1718            self.mats.clear();
1719            self.quality_core.clear();
1720            self.quality_total.clear();
1721            self.special_fields.clear();
1722        }
1723
1724        fn default_instance() -> &'static FurnitureSet {
1725            static instance: FurnitureSet = FurnitureSet {
1726                all: ::std::option::Option::None,
1727                type_: ::std::vec::Vec::new(),
1728                other_mats: ::std::vec::Vec::new(),
1729                mats: ::std::vec::Vec::new(),
1730                quality_core: ::std::vec::Vec::new(),
1731                quality_total: ::std::vec::Vec::new(),
1732                special_fields: ::protobuf::SpecialFields::new(),
1733            };
1734            &instance
1735        }
1736    }
1737
1738    impl ::protobuf::MessageFull for FurnitureSet {
1739        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
1740            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
1741            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.FurnitureSet").unwrap()).clone()
1742        }
1743    }
1744
1745    impl ::std::fmt::Display for FurnitureSet {
1746        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1747            ::protobuf::text_format::fmt(self, f)
1748        }
1749    }
1750
1751    impl ::protobuf::reflect::ProtobufValue for FurnitureSet {
1752        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
1753    }
1754
1755    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.RefuseSet)
1756    #[derive(PartialEq,Clone,Default,Debug)]
1757    pub struct RefuseSet {
1758        // message fields
1759        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.all)
1760        pub all: ::std::option::Option<bool>,
1761        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.type)
1762        pub type_: ::std::vec::Vec<::std::string::String>,
1763        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.corpses)
1764        pub corpses: ::std::vec::Vec<::std::string::String>,
1765        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.body_parts)
1766        pub body_parts: ::std::vec::Vec<::std::string::String>,
1767        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.skulls)
1768        pub skulls: ::std::vec::Vec<::std::string::String>,
1769        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.bones)
1770        pub bones: ::std::vec::Vec<::std::string::String>,
1771        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.hair)
1772        pub hair: ::std::vec::Vec<::std::string::String>,
1773        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.shells)
1774        pub shells: ::std::vec::Vec<::std::string::String>,
1775        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.teeth)
1776        pub teeth: ::std::vec::Vec<::std::string::String>,
1777        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.horns)
1778        pub horns: ::std::vec::Vec<::std::string::String>,
1779        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.fresh_raw_hide)
1780        pub fresh_raw_hide: ::std::option::Option<bool>,
1781        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.RefuseSet.rotten_raw_hide)
1782        pub rotten_raw_hide: ::std::option::Option<bool>,
1783        // special fields
1784        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.RefuseSet.special_fields)
1785        pub special_fields: ::protobuf::SpecialFields,
1786    }
1787
1788    impl<'a> ::std::default::Default for &'a RefuseSet {
1789        fn default() -> &'a RefuseSet {
1790            <RefuseSet as ::protobuf::Message>::default_instance()
1791        }
1792    }
1793
1794    impl RefuseSet {
1795        pub fn new() -> RefuseSet {
1796            ::std::default::Default::default()
1797        }
1798
1799        // optional bool all = 12;
1800
1801        pub fn all(&self) -> bool {
1802            self.all.unwrap_or(false)
1803        }
1804
1805        pub fn clear_all(&mut self) {
1806            self.all = ::std::option::Option::None;
1807        }
1808
1809        pub fn has_all(&self) -> bool {
1810            self.all.is_some()
1811        }
1812
1813        // Param is passed by value, moved
1814        pub fn set_all(&mut self, v: bool) {
1815            self.all = ::std::option::Option::Some(v);
1816        }
1817
1818        // optional bool fresh_raw_hide = 10;
1819
1820        pub fn fresh_raw_hide(&self) -> bool {
1821            self.fresh_raw_hide.unwrap_or(false)
1822        }
1823
1824        pub fn clear_fresh_raw_hide(&mut self) {
1825            self.fresh_raw_hide = ::std::option::Option::None;
1826        }
1827
1828        pub fn has_fresh_raw_hide(&self) -> bool {
1829            self.fresh_raw_hide.is_some()
1830        }
1831
1832        // Param is passed by value, moved
1833        pub fn set_fresh_raw_hide(&mut self, v: bool) {
1834            self.fresh_raw_hide = ::std::option::Option::Some(v);
1835        }
1836
1837        // optional bool rotten_raw_hide = 11;
1838
1839        pub fn rotten_raw_hide(&self) -> bool {
1840            self.rotten_raw_hide.unwrap_or(false)
1841        }
1842
1843        pub fn clear_rotten_raw_hide(&mut self) {
1844            self.rotten_raw_hide = ::std::option::Option::None;
1845        }
1846
1847        pub fn has_rotten_raw_hide(&self) -> bool {
1848            self.rotten_raw_hide.is_some()
1849        }
1850
1851        // Param is passed by value, moved
1852        pub fn set_rotten_raw_hide(&mut self, v: bool) {
1853            self.rotten_raw_hide = ::std::option::Option::Some(v);
1854        }
1855
1856        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
1857            let mut fields = ::std::vec::Vec::with_capacity(12);
1858            let mut oneofs = ::std::vec::Vec::with_capacity(0);
1859            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1860                "all",
1861                |m: &RefuseSet| { &m.all },
1862                |m: &mut RefuseSet| { &mut m.all },
1863            ));
1864            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1865                "type",
1866                |m: &RefuseSet| { &m.type_ },
1867                |m: &mut RefuseSet| { &mut m.type_ },
1868            ));
1869            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1870                "corpses",
1871                |m: &RefuseSet| { &m.corpses },
1872                |m: &mut RefuseSet| { &mut m.corpses },
1873            ));
1874            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1875                "body_parts",
1876                |m: &RefuseSet| { &m.body_parts },
1877                |m: &mut RefuseSet| { &mut m.body_parts },
1878            ));
1879            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1880                "skulls",
1881                |m: &RefuseSet| { &m.skulls },
1882                |m: &mut RefuseSet| { &mut m.skulls },
1883            ));
1884            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1885                "bones",
1886                |m: &RefuseSet| { &m.bones },
1887                |m: &mut RefuseSet| { &mut m.bones },
1888            ));
1889            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1890                "hair",
1891                |m: &RefuseSet| { &m.hair },
1892                |m: &mut RefuseSet| { &mut m.hair },
1893            ));
1894            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1895                "shells",
1896                |m: &RefuseSet| { &m.shells },
1897                |m: &mut RefuseSet| { &mut m.shells },
1898            ));
1899            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1900                "teeth",
1901                |m: &RefuseSet| { &m.teeth },
1902                |m: &mut RefuseSet| { &mut m.teeth },
1903            ));
1904            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
1905                "horns",
1906                |m: &RefuseSet| { &m.horns },
1907                |m: &mut RefuseSet| { &mut m.horns },
1908            ));
1909            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1910                "fresh_raw_hide",
1911                |m: &RefuseSet| { &m.fresh_raw_hide },
1912                |m: &mut RefuseSet| { &mut m.fresh_raw_hide },
1913            ));
1914            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
1915                "rotten_raw_hide",
1916                |m: &RefuseSet| { &m.rotten_raw_hide },
1917                |m: &mut RefuseSet| { &mut m.rotten_raw_hide },
1918            ));
1919            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<RefuseSet>(
1920                "StockpileSettings.RefuseSet",
1921                fields,
1922                oneofs,
1923            )
1924        }
1925    }
1926
1927    impl ::protobuf::Message for RefuseSet {
1928        const NAME: &'static str = "RefuseSet";
1929
1930        fn is_initialized(&self) -> bool {
1931            true
1932        }
1933
1934        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
1935            while let Some(tag) = is.read_raw_tag_or_eof()? {
1936                match tag {
1937                    96 => {
1938                        self.all = ::std::option::Option::Some(is.read_bool()?);
1939                    },
1940                    10 => {
1941                        self.type_.push(is.read_string()?);
1942                    },
1943                    18 => {
1944                        self.corpses.push(is.read_string()?);
1945                    },
1946                    26 => {
1947                        self.body_parts.push(is.read_string()?);
1948                    },
1949                    34 => {
1950                        self.skulls.push(is.read_string()?);
1951                    },
1952                    42 => {
1953                        self.bones.push(is.read_string()?);
1954                    },
1955                    50 => {
1956                        self.hair.push(is.read_string()?);
1957                    },
1958                    58 => {
1959                        self.shells.push(is.read_string()?);
1960                    },
1961                    66 => {
1962                        self.teeth.push(is.read_string()?);
1963                    },
1964                    74 => {
1965                        self.horns.push(is.read_string()?);
1966                    },
1967                    80 => {
1968                        self.fresh_raw_hide = ::std::option::Option::Some(is.read_bool()?);
1969                    },
1970                    88 => {
1971                        self.rotten_raw_hide = ::std::option::Option::Some(is.read_bool()?);
1972                    },
1973                    tag => {
1974                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
1975                    },
1976                };
1977            }
1978            ::std::result::Result::Ok(())
1979        }
1980
1981        // Compute sizes of nested messages
1982        #[allow(unused_variables)]
1983        fn compute_size(&self) -> u64 {
1984            let mut my_size = 0;
1985            if let Some(v) = self.all {
1986                my_size += 1 + 1;
1987            }
1988            for value in &self.type_ {
1989                my_size += ::protobuf::rt::string_size(1, &value);
1990            };
1991            for value in &self.corpses {
1992                my_size += ::protobuf::rt::string_size(2, &value);
1993            };
1994            for value in &self.body_parts {
1995                my_size += ::protobuf::rt::string_size(3, &value);
1996            };
1997            for value in &self.skulls {
1998                my_size += ::protobuf::rt::string_size(4, &value);
1999            };
2000            for value in &self.bones {
2001                my_size += ::protobuf::rt::string_size(5, &value);
2002            };
2003            for value in &self.hair {
2004                my_size += ::protobuf::rt::string_size(6, &value);
2005            };
2006            for value in &self.shells {
2007                my_size += ::protobuf::rt::string_size(7, &value);
2008            };
2009            for value in &self.teeth {
2010                my_size += ::protobuf::rt::string_size(8, &value);
2011            };
2012            for value in &self.horns {
2013                my_size += ::protobuf::rt::string_size(9, &value);
2014            };
2015            if let Some(v) = self.fresh_raw_hide {
2016                my_size += 1 + 1;
2017            }
2018            if let Some(v) = self.rotten_raw_hide {
2019                my_size += 1 + 1;
2020            }
2021            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2022            self.special_fields.cached_size().set(my_size as u32);
2023            my_size
2024        }
2025
2026        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2027            if let Some(v) = self.all {
2028                os.write_bool(12, v)?;
2029            }
2030            for v in &self.type_ {
2031                os.write_string(1, &v)?;
2032            };
2033            for v in &self.corpses {
2034                os.write_string(2, &v)?;
2035            };
2036            for v in &self.body_parts {
2037                os.write_string(3, &v)?;
2038            };
2039            for v in &self.skulls {
2040                os.write_string(4, &v)?;
2041            };
2042            for v in &self.bones {
2043                os.write_string(5, &v)?;
2044            };
2045            for v in &self.hair {
2046                os.write_string(6, &v)?;
2047            };
2048            for v in &self.shells {
2049                os.write_string(7, &v)?;
2050            };
2051            for v in &self.teeth {
2052                os.write_string(8, &v)?;
2053            };
2054            for v in &self.horns {
2055                os.write_string(9, &v)?;
2056            };
2057            if let Some(v) = self.fresh_raw_hide {
2058                os.write_bool(10, v)?;
2059            }
2060            if let Some(v) = self.rotten_raw_hide {
2061                os.write_bool(11, v)?;
2062            }
2063            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2064            ::std::result::Result::Ok(())
2065        }
2066
2067        fn special_fields(&self) -> &::protobuf::SpecialFields {
2068            &self.special_fields
2069        }
2070
2071        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2072            &mut self.special_fields
2073        }
2074
2075        fn new() -> RefuseSet {
2076            RefuseSet::new()
2077        }
2078
2079        fn clear(&mut self) {
2080            self.all = ::std::option::Option::None;
2081            self.type_.clear();
2082            self.corpses.clear();
2083            self.body_parts.clear();
2084            self.skulls.clear();
2085            self.bones.clear();
2086            self.hair.clear();
2087            self.shells.clear();
2088            self.teeth.clear();
2089            self.horns.clear();
2090            self.fresh_raw_hide = ::std::option::Option::None;
2091            self.rotten_raw_hide = ::std::option::Option::None;
2092            self.special_fields.clear();
2093        }
2094
2095        fn default_instance() -> &'static RefuseSet {
2096            static instance: RefuseSet = RefuseSet {
2097                all: ::std::option::Option::None,
2098                type_: ::std::vec::Vec::new(),
2099                corpses: ::std::vec::Vec::new(),
2100                body_parts: ::std::vec::Vec::new(),
2101                skulls: ::std::vec::Vec::new(),
2102                bones: ::std::vec::Vec::new(),
2103                hair: ::std::vec::Vec::new(),
2104                shells: ::std::vec::Vec::new(),
2105                teeth: ::std::vec::Vec::new(),
2106                horns: ::std::vec::Vec::new(),
2107                fresh_raw_hide: ::std::option::Option::None,
2108                rotten_raw_hide: ::std::option::Option::None,
2109                special_fields: ::protobuf::SpecialFields::new(),
2110            };
2111            &instance
2112        }
2113    }
2114
2115    impl ::protobuf::MessageFull for RefuseSet {
2116        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
2117            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
2118            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.RefuseSet").unwrap()).clone()
2119        }
2120    }
2121
2122    impl ::std::fmt::Display for RefuseSet {
2123        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2124            ::protobuf::text_format::fmt(self, f)
2125        }
2126    }
2127
2128    impl ::protobuf::reflect::ProtobufValue for RefuseSet {
2129        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
2130    }
2131
2132    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.StoneSet)
2133    #[derive(PartialEq,Clone,Default,Debug)]
2134    pub struct StoneSet {
2135        // message fields
2136        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.StoneSet.all)
2137        pub all: ::std::option::Option<bool>,
2138        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.StoneSet.mats)
2139        pub mats: ::std::vec::Vec<::std::string::String>,
2140        // special fields
2141        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.StoneSet.special_fields)
2142        pub special_fields: ::protobuf::SpecialFields,
2143    }
2144
2145    impl<'a> ::std::default::Default for &'a StoneSet {
2146        fn default() -> &'a StoneSet {
2147            <StoneSet as ::protobuf::Message>::default_instance()
2148        }
2149    }
2150
2151    impl StoneSet {
2152        pub fn new() -> StoneSet {
2153            ::std::default::Default::default()
2154        }
2155
2156        // optional bool all = 2;
2157
2158        pub fn all(&self) -> bool {
2159            self.all.unwrap_or(false)
2160        }
2161
2162        pub fn clear_all(&mut self) {
2163            self.all = ::std::option::Option::None;
2164        }
2165
2166        pub fn has_all(&self) -> bool {
2167            self.all.is_some()
2168        }
2169
2170        // Param is passed by value, moved
2171        pub fn set_all(&mut self, v: bool) {
2172            self.all = ::std::option::Option::Some(v);
2173        }
2174
2175        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
2176            let mut fields = ::std::vec::Vec::with_capacity(2);
2177            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2178            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
2179                "all",
2180                |m: &StoneSet| { &m.all },
2181                |m: &mut StoneSet| { &mut m.all },
2182            ));
2183            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2184                "mats",
2185                |m: &StoneSet| { &m.mats },
2186                |m: &mut StoneSet| { &mut m.mats },
2187            ));
2188            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<StoneSet>(
2189                "StockpileSettings.StoneSet",
2190                fields,
2191                oneofs,
2192            )
2193        }
2194    }
2195
2196    impl ::protobuf::Message for StoneSet {
2197        const NAME: &'static str = "StoneSet";
2198
2199        fn is_initialized(&self) -> bool {
2200            true
2201        }
2202
2203        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
2204            while let Some(tag) = is.read_raw_tag_or_eof()? {
2205                match tag {
2206                    16 => {
2207                        self.all = ::std::option::Option::Some(is.read_bool()?);
2208                    },
2209                    10 => {
2210                        self.mats.push(is.read_string()?);
2211                    },
2212                    tag => {
2213                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2214                    },
2215                };
2216            }
2217            ::std::result::Result::Ok(())
2218        }
2219
2220        // Compute sizes of nested messages
2221        #[allow(unused_variables)]
2222        fn compute_size(&self) -> u64 {
2223            let mut my_size = 0;
2224            if let Some(v) = self.all {
2225                my_size += 1 + 1;
2226            }
2227            for value in &self.mats {
2228                my_size += ::protobuf::rt::string_size(1, &value);
2229            };
2230            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2231            self.special_fields.cached_size().set(my_size as u32);
2232            my_size
2233        }
2234
2235        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2236            if let Some(v) = self.all {
2237                os.write_bool(2, v)?;
2238            }
2239            for v in &self.mats {
2240                os.write_string(1, &v)?;
2241            };
2242            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2243            ::std::result::Result::Ok(())
2244        }
2245
2246        fn special_fields(&self) -> &::protobuf::SpecialFields {
2247            &self.special_fields
2248        }
2249
2250        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2251            &mut self.special_fields
2252        }
2253
2254        fn new() -> StoneSet {
2255            StoneSet::new()
2256        }
2257
2258        fn clear(&mut self) {
2259            self.all = ::std::option::Option::None;
2260            self.mats.clear();
2261            self.special_fields.clear();
2262        }
2263
2264        fn default_instance() -> &'static StoneSet {
2265            static instance: StoneSet = StoneSet {
2266                all: ::std::option::Option::None,
2267                mats: ::std::vec::Vec::new(),
2268                special_fields: ::protobuf::SpecialFields::new(),
2269            };
2270            &instance
2271        }
2272    }
2273
2274    impl ::protobuf::MessageFull for StoneSet {
2275        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
2276            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
2277            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.StoneSet").unwrap()).clone()
2278        }
2279    }
2280
2281    impl ::std::fmt::Display for StoneSet {
2282        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2283            ::protobuf::text_format::fmt(self, f)
2284        }
2285    }
2286
2287    impl ::protobuf::reflect::ProtobufValue for StoneSet {
2288        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
2289    }
2290
2291    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.OreSet)
2292    #[derive(PartialEq,Clone,Default,Debug)]
2293    pub struct OreSet {
2294        // message fields
2295        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.OreSet.mats)
2296        pub mats: ::std::vec::Vec<::std::string::String>,
2297        // special fields
2298        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.OreSet.special_fields)
2299        pub special_fields: ::protobuf::SpecialFields,
2300    }
2301
2302    impl<'a> ::std::default::Default for &'a OreSet {
2303        fn default() -> &'a OreSet {
2304            <OreSet as ::protobuf::Message>::default_instance()
2305        }
2306    }
2307
2308    impl OreSet {
2309        pub fn new() -> OreSet {
2310            ::std::default::Default::default()
2311        }
2312
2313        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
2314            let mut fields = ::std::vec::Vec::with_capacity(1);
2315            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2316            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2317                "mats",
2318                |m: &OreSet| { &m.mats },
2319                |m: &mut OreSet| { &mut m.mats },
2320            ));
2321            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<OreSet>(
2322                "StockpileSettings.OreSet",
2323                fields,
2324                oneofs,
2325            )
2326        }
2327    }
2328
2329    impl ::protobuf::Message for OreSet {
2330        const NAME: &'static str = "OreSet";
2331
2332        fn is_initialized(&self) -> bool {
2333            true
2334        }
2335
2336        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
2337            while let Some(tag) = is.read_raw_tag_or_eof()? {
2338                match tag {
2339                    10 => {
2340                        self.mats.push(is.read_string()?);
2341                    },
2342                    tag => {
2343                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2344                    },
2345                };
2346            }
2347            ::std::result::Result::Ok(())
2348        }
2349
2350        // Compute sizes of nested messages
2351        #[allow(unused_variables)]
2352        fn compute_size(&self) -> u64 {
2353            let mut my_size = 0;
2354            for value in &self.mats {
2355                my_size += ::protobuf::rt::string_size(1, &value);
2356            };
2357            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2358            self.special_fields.cached_size().set(my_size as u32);
2359            my_size
2360        }
2361
2362        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2363            for v in &self.mats {
2364                os.write_string(1, &v)?;
2365            };
2366            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2367            ::std::result::Result::Ok(())
2368        }
2369
2370        fn special_fields(&self) -> &::protobuf::SpecialFields {
2371            &self.special_fields
2372        }
2373
2374        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2375            &mut self.special_fields
2376        }
2377
2378        fn new() -> OreSet {
2379            OreSet::new()
2380        }
2381
2382        fn clear(&mut self) {
2383            self.mats.clear();
2384            self.special_fields.clear();
2385        }
2386
2387        fn default_instance() -> &'static OreSet {
2388            static instance: OreSet = OreSet {
2389                mats: ::std::vec::Vec::new(),
2390                special_fields: ::protobuf::SpecialFields::new(),
2391            };
2392            &instance
2393        }
2394    }
2395
2396    impl ::protobuf::MessageFull for OreSet {
2397        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
2398            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
2399            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.OreSet").unwrap()).clone()
2400        }
2401    }
2402
2403    impl ::std::fmt::Display for OreSet {
2404        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2405            ::protobuf::text_format::fmt(self, f)
2406        }
2407    }
2408
2409    impl ::protobuf::reflect::ProtobufValue for OreSet {
2410        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
2411    }
2412
2413    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.AmmoSet)
2414    #[derive(PartialEq,Clone,Default,Debug)]
2415    pub struct AmmoSet {
2416        // message fields
2417        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.all)
2418        pub all: ::std::option::Option<bool>,
2419        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.type)
2420        pub type_: ::std::vec::Vec<::std::string::String>,
2421        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.other_mats)
2422        pub other_mats: ::std::vec::Vec<::std::string::String>,
2423        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.mats)
2424        pub mats: ::std::vec::Vec<::std::string::String>,
2425        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.quality_core)
2426        pub quality_core: ::std::vec::Vec<::std::string::String>,
2427        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.AmmoSet.quality_total)
2428        pub quality_total: ::std::vec::Vec<::std::string::String>,
2429        // special fields
2430        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.AmmoSet.special_fields)
2431        pub special_fields: ::protobuf::SpecialFields,
2432    }
2433
2434    impl<'a> ::std::default::Default for &'a AmmoSet {
2435        fn default() -> &'a AmmoSet {
2436            <AmmoSet as ::protobuf::Message>::default_instance()
2437        }
2438    }
2439
2440    impl AmmoSet {
2441        pub fn new() -> AmmoSet {
2442            ::std::default::Default::default()
2443        }
2444
2445        // optional bool all = 6;
2446
2447        pub fn all(&self) -> bool {
2448            self.all.unwrap_or(false)
2449        }
2450
2451        pub fn clear_all(&mut self) {
2452            self.all = ::std::option::Option::None;
2453        }
2454
2455        pub fn has_all(&self) -> bool {
2456            self.all.is_some()
2457        }
2458
2459        // Param is passed by value, moved
2460        pub fn set_all(&mut self, v: bool) {
2461            self.all = ::std::option::Option::Some(v);
2462        }
2463
2464        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
2465            let mut fields = ::std::vec::Vec::with_capacity(6);
2466            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2467            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
2468                "all",
2469                |m: &AmmoSet| { &m.all },
2470                |m: &mut AmmoSet| { &mut m.all },
2471            ));
2472            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2473                "type",
2474                |m: &AmmoSet| { &m.type_ },
2475                |m: &mut AmmoSet| { &mut m.type_ },
2476            ));
2477            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2478                "other_mats",
2479                |m: &AmmoSet| { &m.other_mats },
2480                |m: &mut AmmoSet| { &mut m.other_mats },
2481            ));
2482            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2483                "mats",
2484                |m: &AmmoSet| { &m.mats },
2485                |m: &mut AmmoSet| { &mut m.mats },
2486            ));
2487            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2488                "quality_core",
2489                |m: &AmmoSet| { &m.quality_core },
2490                |m: &mut AmmoSet| { &mut m.quality_core },
2491            ));
2492            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2493                "quality_total",
2494                |m: &AmmoSet| { &m.quality_total },
2495                |m: &mut AmmoSet| { &mut m.quality_total },
2496            ));
2497            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<AmmoSet>(
2498                "StockpileSettings.AmmoSet",
2499                fields,
2500                oneofs,
2501            )
2502        }
2503    }
2504
2505    impl ::protobuf::Message for AmmoSet {
2506        const NAME: &'static str = "AmmoSet";
2507
2508        fn is_initialized(&self) -> bool {
2509            true
2510        }
2511
2512        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
2513            while let Some(tag) = is.read_raw_tag_or_eof()? {
2514                match tag {
2515                    48 => {
2516                        self.all = ::std::option::Option::Some(is.read_bool()?);
2517                    },
2518                    10 => {
2519                        self.type_.push(is.read_string()?);
2520                    },
2521                    18 => {
2522                        self.other_mats.push(is.read_string()?);
2523                    },
2524                    26 => {
2525                        self.mats.push(is.read_string()?);
2526                    },
2527                    34 => {
2528                        self.quality_core.push(is.read_string()?);
2529                    },
2530                    42 => {
2531                        self.quality_total.push(is.read_string()?);
2532                    },
2533                    tag => {
2534                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2535                    },
2536                };
2537            }
2538            ::std::result::Result::Ok(())
2539        }
2540
2541        // Compute sizes of nested messages
2542        #[allow(unused_variables)]
2543        fn compute_size(&self) -> u64 {
2544            let mut my_size = 0;
2545            if let Some(v) = self.all {
2546                my_size += 1 + 1;
2547            }
2548            for value in &self.type_ {
2549                my_size += ::protobuf::rt::string_size(1, &value);
2550            };
2551            for value in &self.other_mats {
2552                my_size += ::protobuf::rt::string_size(2, &value);
2553            };
2554            for value in &self.mats {
2555                my_size += ::protobuf::rt::string_size(3, &value);
2556            };
2557            for value in &self.quality_core {
2558                my_size += ::protobuf::rt::string_size(4, &value);
2559            };
2560            for value in &self.quality_total {
2561                my_size += ::protobuf::rt::string_size(5, &value);
2562            };
2563            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2564            self.special_fields.cached_size().set(my_size as u32);
2565            my_size
2566        }
2567
2568        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2569            if let Some(v) = self.all {
2570                os.write_bool(6, v)?;
2571            }
2572            for v in &self.type_ {
2573                os.write_string(1, &v)?;
2574            };
2575            for v in &self.other_mats {
2576                os.write_string(2, &v)?;
2577            };
2578            for v in &self.mats {
2579                os.write_string(3, &v)?;
2580            };
2581            for v in &self.quality_core {
2582                os.write_string(4, &v)?;
2583            };
2584            for v in &self.quality_total {
2585                os.write_string(5, &v)?;
2586            };
2587            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2588            ::std::result::Result::Ok(())
2589        }
2590
2591        fn special_fields(&self) -> &::protobuf::SpecialFields {
2592            &self.special_fields
2593        }
2594
2595        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2596            &mut self.special_fields
2597        }
2598
2599        fn new() -> AmmoSet {
2600            AmmoSet::new()
2601        }
2602
2603        fn clear(&mut self) {
2604            self.all = ::std::option::Option::None;
2605            self.type_.clear();
2606            self.other_mats.clear();
2607            self.mats.clear();
2608            self.quality_core.clear();
2609            self.quality_total.clear();
2610            self.special_fields.clear();
2611        }
2612
2613        fn default_instance() -> &'static AmmoSet {
2614            static instance: AmmoSet = AmmoSet {
2615                all: ::std::option::Option::None,
2616                type_: ::std::vec::Vec::new(),
2617                other_mats: ::std::vec::Vec::new(),
2618                mats: ::std::vec::Vec::new(),
2619                quality_core: ::std::vec::Vec::new(),
2620                quality_total: ::std::vec::Vec::new(),
2621                special_fields: ::protobuf::SpecialFields::new(),
2622            };
2623            &instance
2624        }
2625    }
2626
2627    impl ::protobuf::MessageFull for AmmoSet {
2628        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
2629            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
2630            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.AmmoSet").unwrap()).clone()
2631        }
2632    }
2633
2634    impl ::std::fmt::Display for AmmoSet {
2635        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2636            ::protobuf::text_format::fmt(self, f)
2637        }
2638    }
2639
2640    impl ::protobuf::reflect::ProtobufValue for AmmoSet {
2641        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
2642    }
2643
2644    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.CoinSet)
2645    #[derive(PartialEq,Clone,Default,Debug)]
2646    pub struct CoinSet {
2647        // message fields
2648        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.CoinSet.all)
2649        pub all: ::std::option::Option<bool>,
2650        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.CoinSet.mats)
2651        pub mats: ::std::vec::Vec<::std::string::String>,
2652        // special fields
2653        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.CoinSet.special_fields)
2654        pub special_fields: ::protobuf::SpecialFields,
2655    }
2656
2657    impl<'a> ::std::default::Default for &'a CoinSet {
2658        fn default() -> &'a CoinSet {
2659            <CoinSet as ::protobuf::Message>::default_instance()
2660        }
2661    }
2662
2663    impl CoinSet {
2664        pub fn new() -> CoinSet {
2665            ::std::default::Default::default()
2666        }
2667
2668        // optional bool all = 2;
2669
2670        pub fn all(&self) -> bool {
2671            self.all.unwrap_or(false)
2672        }
2673
2674        pub fn clear_all(&mut self) {
2675            self.all = ::std::option::Option::None;
2676        }
2677
2678        pub fn has_all(&self) -> bool {
2679            self.all.is_some()
2680        }
2681
2682        // Param is passed by value, moved
2683        pub fn set_all(&mut self, v: bool) {
2684            self.all = ::std::option::Option::Some(v);
2685        }
2686
2687        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
2688            let mut fields = ::std::vec::Vec::with_capacity(2);
2689            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2690            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
2691                "all",
2692                |m: &CoinSet| { &m.all },
2693                |m: &mut CoinSet| { &mut m.all },
2694            ));
2695            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2696                "mats",
2697                |m: &CoinSet| { &m.mats },
2698                |m: &mut CoinSet| { &mut m.mats },
2699            ));
2700            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<CoinSet>(
2701                "StockpileSettings.CoinSet",
2702                fields,
2703                oneofs,
2704            )
2705        }
2706    }
2707
2708    impl ::protobuf::Message for CoinSet {
2709        const NAME: &'static str = "CoinSet";
2710
2711        fn is_initialized(&self) -> bool {
2712            true
2713        }
2714
2715        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
2716            while let Some(tag) = is.read_raw_tag_or_eof()? {
2717                match tag {
2718                    16 => {
2719                        self.all = ::std::option::Option::Some(is.read_bool()?);
2720                    },
2721                    10 => {
2722                        self.mats.push(is.read_string()?);
2723                    },
2724                    tag => {
2725                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2726                    },
2727                };
2728            }
2729            ::std::result::Result::Ok(())
2730        }
2731
2732        // Compute sizes of nested messages
2733        #[allow(unused_variables)]
2734        fn compute_size(&self) -> u64 {
2735            let mut my_size = 0;
2736            if let Some(v) = self.all {
2737                my_size += 1 + 1;
2738            }
2739            for value in &self.mats {
2740                my_size += ::protobuf::rt::string_size(1, &value);
2741            };
2742            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2743            self.special_fields.cached_size().set(my_size as u32);
2744            my_size
2745        }
2746
2747        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2748            if let Some(v) = self.all {
2749                os.write_bool(2, v)?;
2750            }
2751            for v in &self.mats {
2752                os.write_string(1, &v)?;
2753            };
2754            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2755            ::std::result::Result::Ok(())
2756        }
2757
2758        fn special_fields(&self) -> &::protobuf::SpecialFields {
2759            &self.special_fields
2760        }
2761
2762        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2763            &mut self.special_fields
2764        }
2765
2766        fn new() -> CoinSet {
2767            CoinSet::new()
2768        }
2769
2770        fn clear(&mut self) {
2771            self.all = ::std::option::Option::None;
2772            self.mats.clear();
2773            self.special_fields.clear();
2774        }
2775
2776        fn default_instance() -> &'static CoinSet {
2777            static instance: CoinSet = CoinSet {
2778                all: ::std::option::Option::None,
2779                mats: ::std::vec::Vec::new(),
2780                special_fields: ::protobuf::SpecialFields::new(),
2781            };
2782            &instance
2783        }
2784    }
2785
2786    impl ::protobuf::MessageFull for CoinSet {
2787        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
2788            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
2789            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.CoinSet").unwrap()).clone()
2790        }
2791    }
2792
2793    impl ::std::fmt::Display for CoinSet {
2794        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2795            ::protobuf::text_format::fmt(self, f)
2796        }
2797    }
2798
2799    impl ::protobuf::reflect::ProtobufValue for CoinSet {
2800        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
2801    }
2802
2803    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.BarsBlocksSet)
2804    #[derive(PartialEq,Clone,Default,Debug)]
2805    pub struct BarsBlocksSet {
2806        // message fields
2807        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.BarsBlocksSet.all)
2808        pub all: ::std::option::Option<bool>,
2809        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.BarsBlocksSet.bars_other_mats)
2810        pub bars_other_mats: ::std::vec::Vec<::std::string::String>,
2811        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.BarsBlocksSet.blocks_other_mats)
2812        pub blocks_other_mats: ::std::vec::Vec<::std::string::String>,
2813        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.BarsBlocksSet.bars_mats)
2814        pub bars_mats: ::std::vec::Vec<::std::string::String>,
2815        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.BarsBlocksSet.blocks_mats)
2816        pub blocks_mats: ::std::vec::Vec<::std::string::String>,
2817        // special fields
2818        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.BarsBlocksSet.special_fields)
2819        pub special_fields: ::protobuf::SpecialFields,
2820    }
2821
2822    impl<'a> ::std::default::Default for &'a BarsBlocksSet {
2823        fn default() -> &'a BarsBlocksSet {
2824            <BarsBlocksSet as ::protobuf::Message>::default_instance()
2825        }
2826    }
2827
2828    impl BarsBlocksSet {
2829        pub fn new() -> BarsBlocksSet {
2830            ::std::default::Default::default()
2831        }
2832
2833        // optional bool all = 5;
2834
2835        pub fn all(&self) -> bool {
2836            self.all.unwrap_or(false)
2837        }
2838
2839        pub fn clear_all(&mut self) {
2840            self.all = ::std::option::Option::None;
2841        }
2842
2843        pub fn has_all(&self) -> bool {
2844            self.all.is_some()
2845        }
2846
2847        // Param is passed by value, moved
2848        pub fn set_all(&mut self, v: bool) {
2849            self.all = ::std::option::Option::Some(v);
2850        }
2851
2852        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
2853            let mut fields = ::std::vec::Vec::with_capacity(5);
2854            let mut oneofs = ::std::vec::Vec::with_capacity(0);
2855            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
2856                "all",
2857                |m: &BarsBlocksSet| { &m.all },
2858                |m: &mut BarsBlocksSet| { &mut m.all },
2859            ));
2860            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2861                "bars_other_mats",
2862                |m: &BarsBlocksSet| { &m.bars_other_mats },
2863                |m: &mut BarsBlocksSet| { &mut m.bars_other_mats },
2864            ));
2865            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2866                "blocks_other_mats",
2867                |m: &BarsBlocksSet| { &m.blocks_other_mats },
2868                |m: &mut BarsBlocksSet| { &mut m.blocks_other_mats },
2869            ));
2870            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2871                "bars_mats",
2872                |m: &BarsBlocksSet| { &m.bars_mats },
2873                |m: &mut BarsBlocksSet| { &mut m.bars_mats },
2874            ));
2875            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
2876                "blocks_mats",
2877                |m: &BarsBlocksSet| { &m.blocks_mats },
2878                |m: &mut BarsBlocksSet| { &mut m.blocks_mats },
2879            ));
2880            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<BarsBlocksSet>(
2881                "StockpileSettings.BarsBlocksSet",
2882                fields,
2883                oneofs,
2884            )
2885        }
2886    }
2887
2888    impl ::protobuf::Message for BarsBlocksSet {
2889        const NAME: &'static str = "BarsBlocksSet";
2890
2891        fn is_initialized(&self) -> bool {
2892            true
2893        }
2894
2895        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
2896            while let Some(tag) = is.read_raw_tag_or_eof()? {
2897                match tag {
2898                    40 => {
2899                        self.all = ::std::option::Option::Some(is.read_bool()?);
2900                    },
2901                    10 => {
2902                        self.bars_other_mats.push(is.read_string()?);
2903                    },
2904                    18 => {
2905                        self.blocks_other_mats.push(is.read_string()?);
2906                    },
2907                    26 => {
2908                        self.bars_mats.push(is.read_string()?);
2909                    },
2910                    34 => {
2911                        self.blocks_mats.push(is.read_string()?);
2912                    },
2913                    tag => {
2914                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
2915                    },
2916                };
2917            }
2918            ::std::result::Result::Ok(())
2919        }
2920
2921        // Compute sizes of nested messages
2922        #[allow(unused_variables)]
2923        fn compute_size(&self) -> u64 {
2924            let mut my_size = 0;
2925            if let Some(v) = self.all {
2926                my_size += 1 + 1;
2927            }
2928            for value in &self.bars_other_mats {
2929                my_size += ::protobuf::rt::string_size(1, &value);
2930            };
2931            for value in &self.blocks_other_mats {
2932                my_size += ::protobuf::rt::string_size(2, &value);
2933            };
2934            for value in &self.bars_mats {
2935                my_size += ::protobuf::rt::string_size(3, &value);
2936            };
2937            for value in &self.blocks_mats {
2938                my_size += ::protobuf::rt::string_size(4, &value);
2939            };
2940            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
2941            self.special_fields.cached_size().set(my_size as u32);
2942            my_size
2943        }
2944
2945        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
2946            if let Some(v) = self.all {
2947                os.write_bool(5, v)?;
2948            }
2949            for v in &self.bars_other_mats {
2950                os.write_string(1, &v)?;
2951            };
2952            for v in &self.blocks_other_mats {
2953                os.write_string(2, &v)?;
2954            };
2955            for v in &self.bars_mats {
2956                os.write_string(3, &v)?;
2957            };
2958            for v in &self.blocks_mats {
2959                os.write_string(4, &v)?;
2960            };
2961            os.write_unknown_fields(self.special_fields.unknown_fields())?;
2962            ::std::result::Result::Ok(())
2963        }
2964
2965        fn special_fields(&self) -> &::protobuf::SpecialFields {
2966            &self.special_fields
2967        }
2968
2969        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
2970            &mut self.special_fields
2971        }
2972
2973        fn new() -> BarsBlocksSet {
2974            BarsBlocksSet::new()
2975        }
2976
2977        fn clear(&mut self) {
2978            self.all = ::std::option::Option::None;
2979            self.bars_other_mats.clear();
2980            self.blocks_other_mats.clear();
2981            self.bars_mats.clear();
2982            self.blocks_mats.clear();
2983            self.special_fields.clear();
2984        }
2985
2986        fn default_instance() -> &'static BarsBlocksSet {
2987            static instance: BarsBlocksSet = BarsBlocksSet {
2988                all: ::std::option::Option::None,
2989                bars_other_mats: ::std::vec::Vec::new(),
2990                blocks_other_mats: ::std::vec::Vec::new(),
2991                bars_mats: ::std::vec::Vec::new(),
2992                blocks_mats: ::std::vec::Vec::new(),
2993                special_fields: ::protobuf::SpecialFields::new(),
2994            };
2995            &instance
2996        }
2997    }
2998
2999    impl ::protobuf::MessageFull for BarsBlocksSet {
3000        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
3001            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
3002            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.BarsBlocksSet").unwrap()).clone()
3003        }
3004    }
3005
3006    impl ::std::fmt::Display for BarsBlocksSet {
3007        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3008            ::protobuf::text_format::fmt(self, f)
3009        }
3010    }
3011
3012    impl ::protobuf::reflect::ProtobufValue for BarsBlocksSet {
3013        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
3014    }
3015
3016    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.GemsSet)
3017    #[derive(PartialEq,Clone,Default,Debug)]
3018    pub struct GemsSet {
3019        // message fields
3020        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.GemsSet.all)
3021        pub all: ::std::option::Option<bool>,
3022        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.GemsSet.rough_other_mats)
3023        pub rough_other_mats: ::std::vec::Vec<::std::string::String>,
3024        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.GemsSet.cut_other_mats)
3025        pub cut_other_mats: ::std::vec::Vec<::std::string::String>,
3026        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.GemsSet.rough_mats)
3027        pub rough_mats: ::std::vec::Vec<::std::string::String>,
3028        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.GemsSet.cut_mats)
3029        pub cut_mats: ::std::vec::Vec<::std::string::String>,
3030        // special fields
3031        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.GemsSet.special_fields)
3032        pub special_fields: ::protobuf::SpecialFields,
3033    }
3034
3035    impl<'a> ::std::default::Default for &'a GemsSet {
3036        fn default() -> &'a GemsSet {
3037            <GemsSet as ::protobuf::Message>::default_instance()
3038        }
3039    }
3040
3041    impl GemsSet {
3042        pub fn new() -> GemsSet {
3043            ::std::default::Default::default()
3044        }
3045
3046        // optional bool all = 5;
3047
3048        pub fn all(&self) -> bool {
3049            self.all.unwrap_or(false)
3050        }
3051
3052        pub fn clear_all(&mut self) {
3053            self.all = ::std::option::Option::None;
3054        }
3055
3056        pub fn has_all(&self) -> bool {
3057            self.all.is_some()
3058        }
3059
3060        // Param is passed by value, moved
3061        pub fn set_all(&mut self, v: bool) {
3062            self.all = ::std::option::Option::Some(v);
3063        }
3064
3065        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
3066            let mut fields = ::std::vec::Vec::with_capacity(5);
3067            let mut oneofs = ::std::vec::Vec::with_capacity(0);
3068            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3069                "all",
3070                |m: &GemsSet| { &m.all },
3071                |m: &mut GemsSet| { &mut m.all },
3072            ));
3073            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3074                "rough_other_mats",
3075                |m: &GemsSet| { &m.rough_other_mats },
3076                |m: &mut GemsSet| { &mut m.rough_other_mats },
3077            ));
3078            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3079                "cut_other_mats",
3080                |m: &GemsSet| { &m.cut_other_mats },
3081                |m: &mut GemsSet| { &mut m.cut_other_mats },
3082            ));
3083            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3084                "rough_mats",
3085                |m: &GemsSet| { &m.rough_mats },
3086                |m: &mut GemsSet| { &mut m.rough_mats },
3087            ));
3088            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3089                "cut_mats",
3090                |m: &GemsSet| { &m.cut_mats },
3091                |m: &mut GemsSet| { &mut m.cut_mats },
3092            ));
3093            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<GemsSet>(
3094                "StockpileSettings.GemsSet",
3095                fields,
3096                oneofs,
3097            )
3098        }
3099    }
3100
3101    impl ::protobuf::Message for GemsSet {
3102        const NAME: &'static str = "GemsSet";
3103
3104        fn is_initialized(&self) -> bool {
3105            true
3106        }
3107
3108        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
3109            while let Some(tag) = is.read_raw_tag_or_eof()? {
3110                match tag {
3111                    40 => {
3112                        self.all = ::std::option::Option::Some(is.read_bool()?);
3113                    },
3114                    10 => {
3115                        self.rough_other_mats.push(is.read_string()?);
3116                    },
3117                    18 => {
3118                        self.cut_other_mats.push(is.read_string()?);
3119                    },
3120                    26 => {
3121                        self.rough_mats.push(is.read_string()?);
3122                    },
3123                    34 => {
3124                        self.cut_mats.push(is.read_string()?);
3125                    },
3126                    tag => {
3127                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3128                    },
3129                };
3130            }
3131            ::std::result::Result::Ok(())
3132        }
3133
3134        // Compute sizes of nested messages
3135        #[allow(unused_variables)]
3136        fn compute_size(&self) -> u64 {
3137            let mut my_size = 0;
3138            if let Some(v) = self.all {
3139                my_size += 1 + 1;
3140            }
3141            for value in &self.rough_other_mats {
3142                my_size += ::protobuf::rt::string_size(1, &value);
3143            };
3144            for value in &self.cut_other_mats {
3145                my_size += ::protobuf::rt::string_size(2, &value);
3146            };
3147            for value in &self.rough_mats {
3148                my_size += ::protobuf::rt::string_size(3, &value);
3149            };
3150            for value in &self.cut_mats {
3151                my_size += ::protobuf::rt::string_size(4, &value);
3152            };
3153            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
3154            self.special_fields.cached_size().set(my_size as u32);
3155            my_size
3156        }
3157
3158        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
3159            if let Some(v) = self.all {
3160                os.write_bool(5, v)?;
3161            }
3162            for v in &self.rough_other_mats {
3163                os.write_string(1, &v)?;
3164            };
3165            for v in &self.cut_other_mats {
3166                os.write_string(2, &v)?;
3167            };
3168            for v in &self.rough_mats {
3169                os.write_string(3, &v)?;
3170            };
3171            for v in &self.cut_mats {
3172                os.write_string(4, &v)?;
3173            };
3174            os.write_unknown_fields(self.special_fields.unknown_fields())?;
3175            ::std::result::Result::Ok(())
3176        }
3177
3178        fn special_fields(&self) -> &::protobuf::SpecialFields {
3179            &self.special_fields
3180        }
3181
3182        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
3183            &mut self.special_fields
3184        }
3185
3186        fn new() -> GemsSet {
3187            GemsSet::new()
3188        }
3189
3190        fn clear(&mut self) {
3191            self.all = ::std::option::Option::None;
3192            self.rough_other_mats.clear();
3193            self.cut_other_mats.clear();
3194            self.rough_mats.clear();
3195            self.cut_mats.clear();
3196            self.special_fields.clear();
3197        }
3198
3199        fn default_instance() -> &'static GemsSet {
3200            static instance: GemsSet = GemsSet {
3201                all: ::std::option::Option::None,
3202                rough_other_mats: ::std::vec::Vec::new(),
3203                cut_other_mats: ::std::vec::Vec::new(),
3204                rough_mats: ::std::vec::Vec::new(),
3205                cut_mats: ::std::vec::Vec::new(),
3206                special_fields: ::protobuf::SpecialFields::new(),
3207            };
3208            &instance
3209        }
3210    }
3211
3212    impl ::protobuf::MessageFull for GemsSet {
3213        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
3214            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
3215            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.GemsSet").unwrap()).clone()
3216        }
3217    }
3218
3219    impl ::std::fmt::Display for GemsSet {
3220        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3221            ::protobuf::text_format::fmt(self, f)
3222        }
3223    }
3224
3225    impl ::protobuf::reflect::ProtobufValue for GemsSet {
3226        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
3227    }
3228
3229    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.FinishedGoodsSet)
3230    #[derive(PartialEq,Clone,Default,Debug)]
3231    pub struct FinishedGoodsSet {
3232        // message fields
3233        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.all)
3234        pub all: ::std::option::Option<bool>,
3235        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.type)
3236        pub type_: ::std::vec::Vec<::std::string::String>,
3237        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.other_mats)
3238        pub other_mats: ::std::vec::Vec<::std::string::String>,
3239        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.mats)
3240        pub mats: ::std::vec::Vec<::std::string::String>,
3241        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.quality_core)
3242        pub quality_core: ::std::vec::Vec<::std::string::String>,
3243        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.quality_total)
3244        pub quality_total: ::std::vec::Vec<::std::string::String>,
3245        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.dyed)
3246        pub dyed: ::std::option::Option<bool>,
3247        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.undyed)
3248        pub undyed: ::std::option::Option<bool>,
3249        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.FinishedGoodsSet.color)
3250        pub color: ::std::vec::Vec<::std::string::String>,
3251        // special fields
3252        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.FinishedGoodsSet.special_fields)
3253        pub special_fields: ::protobuf::SpecialFields,
3254    }
3255
3256    impl<'a> ::std::default::Default for &'a FinishedGoodsSet {
3257        fn default() -> &'a FinishedGoodsSet {
3258            <FinishedGoodsSet as ::protobuf::Message>::default_instance()
3259        }
3260    }
3261
3262    impl FinishedGoodsSet {
3263        pub fn new() -> FinishedGoodsSet {
3264            ::std::default::Default::default()
3265        }
3266
3267        // optional bool all = 6;
3268
3269        pub fn all(&self) -> bool {
3270            self.all.unwrap_or(false)
3271        }
3272
3273        pub fn clear_all(&mut self) {
3274            self.all = ::std::option::Option::None;
3275        }
3276
3277        pub fn has_all(&self) -> bool {
3278            self.all.is_some()
3279        }
3280
3281        // Param is passed by value, moved
3282        pub fn set_all(&mut self, v: bool) {
3283            self.all = ::std::option::Option::Some(v);
3284        }
3285
3286        // optional bool dyed = 7;
3287
3288        pub fn dyed(&self) -> bool {
3289            self.dyed.unwrap_or(false)
3290        }
3291
3292        pub fn clear_dyed(&mut self) {
3293            self.dyed = ::std::option::Option::None;
3294        }
3295
3296        pub fn has_dyed(&self) -> bool {
3297            self.dyed.is_some()
3298        }
3299
3300        // Param is passed by value, moved
3301        pub fn set_dyed(&mut self, v: bool) {
3302            self.dyed = ::std::option::Option::Some(v);
3303        }
3304
3305        // optional bool undyed = 8;
3306
3307        pub fn undyed(&self) -> bool {
3308            self.undyed.unwrap_or(false)
3309        }
3310
3311        pub fn clear_undyed(&mut self) {
3312            self.undyed = ::std::option::Option::None;
3313        }
3314
3315        pub fn has_undyed(&self) -> bool {
3316            self.undyed.is_some()
3317        }
3318
3319        // Param is passed by value, moved
3320        pub fn set_undyed(&mut self, v: bool) {
3321            self.undyed = ::std::option::Option::Some(v);
3322        }
3323
3324        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
3325            let mut fields = ::std::vec::Vec::with_capacity(9);
3326            let mut oneofs = ::std::vec::Vec::with_capacity(0);
3327            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3328                "all",
3329                |m: &FinishedGoodsSet| { &m.all },
3330                |m: &mut FinishedGoodsSet| { &mut m.all },
3331            ));
3332            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3333                "type",
3334                |m: &FinishedGoodsSet| { &m.type_ },
3335                |m: &mut FinishedGoodsSet| { &mut m.type_ },
3336            ));
3337            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3338                "other_mats",
3339                |m: &FinishedGoodsSet| { &m.other_mats },
3340                |m: &mut FinishedGoodsSet| { &mut m.other_mats },
3341            ));
3342            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3343                "mats",
3344                |m: &FinishedGoodsSet| { &m.mats },
3345                |m: &mut FinishedGoodsSet| { &mut m.mats },
3346            ));
3347            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3348                "quality_core",
3349                |m: &FinishedGoodsSet| { &m.quality_core },
3350                |m: &mut FinishedGoodsSet| { &mut m.quality_core },
3351            ));
3352            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3353                "quality_total",
3354                |m: &FinishedGoodsSet| { &m.quality_total },
3355                |m: &mut FinishedGoodsSet| { &mut m.quality_total },
3356            ));
3357            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3358                "dyed",
3359                |m: &FinishedGoodsSet| { &m.dyed },
3360                |m: &mut FinishedGoodsSet| { &mut m.dyed },
3361            ));
3362            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3363                "undyed",
3364                |m: &FinishedGoodsSet| { &m.undyed },
3365                |m: &mut FinishedGoodsSet| { &mut m.undyed },
3366            ));
3367            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3368                "color",
3369                |m: &FinishedGoodsSet| { &m.color },
3370                |m: &mut FinishedGoodsSet| { &mut m.color },
3371            ));
3372            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<FinishedGoodsSet>(
3373                "StockpileSettings.FinishedGoodsSet",
3374                fields,
3375                oneofs,
3376            )
3377        }
3378    }
3379
3380    impl ::protobuf::Message for FinishedGoodsSet {
3381        const NAME: &'static str = "FinishedGoodsSet";
3382
3383        fn is_initialized(&self) -> bool {
3384            true
3385        }
3386
3387        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
3388            while let Some(tag) = is.read_raw_tag_or_eof()? {
3389                match tag {
3390                    48 => {
3391                        self.all = ::std::option::Option::Some(is.read_bool()?);
3392                    },
3393                    10 => {
3394                        self.type_.push(is.read_string()?);
3395                    },
3396                    18 => {
3397                        self.other_mats.push(is.read_string()?);
3398                    },
3399                    26 => {
3400                        self.mats.push(is.read_string()?);
3401                    },
3402                    34 => {
3403                        self.quality_core.push(is.read_string()?);
3404                    },
3405                    42 => {
3406                        self.quality_total.push(is.read_string()?);
3407                    },
3408                    56 => {
3409                        self.dyed = ::std::option::Option::Some(is.read_bool()?);
3410                    },
3411                    64 => {
3412                        self.undyed = ::std::option::Option::Some(is.read_bool()?);
3413                    },
3414                    74 => {
3415                        self.color.push(is.read_string()?);
3416                    },
3417                    tag => {
3418                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3419                    },
3420                };
3421            }
3422            ::std::result::Result::Ok(())
3423        }
3424
3425        // Compute sizes of nested messages
3426        #[allow(unused_variables)]
3427        fn compute_size(&self) -> u64 {
3428            let mut my_size = 0;
3429            if let Some(v) = self.all {
3430                my_size += 1 + 1;
3431            }
3432            for value in &self.type_ {
3433                my_size += ::protobuf::rt::string_size(1, &value);
3434            };
3435            for value in &self.other_mats {
3436                my_size += ::protobuf::rt::string_size(2, &value);
3437            };
3438            for value in &self.mats {
3439                my_size += ::protobuf::rt::string_size(3, &value);
3440            };
3441            for value in &self.quality_core {
3442                my_size += ::protobuf::rt::string_size(4, &value);
3443            };
3444            for value in &self.quality_total {
3445                my_size += ::protobuf::rt::string_size(5, &value);
3446            };
3447            if let Some(v) = self.dyed {
3448                my_size += 1 + 1;
3449            }
3450            if let Some(v) = self.undyed {
3451                my_size += 1 + 1;
3452            }
3453            for value in &self.color {
3454                my_size += ::protobuf::rt::string_size(9, &value);
3455            };
3456            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
3457            self.special_fields.cached_size().set(my_size as u32);
3458            my_size
3459        }
3460
3461        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
3462            if let Some(v) = self.all {
3463                os.write_bool(6, v)?;
3464            }
3465            for v in &self.type_ {
3466                os.write_string(1, &v)?;
3467            };
3468            for v in &self.other_mats {
3469                os.write_string(2, &v)?;
3470            };
3471            for v in &self.mats {
3472                os.write_string(3, &v)?;
3473            };
3474            for v in &self.quality_core {
3475                os.write_string(4, &v)?;
3476            };
3477            for v in &self.quality_total {
3478                os.write_string(5, &v)?;
3479            };
3480            if let Some(v) = self.dyed {
3481                os.write_bool(7, v)?;
3482            }
3483            if let Some(v) = self.undyed {
3484                os.write_bool(8, v)?;
3485            }
3486            for v in &self.color {
3487                os.write_string(9, &v)?;
3488            };
3489            os.write_unknown_fields(self.special_fields.unknown_fields())?;
3490            ::std::result::Result::Ok(())
3491        }
3492
3493        fn special_fields(&self) -> &::protobuf::SpecialFields {
3494            &self.special_fields
3495        }
3496
3497        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
3498            &mut self.special_fields
3499        }
3500
3501        fn new() -> FinishedGoodsSet {
3502            FinishedGoodsSet::new()
3503        }
3504
3505        fn clear(&mut self) {
3506            self.all = ::std::option::Option::None;
3507            self.type_.clear();
3508            self.other_mats.clear();
3509            self.mats.clear();
3510            self.quality_core.clear();
3511            self.quality_total.clear();
3512            self.dyed = ::std::option::Option::None;
3513            self.undyed = ::std::option::Option::None;
3514            self.color.clear();
3515            self.special_fields.clear();
3516        }
3517
3518        fn default_instance() -> &'static FinishedGoodsSet {
3519            static instance: FinishedGoodsSet = FinishedGoodsSet {
3520                all: ::std::option::Option::None,
3521                type_: ::std::vec::Vec::new(),
3522                other_mats: ::std::vec::Vec::new(),
3523                mats: ::std::vec::Vec::new(),
3524                quality_core: ::std::vec::Vec::new(),
3525                quality_total: ::std::vec::Vec::new(),
3526                dyed: ::std::option::Option::None,
3527                undyed: ::std::option::Option::None,
3528                color: ::std::vec::Vec::new(),
3529                special_fields: ::protobuf::SpecialFields::new(),
3530            };
3531            &instance
3532        }
3533    }
3534
3535    impl ::protobuf::MessageFull for FinishedGoodsSet {
3536        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
3537            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
3538            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.FinishedGoodsSet").unwrap()).clone()
3539        }
3540    }
3541
3542    impl ::std::fmt::Display for FinishedGoodsSet {
3543        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3544            ::protobuf::text_format::fmt(self, f)
3545        }
3546    }
3547
3548    impl ::protobuf::reflect::ProtobufValue for FinishedGoodsSet {
3549        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
3550    }
3551
3552    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.LeatherSet)
3553    #[derive(PartialEq,Clone,Default,Debug)]
3554    pub struct LeatherSet {
3555        // message fields
3556        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.LeatherSet.all)
3557        pub all: ::std::option::Option<bool>,
3558        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.LeatherSet.mats)
3559        pub mats: ::std::vec::Vec<::std::string::String>,
3560        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.LeatherSet.dyed)
3561        pub dyed: ::std::option::Option<bool>,
3562        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.LeatherSet.undyed)
3563        pub undyed: ::std::option::Option<bool>,
3564        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.LeatherSet.color)
3565        pub color: ::std::vec::Vec<::std::string::String>,
3566        // special fields
3567        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.LeatherSet.special_fields)
3568        pub special_fields: ::protobuf::SpecialFields,
3569    }
3570
3571    impl<'a> ::std::default::Default for &'a LeatherSet {
3572        fn default() -> &'a LeatherSet {
3573            <LeatherSet as ::protobuf::Message>::default_instance()
3574        }
3575    }
3576
3577    impl LeatherSet {
3578        pub fn new() -> LeatherSet {
3579            ::std::default::Default::default()
3580        }
3581
3582        // optional bool all = 2;
3583
3584        pub fn all(&self) -> bool {
3585            self.all.unwrap_or(false)
3586        }
3587
3588        pub fn clear_all(&mut self) {
3589            self.all = ::std::option::Option::None;
3590        }
3591
3592        pub fn has_all(&self) -> bool {
3593            self.all.is_some()
3594        }
3595
3596        // Param is passed by value, moved
3597        pub fn set_all(&mut self, v: bool) {
3598            self.all = ::std::option::Option::Some(v);
3599        }
3600
3601        // optional bool dyed = 3;
3602
3603        pub fn dyed(&self) -> bool {
3604            self.dyed.unwrap_or(false)
3605        }
3606
3607        pub fn clear_dyed(&mut self) {
3608            self.dyed = ::std::option::Option::None;
3609        }
3610
3611        pub fn has_dyed(&self) -> bool {
3612            self.dyed.is_some()
3613        }
3614
3615        // Param is passed by value, moved
3616        pub fn set_dyed(&mut self, v: bool) {
3617            self.dyed = ::std::option::Option::Some(v);
3618        }
3619
3620        // optional bool undyed = 4;
3621
3622        pub fn undyed(&self) -> bool {
3623            self.undyed.unwrap_or(false)
3624        }
3625
3626        pub fn clear_undyed(&mut self) {
3627            self.undyed = ::std::option::Option::None;
3628        }
3629
3630        pub fn has_undyed(&self) -> bool {
3631            self.undyed.is_some()
3632        }
3633
3634        // Param is passed by value, moved
3635        pub fn set_undyed(&mut self, v: bool) {
3636            self.undyed = ::std::option::Option::Some(v);
3637        }
3638
3639        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
3640            let mut fields = ::std::vec::Vec::with_capacity(5);
3641            let mut oneofs = ::std::vec::Vec::with_capacity(0);
3642            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3643                "all",
3644                |m: &LeatherSet| { &m.all },
3645                |m: &mut LeatherSet| { &mut m.all },
3646            ));
3647            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3648                "mats",
3649                |m: &LeatherSet| { &m.mats },
3650                |m: &mut LeatherSet| { &mut m.mats },
3651            ));
3652            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3653                "dyed",
3654                |m: &LeatherSet| { &m.dyed },
3655                |m: &mut LeatherSet| { &mut m.dyed },
3656            ));
3657            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3658                "undyed",
3659                |m: &LeatherSet| { &m.undyed },
3660                |m: &mut LeatherSet| { &mut m.undyed },
3661            ));
3662            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3663                "color",
3664                |m: &LeatherSet| { &m.color },
3665                |m: &mut LeatherSet| { &mut m.color },
3666            ));
3667            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<LeatherSet>(
3668                "StockpileSettings.LeatherSet",
3669                fields,
3670                oneofs,
3671            )
3672        }
3673    }
3674
3675    impl ::protobuf::Message for LeatherSet {
3676        const NAME: &'static str = "LeatherSet";
3677
3678        fn is_initialized(&self) -> bool {
3679            true
3680        }
3681
3682        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
3683            while let Some(tag) = is.read_raw_tag_or_eof()? {
3684                match tag {
3685                    16 => {
3686                        self.all = ::std::option::Option::Some(is.read_bool()?);
3687                    },
3688                    10 => {
3689                        self.mats.push(is.read_string()?);
3690                    },
3691                    24 => {
3692                        self.dyed = ::std::option::Option::Some(is.read_bool()?);
3693                    },
3694                    32 => {
3695                        self.undyed = ::std::option::Option::Some(is.read_bool()?);
3696                    },
3697                    42 => {
3698                        self.color.push(is.read_string()?);
3699                    },
3700                    tag => {
3701                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
3702                    },
3703                };
3704            }
3705            ::std::result::Result::Ok(())
3706        }
3707
3708        // Compute sizes of nested messages
3709        #[allow(unused_variables)]
3710        fn compute_size(&self) -> u64 {
3711            let mut my_size = 0;
3712            if let Some(v) = self.all {
3713                my_size += 1 + 1;
3714            }
3715            for value in &self.mats {
3716                my_size += ::protobuf::rt::string_size(1, &value);
3717            };
3718            if let Some(v) = self.dyed {
3719                my_size += 1 + 1;
3720            }
3721            if let Some(v) = self.undyed {
3722                my_size += 1 + 1;
3723            }
3724            for value in &self.color {
3725                my_size += ::protobuf::rt::string_size(5, &value);
3726            };
3727            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
3728            self.special_fields.cached_size().set(my_size as u32);
3729            my_size
3730        }
3731
3732        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
3733            if let Some(v) = self.all {
3734                os.write_bool(2, v)?;
3735            }
3736            for v in &self.mats {
3737                os.write_string(1, &v)?;
3738            };
3739            if let Some(v) = self.dyed {
3740                os.write_bool(3, v)?;
3741            }
3742            if let Some(v) = self.undyed {
3743                os.write_bool(4, v)?;
3744            }
3745            for v in &self.color {
3746                os.write_string(5, &v)?;
3747            };
3748            os.write_unknown_fields(self.special_fields.unknown_fields())?;
3749            ::std::result::Result::Ok(())
3750        }
3751
3752        fn special_fields(&self) -> &::protobuf::SpecialFields {
3753            &self.special_fields
3754        }
3755
3756        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
3757            &mut self.special_fields
3758        }
3759
3760        fn new() -> LeatherSet {
3761            LeatherSet::new()
3762        }
3763
3764        fn clear(&mut self) {
3765            self.all = ::std::option::Option::None;
3766            self.mats.clear();
3767            self.dyed = ::std::option::Option::None;
3768            self.undyed = ::std::option::Option::None;
3769            self.color.clear();
3770            self.special_fields.clear();
3771        }
3772
3773        fn default_instance() -> &'static LeatherSet {
3774            static instance: LeatherSet = LeatherSet {
3775                all: ::std::option::Option::None,
3776                mats: ::std::vec::Vec::new(),
3777                dyed: ::std::option::Option::None,
3778                undyed: ::std::option::Option::None,
3779                color: ::std::vec::Vec::new(),
3780                special_fields: ::protobuf::SpecialFields::new(),
3781            };
3782            &instance
3783        }
3784    }
3785
3786    impl ::protobuf::MessageFull for LeatherSet {
3787        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
3788            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
3789            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.LeatherSet").unwrap()).clone()
3790        }
3791    }
3792
3793    impl ::std::fmt::Display for LeatherSet {
3794        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3795            ::protobuf::text_format::fmt(self, f)
3796        }
3797    }
3798
3799    impl ::protobuf::reflect::ProtobufValue for LeatherSet {
3800        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
3801    }
3802
3803    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.ClothSet)
3804    #[derive(PartialEq,Clone,Default,Debug)]
3805    pub struct ClothSet {
3806        // message fields
3807        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.all)
3808        pub all: ::std::option::Option<bool>,
3809        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.thread_silk)
3810        pub thread_silk: ::std::vec::Vec<::std::string::String>,
3811        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.thread_plant)
3812        pub thread_plant: ::std::vec::Vec<::std::string::String>,
3813        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.thread_yarn)
3814        pub thread_yarn: ::std::vec::Vec<::std::string::String>,
3815        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.thread_metal)
3816        pub thread_metal: ::std::vec::Vec<::std::string::String>,
3817        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.cloth_silk)
3818        pub cloth_silk: ::std::vec::Vec<::std::string::String>,
3819        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.cloth_plant)
3820        pub cloth_plant: ::std::vec::Vec<::std::string::String>,
3821        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.cloth_yarn)
3822        pub cloth_yarn: ::std::vec::Vec<::std::string::String>,
3823        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.cloth_metal)
3824        pub cloth_metal: ::std::vec::Vec<::std::string::String>,
3825        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.dyed)
3826        pub dyed: ::std::option::Option<bool>,
3827        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.undyed)
3828        pub undyed: ::std::option::Option<bool>,
3829        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ClothSet.color)
3830        pub color: ::std::vec::Vec<::std::string::String>,
3831        // special fields
3832        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.ClothSet.special_fields)
3833        pub special_fields: ::protobuf::SpecialFields,
3834    }
3835
3836    impl<'a> ::std::default::Default for &'a ClothSet {
3837        fn default() -> &'a ClothSet {
3838            <ClothSet as ::protobuf::Message>::default_instance()
3839        }
3840    }
3841
3842    impl ClothSet {
3843        pub fn new() -> ClothSet {
3844            ::std::default::Default::default()
3845        }
3846
3847        // optional bool all = 9;
3848
3849        pub fn all(&self) -> bool {
3850            self.all.unwrap_or(false)
3851        }
3852
3853        pub fn clear_all(&mut self) {
3854            self.all = ::std::option::Option::None;
3855        }
3856
3857        pub fn has_all(&self) -> bool {
3858            self.all.is_some()
3859        }
3860
3861        // Param is passed by value, moved
3862        pub fn set_all(&mut self, v: bool) {
3863            self.all = ::std::option::Option::Some(v);
3864        }
3865
3866        // optional bool dyed = 10;
3867
3868        pub fn dyed(&self) -> bool {
3869            self.dyed.unwrap_or(false)
3870        }
3871
3872        pub fn clear_dyed(&mut self) {
3873            self.dyed = ::std::option::Option::None;
3874        }
3875
3876        pub fn has_dyed(&self) -> bool {
3877            self.dyed.is_some()
3878        }
3879
3880        // Param is passed by value, moved
3881        pub fn set_dyed(&mut self, v: bool) {
3882            self.dyed = ::std::option::Option::Some(v);
3883        }
3884
3885        // optional bool undyed = 11;
3886
3887        pub fn undyed(&self) -> bool {
3888            self.undyed.unwrap_or(false)
3889        }
3890
3891        pub fn clear_undyed(&mut self) {
3892            self.undyed = ::std::option::Option::None;
3893        }
3894
3895        pub fn has_undyed(&self) -> bool {
3896            self.undyed.is_some()
3897        }
3898
3899        // Param is passed by value, moved
3900        pub fn set_undyed(&mut self, v: bool) {
3901            self.undyed = ::std::option::Option::Some(v);
3902        }
3903
3904        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
3905            let mut fields = ::std::vec::Vec::with_capacity(12);
3906            let mut oneofs = ::std::vec::Vec::with_capacity(0);
3907            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3908                "all",
3909                |m: &ClothSet| { &m.all },
3910                |m: &mut ClothSet| { &mut m.all },
3911            ));
3912            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3913                "thread_silk",
3914                |m: &ClothSet| { &m.thread_silk },
3915                |m: &mut ClothSet| { &mut m.thread_silk },
3916            ));
3917            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3918                "thread_plant",
3919                |m: &ClothSet| { &m.thread_plant },
3920                |m: &mut ClothSet| { &mut m.thread_plant },
3921            ));
3922            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3923                "thread_yarn",
3924                |m: &ClothSet| { &m.thread_yarn },
3925                |m: &mut ClothSet| { &mut m.thread_yarn },
3926            ));
3927            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3928                "thread_metal",
3929                |m: &ClothSet| { &m.thread_metal },
3930                |m: &mut ClothSet| { &mut m.thread_metal },
3931            ));
3932            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3933                "cloth_silk",
3934                |m: &ClothSet| { &m.cloth_silk },
3935                |m: &mut ClothSet| { &mut m.cloth_silk },
3936            ));
3937            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3938                "cloth_plant",
3939                |m: &ClothSet| { &m.cloth_plant },
3940                |m: &mut ClothSet| { &mut m.cloth_plant },
3941            ));
3942            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3943                "cloth_yarn",
3944                |m: &ClothSet| { &m.cloth_yarn },
3945                |m: &mut ClothSet| { &mut m.cloth_yarn },
3946            ));
3947            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3948                "cloth_metal",
3949                |m: &ClothSet| { &m.cloth_metal },
3950                |m: &mut ClothSet| { &mut m.cloth_metal },
3951            ));
3952            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3953                "dyed",
3954                |m: &ClothSet| { &m.dyed },
3955                |m: &mut ClothSet| { &mut m.dyed },
3956            ));
3957            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
3958                "undyed",
3959                |m: &ClothSet| { &m.undyed },
3960                |m: &mut ClothSet| { &mut m.undyed },
3961            ));
3962            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
3963                "color",
3964                |m: &ClothSet| { &m.color },
3965                |m: &mut ClothSet| { &mut m.color },
3966            ));
3967            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ClothSet>(
3968                "StockpileSettings.ClothSet",
3969                fields,
3970                oneofs,
3971            )
3972        }
3973    }
3974
3975    impl ::protobuf::Message for ClothSet {
3976        const NAME: &'static str = "ClothSet";
3977
3978        fn is_initialized(&self) -> bool {
3979            true
3980        }
3981
3982        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
3983            while let Some(tag) = is.read_raw_tag_or_eof()? {
3984                match tag {
3985                    72 => {
3986                        self.all = ::std::option::Option::Some(is.read_bool()?);
3987                    },
3988                    10 => {
3989                        self.thread_silk.push(is.read_string()?);
3990                    },
3991                    18 => {
3992                        self.thread_plant.push(is.read_string()?);
3993                    },
3994                    26 => {
3995                        self.thread_yarn.push(is.read_string()?);
3996                    },
3997                    34 => {
3998                        self.thread_metal.push(is.read_string()?);
3999                    },
4000                    42 => {
4001                        self.cloth_silk.push(is.read_string()?);
4002                    },
4003                    50 => {
4004                        self.cloth_plant.push(is.read_string()?);
4005                    },
4006                    58 => {
4007                        self.cloth_yarn.push(is.read_string()?);
4008                    },
4009                    66 => {
4010                        self.cloth_metal.push(is.read_string()?);
4011                    },
4012                    80 => {
4013                        self.dyed = ::std::option::Option::Some(is.read_bool()?);
4014                    },
4015                    88 => {
4016                        self.undyed = ::std::option::Option::Some(is.read_bool()?);
4017                    },
4018                    98 => {
4019                        self.color.push(is.read_string()?);
4020                    },
4021                    tag => {
4022                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4023                    },
4024                };
4025            }
4026            ::std::result::Result::Ok(())
4027        }
4028
4029        // Compute sizes of nested messages
4030        #[allow(unused_variables)]
4031        fn compute_size(&self) -> u64 {
4032            let mut my_size = 0;
4033            if let Some(v) = self.all {
4034                my_size += 1 + 1;
4035            }
4036            for value in &self.thread_silk {
4037                my_size += ::protobuf::rt::string_size(1, &value);
4038            };
4039            for value in &self.thread_plant {
4040                my_size += ::protobuf::rt::string_size(2, &value);
4041            };
4042            for value in &self.thread_yarn {
4043                my_size += ::protobuf::rt::string_size(3, &value);
4044            };
4045            for value in &self.thread_metal {
4046                my_size += ::protobuf::rt::string_size(4, &value);
4047            };
4048            for value in &self.cloth_silk {
4049                my_size += ::protobuf::rt::string_size(5, &value);
4050            };
4051            for value in &self.cloth_plant {
4052                my_size += ::protobuf::rt::string_size(6, &value);
4053            };
4054            for value in &self.cloth_yarn {
4055                my_size += ::protobuf::rt::string_size(7, &value);
4056            };
4057            for value in &self.cloth_metal {
4058                my_size += ::protobuf::rt::string_size(8, &value);
4059            };
4060            if let Some(v) = self.dyed {
4061                my_size += 1 + 1;
4062            }
4063            if let Some(v) = self.undyed {
4064                my_size += 1 + 1;
4065            }
4066            for value in &self.color {
4067                my_size += ::protobuf::rt::string_size(12, &value);
4068            };
4069            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
4070            self.special_fields.cached_size().set(my_size as u32);
4071            my_size
4072        }
4073
4074        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
4075            if let Some(v) = self.all {
4076                os.write_bool(9, v)?;
4077            }
4078            for v in &self.thread_silk {
4079                os.write_string(1, &v)?;
4080            };
4081            for v in &self.thread_plant {
4082                os.write_string(2, &v)?;
4083            };
4084            for v in &self.thread_yarn {
4085                os.write_string(3, &v)?;
4086            };
4087            for v in &self.thread_metal {
4088                os.write_string(4, &v)?;
4089            };
4090            for v in &self.cloth_silk {
4091                os.write_string(5, &v)?;
4092            };
4093            for v in &self.cloth_plant {
4094                os.write_string(6, &v)?;
4095            };
4096            for v in &self.cloth_yarn {
4097                os.write_string(7, &v)?;
4098            };
4099            for v in &self.cloth_metal {
4100                os.write_string(8, &v)?;
4101            };
4102            if let Some(v) = self.dyed {
4103                os.write_bool(10, v)?;
4104            }
4105            if let Some(v) = self.undyed {
4106                os.write_bool(11, v)?;
4107            }
4108            for v in &self.color {
4109                os.write_string(12, &v)?;
4110            };
4111            os.write_unknown_fields(self.special_fields.unknown_fields())?;
4112            ::std::result::Result::Ok(())
4113        }
4114
4115        fn special_fields(&self) -> &::protobuf::SpecialFields {
4116            &self.special_fields
4117        }
4118
4119        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
4120            &mut self.special_fields
4121        }
4122
4123        fn new() -> ClothSet {
4124            ClothSet::new()
4125        }
4126
4127        fn clear(&mut self) {
4128            self.all = ::std::option::Option::None;
4129            self.thread_silk.clear();
4130            self.thread_plant.clear();
4131            self.thread_yarn.clear();
4132            self.thread_metal.clear();
4133            self.cloth_silk.clear();
4134            self.cloth_plant.clear();
4135            self.cloth_yarn.clear();
4136            self.cloth_metal.clear();
4137            self.dyed = ::std::option::Option::None;
4138            self.undyed = ::std::option::Option::None;
4139            self.color.clear();
4140            self.special_fields.clear();
4141        }
4142
4143        fn default_instance() -> &'static ClothSet {
4144            static instance: ClothSet = ClothSet {
4145                all: ::std::option::Option::None,
4146                thread_silk: ::std::vec::Vec::new(),
4147                thread_plant: ::std::vec::Vec::new(),
4148                thread_yarn: ::std::vec::Vec::new(),
4149                thread_metal: ::std::vec::Vec::new(),
4150                cloth_silk: ::std::vec::Vec::new(),
4151                cloth_plant: ::std::vec::Vec::new(),
4152                cloth_yarn: ::std::vec::Vec::new(),
4153                cloth_metal: ::std::vec::Vec::new(),
4154                dyed: ::std::option::Option::None,
4155                undyed: ::std::option::Option::None,
4156                color: ::std::vec::Vec::new(),
4157                special_fields: ::protobuf::SpecialFields::new(),
4158            };
4159            &instance
4160        }
4161    }
4162
4163    impl ::protobuf::MessageFull for ClothSet {
4164        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
4165            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
4166            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.ClothSet").unwrap()).clone()
4167        }
4168    }
4169
4170    impl ::std::fmt::Display for ClothSet {
4171        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4172            ::protobuf::text_format::fmt(self, f)
4173        }
4174    }
4175
4176    impl ::protobuf::reflect::ProtobufValue for ClothSet {
4177        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
4178    }
4179
4180    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.WoodSet)
4181    #[derive(PartialEq,Clone,Default,Debug)]
4182    pub struct WoodSet {
4183        // message fields
4184        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WoodSet.all)
4185        pub all: ::std::option::Option<bool>,
4186        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WoodSet.mats)
4187        pub mats: ::std::vec::Vec<::std::string::String>,
4188        // special fields
4189        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.WoodSet.special_fields)
4190        pub special_fields: ::protobuf::SpecialFields,
4191    }
4192
4193    impl<'a> ::std::default::Default for &'a WoodSet {
4194        fn default() -> &'a WoodSet {
4195            <WoodSet as ::protobuf::Message>::default_instance()
4196        }
4197    }
4198
4199    impl WoodSet {
4200        pub fn new() -> WoodSet {
4201            ::std::default::Default::default()
4202        }
4203
4204        // optional bool all = 2;
4205
4206        pub fn all(&self) -> bool {
4207            self.all.unwrap_or(false)
4208        }
4209
4210        pub fn clear_all(&mut self) {
4211            self.all = ::std::option::Option::None;
4212        }
4213
4214        pub fn has_all(&self) -> bool {
4215            self.all.is_some()
4216        }
4217
4218        // Param is passed by value, moved
4219        pub fn set_all(&mut self, v: bool) {
4220            self.all = ::std::option::Option::Some(v);
4221        }
4222
4223        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
4224            let mut fields = ::std::vec::Vec::with_capacity(2);
4225            let mut oneofs = ::std::vec::Vec::with_capacity(0);
4226            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4227                "all",
4228                |m: &WoodSet| { &m.all },
4229                |m: &mut WoodSet| { &mut m.all },
4230            ));
4231            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4232                "mats",
4233                |m: &WoodSet| { &m.mats },
4234                |m: &mut WoodSet| { &mut m.mats },
4235            ));
4236            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<WoodSet>(
4237                "StockpileSettings.WoodSet",
4238                fields,
4239                oneofs,
4240            )
4241        }
4242    }
4243
4244    impl ::protobuf::Message for WoodSet {
4245        const NAME: &'static str = "WoodSet";
4246
4247        fn is_initialized(&self) -> bool {
4248            true
4249        }
4250
4251        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
4252            while let Some(tag) = is.read_raw_tag_or_eof()? {
4253                match tag {
4254                    16 => {
4255                        self.all = ::std::option::Option::Some(is.read_bool()?);
4256                    },
4257                    10 => {
4258                        self.mats.push(is.read_string()?);
4259                    },
4260                    tag => {
4261                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4262                    },
4263                };
4264            }
4265            ::std::result::Result::Ok(())
4266        }
4267
4268        // Compute sizes of nested messages
4269        #[allow(unused_variables)]
4270        fn compute_size(&self) -> u64 {
4271            let mut my_size = 0;
4272            if let Some(v) = self.all {
4273                my_size += 1 + 1;
4274            }
4275            for value in &self.mats {
4276                my_size += ::protobuf::rt::string_size(1, &value);
4277            };
4278            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
4279            self.special_fields.cached_size().set(my_size as u32);
4280            my_size
4281        }
4282
4283        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
4284            if let Some(v) = self.all {
4285                os.write_bool(2, v)?;
4286            }
4287            for v in &self.mats {
4288                os.write_string(1, &v)?;
4289            };
4290            os.write_unknown_fields(self.special_fields.unknown_fields())?;
4291            ::std::result::Result::Ok(())
4292        }
4293
4294        fn special_fields(&self) -> &::protobuf::SpecialFields {
4295            &self.special_fields
4296        }
4297
4298        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
4299            &mut self.special_fields
4300        }
4301
4302        fn new() -> WoodSet {
4303            WoodSet::new()
4304        }
4305
4306        fn clear(&mut self) {
4307            self.all = ::std::option::Option::None;
4308            self.mats.clear();
4309            self.special_fields.clear();
4310        }
4311
4312        fn default_instance() -> &'static WoodSet {
4313            static instance: WoodSet = WoodSet {
4314                all: ::std::option::Option::None,
4315                mats: ::std::vec::Vec::new(),
4316                special_fields: ::protobuf::SpecialFields::new(),
4317            };
4318            &instance
4319        }
4320    }
4321
4322    impl ::protobuf::MessageFull for WoodSet {
4323        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
4324            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
4325            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.WoodSet").unwrap()).clone()
4326        }
4327    }
4328
4329    impl ::std::fmt::Display for WoodSet {
4330        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4331            ::protobuf::text_format::fmt(self, f)
4332        }
4333    }
4334
4335    impl ::protobuf::reflect::ProtobufValue for WoodSet {
4336        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
4337    }
4338
4339    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.WeaponsSet)
4340    #[derive(PartialEq,Clone,Default,Debug)]
4341    pub struct WeaponsSet {
4342        // message fields
4343        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.all)
4344        pub all: ::std::option::Option<bool>,
4345        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.weapon_type)
4346        pub weapon_type: ::std::vec::Vec<::std::string::String>,
4347        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.trapcomp_type)
4348        pub trapcomp_type: ::std::vec::Vec<::std::string::String>,
4349        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.other_mats)
4350        pub other_mats: ::std::vec::Vec<::std::string::String>,
4351        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.mats)
4352        pub mats: ::std::vec::Vec<::std::string::String>,
4353        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.quality_core)
4354        pub quality_core: ::std::vec::Vec<::std::string::String>,
4355        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.quality_total)
4356        pub quality_total: ::std::vec::Vec<::std::string::String>,
4357        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.usable)
4358        pub usable: ::std::option::Option<bool>,
4359        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.WeaponsSet.unusable)
4360        pub unusable: ::std::option::Option<bool>,
4361        // special fields
4362        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.WeaponsSet.special_fields)
4363        pub special_fields: ::protobuf::SpecialFields,
4364    }
4365
4366    impl<'a> ::std::default::Default for &'a WeaponsSet {
4367        fn default() -> &'a WeaponsSet {
4368            <WeaponsSet as ::protobuf::Message>::default_instance()
4369        }
4370    }
4371
4372    impl WeaponsSet {
4373        pub fn new() -> WeaponsSet {
4374            ::std::default::Default::default()
4375        }
4376
4377        // optional bool all = 9;
4378
4379        pub fn all(&self) -> bool {
4380            self.all.unwrap_or(false)
4381        }
4382
4383        pub fn clear_all(&mut self) {
4384            self.all = ::std::option::Option::None;
4385        }
4386
4387        pub fn has_all(&self) -> bool {
4388            self.all.is_some()
4389        }
4390
4391        // Param is passed by value, moved
4392        pub fn set_all(&mut self, v: bool) {
4393            self.all = ::std::option::Option::Some(v);
4394        }
4395
4396        // optional bool usable = 7;
4397
4398        pub fn usable(&self) -> bool {
4399            self.usable.unwrap_or(false)
4400        }
4401
4402        pub fn clear_usable(&mut self) {
4403            self.usable = ::std::option::Option::None;
4404        }
4405
4406        pub fn has_usable(&self) -> bool {
4407            self.usable.is_some()
4408        }
4409
4410        // Param is passed by value, moved
4411        pub fn set_usable(&mut self, v: bool) {
4412            self.usable = ::std::option::Option::Some(v);
4413        }
4414
4415        // optional bool unusable = 8;
4416
4417        pub fn unusable(&self) -> bool {
4418            self.unusable.unwrap_or(false)
4419        }
4420
4421        pub fn clear_unusable(&mut self) {
4422            self.unusable = ::std::option::Option::None;
4423        }
4424
4425        pub fn has_unusable(&self) -> bool {
4426            self.unusable.is_some()
4427        }
4428
4429        // Param is passed by value, moved
4430        pub fn set_unusable(&mut self, v: bool) {
4431            self.unusable = ::std::option::Option::Some(v);
4432        }
4433
4434        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
4435            let mut fields = ::std::vec::Vec::with_capacity(9);
4436            let mut oneofs = ::std::vec::Vec::with_capacity(0);
4437            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4438                "all",
4439                |m: &WeaponsSet| { &m.all },
4440                |m: &mut WeaponsSet| { &mut m.all },
4441            ));
4442            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4443                "weapon_type",
4444                |m: &WeaponsSet| { &m.weapon_type },
4445                |m: &mut WeaponsSet| { &mut m.weapon_type },
4446            ));
4447            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4448                "trapcomp_type",
4449                |m: &WeaponsSet| { &m.trapcomp_type },
4450                |m: &mut WeaponsSet| { &mut m.trapcomp_type },
4451            ));
4452            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4453                "other_mats",
4454                |m: &WeaponsSet| { &m.other_mats },
4455                |m: &mut WeaponsSet| { &mut m.other_mats },
4456            ));
4457            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4458                "mats",
4459                |m: &WeaponsSet| { &m.mats },
4460                |m: &mut WeaponsSet| { &mut m.mats },
4461            ));
4462            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4463                "quality_core",
4464                |m: &WeaponsSet| { &m.quality_core },
4465                |m: &mut WeaponsSet| { &mut m.quality_core },
4466            ));
4467            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4468                "quality_total",
4469                |m: &WeaponsSet| { &m.quality_total },
4470                |m: &mut WeaponsSet| { &mut m.quality_total },
4471            ));
4472            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4473                "usable",
4474                |m: &WeaponsSet| { &m.usable },
4475                |m: &mut WeaponsSet| { &mut m.usable },
4476            ));
4477            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4478                "unusable",
4479                |m: &WeaponsSet| { &m.unusable },
4480                |m: &mut WeaponsSet| { &mut m.unusable },
4481            ));
4482            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<WeaponsSet>(
4483                "StockpileSettings.WeaponsSet",
4484                fields,
4485                oneofs,
4486            )
4487        }
4488    }
4489
4490    impl ::protobuf::Message for WeaponsSet {
4491        const NAME: &'static str = "WeaponsSet";
4492
4493        fn is_initialized(&self) -> bool {
4494            true
4495        }
4496
4497        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
4498            while let Some(tag) = is.read_raw_tag_or_eof()? {
4499                match tag {
4500                    72 => {
4501                        self.all = ::std::option::Option::Some(is.read_bool()?);
4502                    },
4503                    10 => {
4504                        self.weapon_type.push(is.read_string()?);
4505                    },
4506                    18 => {
4507                        self.trapcomp_type.push(is.read_string()?);
4508                    },
4509                    26 => {
4510                        self.other_mats.push(is.read_string()?);
4511                    },
4512                    34 => {
4513                        self.mats.push(is.read_string()?);
4514                    },
4515                    42 => {
4516                        self.quality_core.push(is.read_string()?);
4517                    },
4518                    50 => {
4519                        self.quality_total.push(is.read_string()?);
4520                    },
4521                    56 => {
4522                        self.usable = ::std::option::Option::Some(is.read_bool()?);
4523                    },
4524                    64 => {
4525                        self.unusable = ::std::option::Option::Some(is.read_bool()?);
4526                    },
4527                    tag => {
4528                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4529                    },
4530                };
4531            }
4532            ::std::result::Result::Ok(())
4533        }
4534
4535        // Compute sizes of nested messages
4536        #[allow(unused_variables)]
4537        fn compute_size(&self) -> u64 {
4538            let mut my_size = 0;
4539            if let Some(v) = self.all {
4540                my_size += 1 + 1;
4541            }
4542            for value in &self.weapon_type {
4543                my_size += ::protobuf::rt::string_size(1, &value);
4544            };
4545            for value in &self.trapcomp_type {
4546                my_size += ::protobuf::rt::string_size(2, &value);
4547            };
4548            for value in &self.other_mats {
4549                my_size += ::protobuf::rt::string_size(3, &value);
4550            };
4551            for value in &self.mats {
4552                my_size += ::protobuf::rt::string_size(4, &value);
4553            };
4554            for value in &self.quality_core {
4555                my_size += ::protobuf::rt::string_size(5, &value);
4556            };
4557            for value in &self.quality_total {
4558                my_size += ::protobuf::rt::string_size(6, &value);
4559            };
4560            if let Some(v) = self.usable {
4561                my_size += 1 + 1;
4562            }
4563            if let Some(v) = self.unusable {
4564                my_size += 1 + 1;
4565            }
4566            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
4567            self.special_fields.cached_size().set(my_size as u32);
4568            my_size
4569        }
4570
4571        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
4572            if let Some(v) = self.all {
4573                os.write_bool(9, v)?;
4574            }
4575            for v in &self.weapon_type {
4576                os.write_string(1, &v)?;
4577            };
4578            for v in &self.trapcomp_type {
4579                os.write_string(2, &v)?;
4580            };
4581            for v in &self.other_mats {
4582                os.write_string(3, &v)?;
4583            };
4584            for v in &self.mats {
4585                os.write_string(4, &v)?;
4586            };
4587            for v in &self.quality_core {
4588                os.write_string(5, &v)?;
4589            };
4590            for v in &self.quality_total {
4591                os.write_string(6, &v)?;
4592            };
4593            if let Some(v) = self.usable {
4594                os.write_bool(7, v)?;
4595            }
4596            if let Some(v) = self.unusable {
4597                os.write_bool(8, v)?;
4598            }
4599            os.write_unknown_fields(self.special_fields.unknown_fields())?;
4600            ::std::result::Result::Ok(())
4601        }
4602
4603        fn special_fields(&self) -> &::protobuf::SpecialFields {
4604            &self.special_fields
4605        }
4606
4607        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
4608            &mut self.special_fields
4609        }
4610
4611        fn new() -> WeaponsSet {
4612            WeaponsSet::new()
4613        }
4614
4615        fn clear(&mut self) {
4616            self.all = ::std::option::Option::None;
4617            self.weapon_type.clear();
4618            self.trapcomp_type.clear();
4619            self.other_mats.clear();
4620            self.mats.clear();
4621            self.quality_core.clear();
4622            self.quality_total.clear();
4623            self.usable = ::std::option::Option::None;
4624            self.unusable = ::std::option::Option::None;
4625            self.special_fields.clear();
4626        }
4627
4628        fn default_instance() -> &'static WeaponsSet {
4629            static instance: WeaponsSet = WeaponsSet {
4630                all: ::std::option::Option::None,
4631                weapon_type: ::std::vec::Vec::new(),
4632                trapcomp_type: ::std::vec::Vec::new(),
4633                other_mats: ::std::vec::Vec::new(),
4634                mats: ::std::vec::Vec::new(),
4635                quality_core: ::std::vec::Vec::new(),
4636                quality_total: ::std::vec::Vec::new(),
4637                usable: ::std::option::Option::None,
4638                unusable: ::std::option::Option::None,
4639                special_fields: ::protobuf::SpecialFields::new(),
4640            };
4641            &instance
4642        }
4643    }
4644
4645    impl ::protobuf::MessageFull for WeaponsSet {
4646        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
4647            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
4648            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.WeaponsSet").unwrap()).clone()
4649        }
4650    }
4651
4652    impl ::std::fmt::Display for WeaponsSet {
4653        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4654            ::protobuf::text_format::fmt(self, f)
4655        }
4656    }
4657
4658    impl ::protobuf::reflect::ProtobufValue for WeaponsSet {
4659        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
4660    }
4661
4662    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.ArmorSet)
4663    #[derive(PartialEq,Clone,Default,Debug)]
4664    pub struct ArmorSet {
4665        // message fields
4666        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.all)
4667        pub all: ::std::option::Option<bool>,
4668        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.body)
4669        pub body: ::std::vec::Vec<::std::string::String>,
4670        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.head)
4671        pub head: ::std::vec::Vec<::std::string::String>,
4672        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.feet)
4673        pub feet: ::std::vec::Vec<::std::string::String>,
4674        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.hands)
4675        pub hands: ::std::vec::Vec<::std::string::String>,
4676        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.legs)
4677        pub legs: ::std::vec::Vec<::std::string::String>,
4678        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.shield)
4679        pub shield: ::std::vec::Vec<::std::string::String>,
4680        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.other_mats)
4681        pub other_mats: ::std::vec::Vec<::std::string::String>,
4682        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.mats)
4683        pub mats: ::std::vec::Vec<::std::string::String>,
4684        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.quality_core)
4685        pub quality_core: ::std::vec::Vec<::std::string::String>,
4686        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.quality_total)
4687        pub quality_total: ::std::vec::Vec<::std::string::String>,
4688        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.usable)
4689        pub usable: ::std::option::Option<bool>,
4690        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.unusable)
4691        pub unusable: ::std::option::Option<bool>,
4692        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.dyed)
4693        pub dyed: ::std::option::Option<bool>,
4694        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.undyed)
4695        pub undyed: ::std::option::Option<bool>,
4696        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.ArmorSet.color)
4697        pub color: ::std::vec::Vec<::std::string::String>,
4698        // special fields
4699        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.ArmorSet.special_fields)
4700        pub special_fields: ::protobuf::SpecialFields,
4701    }
4702
4703    impl<'a> ::std::default::Default for &'a ArmorSet {
4704        fn default() -> &'a ArmorSet {
4705            <ArmorSet as ::protobuf::Message>::default_instance()
4706        }
4707    }
4708
4709    impl ArmorSet {
4710        pub fn new() -> ArmorSet {
4711            ::std::default::Default::default()
4712        }
4713
4714        // optional bool all = 13;
4715
4716        pub fn all(&self) -> bool {
4717            self.all.unwrap_or(false)
4718        }
4719
4720        pub fn clear_all(&mut self) {
4721            self.all = ::std::option::Option::None;
4722        }
4723
4724        pub fn has_all(&self) -> bool {
4725            self.all.is_some()
4726        }
4727
4728        // Param is passed by value, moved
4729        pub fn set_all(&mut self, v: bool) {
4730            self.all = ::std::option::Option::Some(v);
4731        }
4732
4733        // optional bool usable = 11;
4734
4735        pub fn usable(&self) -> bool {
4736            self.usable.unwrap_or(false)
4737        }
4738
4739        pub fn clear_usable(&mut self) {
4740            self.usable = ::std::option::Option::None;
4741        }
4742
4743        pub fn has_usable(&self) -> bool {
4744            self.usable.is_some()
4745        }
4746
4747        // Param is passed by value, moved
4748        pub fn set_usable(&mut self, v: bool) {
4749            self.usable = ::std::option::Option::Some(v);
4750        }
4751
4752        // optional bool unusable = 12;
4753
4754        pub fn unusable(&self) -> bool {
4755            self.unusable.unwrap_or(false)
4756        }
4757
4758        pub fn clear_unusable(&mut self) {
4759            self.unusable = ::std::option::Option::None;
4760        }
4761
4762        pub fn has_unusable(&self) -> bool {
4763            self.unusable.is_some()
4764        }
4765
4766        // Param is passed by value, moved
4767        pub fn set_unusable(&mut self, v: bool) {
4768            self.unusable = ::std::option::Option::Some(v);
4769        }
4770
4771        // optional bool dyed = 14;
4772
4773        pub fn dyed(&self) -> bool {
4774            self.dyed.unwrap_or(false)
4775        }
4776
4777        pub fn clear_dyed(&mut self) {
4778            self.dyed = ::std::option::Option::None;
4779        }
4780
4781        pub fn has_dyed(&self) -> bool {
4782            self.dyed.is_some()
4783        }
4784
4785        // Param is passed by value, moved
4786        pub fn set_dyed(&mut self, v: bool) {
4787            self.dyed = ::std::option::Option::Some(v);
4788        }
4789
4790        // optional bool undyed = 15;
4791
4792        pub fn undyed(&self) -> bool {
4793            self.undyed.unwrap_or(false)
4794        }
4795
4796        pub fn clear_undyed(&mut self) {
4797            self.undyed = ::std::option::Option::None;
4798        }
4799
4800        pub fn has_undyed(&self) -> bool {
4801            self.undyed.is_some()
4802        }
4803
4804        // Param is passed by value, moved
4805        pub fn set_undyed(&mut self, v: bool) {
4806            self.undyed = ::std::option::Option::Some(v);
4807        }
4808
4809        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
4810            let mut fields = ::std::vec::Vec::with_capacity(16);
4811            let mut oneofs = ::std::vec::Vec::with_capacity(0);
4812            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4813                "all",
4814                |m: &ArmorSet| { &m.all },
4815                |m: &mut ArmorSet| { &mut m.all },
4816            ));
4817            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4818                "body",
4819                |m: &ArmorSet| { &m.body },
4820                |m: &mut ArmorSet| { &mut m.body },
4821            ));
4822            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4823                "head",
4824                |m: &ArmorSet| { &m.head },
4825                |m: &mut ArmorSet| { &mut m.head },
4826            ));
4827            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4828                "feet",
4829                |m: &ArmorSet| { &m.feet },
4830                |m: &mut ArmorSet| { &mut m.feet },
4831            ));
4832            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4833                "hands",
4834                |m: &ArmorSet| { &m.hands },
4835                |m: &mut ArmorSet| { &mut m.hands },
4836            ));
4837            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4838                "legs",
4839                |m: &ArmorSet| { &m.legs },
4840                |m: &mut ArmorSet| { &mut m.legs },
4841            ));
4842            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4843                "shield",
4844                |m: &ArmorSet| { &m.shield },
4845                |m: &mut ArmorSet| { &mut m.shield },
4846            ));
4847            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4848                "other_mats",
4849                |m: &ArmorSet| { &m.other_mats },
4850                |m: &mut ArmorSet| { &mut m.other_mats },
4851            ));
4852            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4853                "mats",
4854                |m: &ArmorSet| { &m.mats },
4855                |m: &mut ArmorSet| { &mut m.mats },
4856            ));
4857            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4858                "quality_core",
4859                |m: &ArmorSet| { &m.quality_core },
4860                |m: &mut ArmorSet| { &mut m.quality_core },
4861            ));
4862            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4863                "quality_total",
4864                |m: &ArmorSet| { &m.quality_total },
4865                |m: &mut ArmorSet| { &mut m.quality_total },
4866            ));
4867            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4868                "usable",
4869                |m: &ArmorSet| { &m.usable },
4870                |m: &mut ArmorSet| { &mut m.usable },
4871            ));
4872            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4873                "unusable",
4874                |m: &ArmorSet| { &m.unusable },
4875                |m: &mut ArmorSet| { &mut m.unusable },
4876            ));
4877            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4878                "dyed",
4879                |m: &ArmorSet| { &m.dyed },
4880                |m: &mut ArmorSet| { &mut m.dyed },
4881            ));
4882            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
4883                "undyed",
4884                |m: &ArmorSet| { &m.undyed },
4885                |m: &mut ArmorSet| { &mut m.undyed },
4886            ));
4887            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
4888                "color",
4889                |m: &ArmorSet| { &m.color },
4890                |m: &mut ArmorSet| { &mut m.color },
4891            ));
4892            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<ArmorSet>(
4893                "StockpileSettings.ArmorSet",
4894                fields,
4895                oneofs,
4896            )
4897        }
4898    }
4899
4900    impl ::protobuf::Message for ArmorSet {
4901        const NAME: &'static str = "ArmorSet";
4902
4903        fn is_initialized(&self) -> bool {
4904            true
4905        }
4906
4907        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
4908            while let Some(tag) = is.read_raw_tag_or_eof()? {
4909                match tag {
4910                    104 => {
4911                        self.all = ::std::option::Option::Some(is.read_bool()?);
4912                    },
4913                    10 => {
4914                        self.body.push(is.read_string()?);
4915                    },
4916                    18 => {
4917                        self.head.push(is.read_string()?);
4918                    },
4919                    26 => {
4920                        self.feet.push(is.read_string()?);
4921                    },
4922                    34 => {
4923                        self.hands.push(is.read_string()?);
4924                    },
4925                    42 => {
4926                        self.legs.push(is.read_string()?);
4927                    },
4928                    50 => {
4929                        self.shield.push(is.read_string()?);
4930                    },
4931                    58 => {
4932                        self.other_mats.push(is.read_string()?);
4933                    },
4934                    66 => {
4935                        self.mats.push(is.read_string()?);
4936                    },
4937                    74 => {
4938                        self.quality_core.push(is.read_string()?);
4939                    },
4940                    82 => {
4941                        self.quality_total.push(is.read_string()?);
4942                    },
4943                    88 => {
4944                        self.usable = ::std::option::Option::Some(is.read_bool()?);
4945                    },
4946                    96 => {
4947                        self.unusable = ::std::option::Option::Some(is.read_bool()?);
4948                    },
4949                    112 => {
4950                        self.dyed = ::std::option::Option::Some(is.read_bool()?);
4951                    },
4952                    120 => {
4953                        self.undyed = ::std::option::Option::Some(is.read_bool()?);
4954                    },
4955                    130 => {
4956                        self.color.push(is.read_string()?);
4957                    },
4958                    tag => {
4959                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
4960                    },
4961                };
4962            }
4963            ::std::result::Result::Ok(())
4964        }
4965
4966        // Compute sizes of nested messages
4967        #[allow(unused_variables)]
4968        fn compute_size(&self) -> u64 {
4969            let mut my_size = 0;
4970            if let Some(v) = self.all {
4971                my_size += 1 + 1;
4972            }
4973            for value in &self.body {
4974                my_size += ::protobuf::rt::string_size(1, &value);
4975            };
4976            for value in &self.head {
4977                my_size += ::protobuf::rt::string_size(2, &value);
4978            };
4979            for value in &self.feet {
4980                my_size += ::protobuf::rt::string_size(3, &value);
4981            };
4982            for value in &self.hands {
4983                my_size += ::protobuf::rt::string_size(4, &value);
4984            };
4985            for value in &self.legs {
4986                my_size += ::protobuf::rt::string_size(5, &value);
4987            };
4988            for value in &self.shield {
4989                my_size += ::protobuf::rt::string_size(6, &value);
4990            };
4991            for value in &self.other_mats {
4992                my_size += ::protobuf::rt::string_size(7, &value);
4993            };
4994            for value in &self.mats {
4995                my_size += ::protobuf::rt::string_size(8, &value);
4996            };
4997            for value in &self.quality_core {
4998                my_size += ::protobuf::rt::string_size(9, &value);
4999            };
5000            for value in &self.quality_total {
5001                my_size += ::protobuf::rt::string_size(10, &value);
5002            };
5003            if let Some(v) = self.usable {
5004                my_size += 1 + 1;
5005            }
5006            if let Some(v) = self.unusable {
5007                my_size += 1 + 1;
5008            }
5009            if let Some(v) = self.dyed {
5010                my_size += 1 + 1;
5011            }
5012            if let Some(v) = self.undyed {
5013                my_size += 1 + 1;
5014            }
5015            for value in &self.color {
5016                my_size += ::protobuf::rt::string_size(16, &value);
5017            };
5018            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
5019            self.special_fields.cached_size().set(my_size as u32);
5020            my_size
5021        }
5022
5023        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
5024            if let Some(v) = self.all {
5025                os.write_bool(13, v)?;
5026            }
5027            for v in &self.body {
5028                os.write_string(1, &v)?;
5029            };
5030            for v in &self.head {
5031                os.write_string(2, &v)?;
5032            };
5033            for v in &self.feet {
5034                os.write_string(3, &v)?;
5035            };
5036            for v in &self.hands {
5037                os.write_string(4, &v)?;
5038            };
5039            for v in &self.legs {
5040                os.write_string(5, &v)?;
5041            };
5042            for v in &self.shield {
5043                os.write_string(6, &v)?;
5044            };
5045            for v in &self.other_mats {
5046                os.write_string(7, &v)?;
5047            };
5048            for v in &self.mats {
5049                os.write_string(8, &v)?;
5050            };
5051            for v in &self.quality_core {
5052                os.write_string(9, &v)?;
5053            };
5054            for v in &self.quality_total {
5055                os.write_string(10, &v)?;
5056            };
5057            if let Some(v) = self.usable {
5058                os.write_bool(11, v)?;
5059            }
5060            if let Some(v) = self.unusable {
5061                os.write_bool(12, v)?;
5062            }
5063            if let Some(v) = self.dyed {
5064                os.write_bool(14, v)?;
5065            }
5066            if let Some(v) = self.undyed {
5067                os.write_bool(15, v)?;
5068            }
5069            for v in &self.color {
5070                os.write_string(16, &v)?;
5071            };
5072            os.write_unknown_fields(self.special_fields.unknown_fields())?;
5073            ::std::result::Result::Ok(())
5074        }
5075
5076        fn special_fields(&self) -> &::protobuf::SpecialFields {
5077            &self.special_fields
5078        }
5079
5080        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
5081            &mut self.special_fields
5082        }
5083
5084        fn new() -> ArmorSet {
5085            ArmorSet::new()
5086        }
5087
5088        fn clear(&mut self) {
5089            self.all = ::std::option::Option::None;
5090            self.body.clear();
5091            self.head.clear();
5092            self.feet.clear();
5093            self.hands.clear();
5094            self.legs.clear();
5095            self.shield.clear();
5096            self.other_mats.clear();
5097            self.mats.clear();
5098            self.quality_core.clear();
5099            self.quality_total.clear();
5100            self.usable = ::std::option::Option::None;
5101            self.unusable = ::std::option::Option::None;
5102            self.dyed = ::std::option::Option::None;
5103            self.undyed = ::std::option::Option::None;
5104            self.color.clear();
5105            self.special_fields.clear();
5106        }
5107
5108        fn default_instance() -> &'static ArmorSet {
5109            static instance: ArmorSet = ArmorSet {
5110                all: ::std::option::Option::None,
5111                body: ::std::vec::Vec::new(),
5112                head: ::std::vec::Vec::new(),
5113                feet: ::std::vec::Vec::new(),
5114                hands: ::std::vec::Vec::new(),
5115                legs: ::std::vec::Vec::new(),
5116                shield: ::std::vec::Vec::new(),
5117                other_mats: ::std::vec::Vec::new(),
5118                mats: ::std::vec::Vec::new(),
5119                quality_core: ::std::vec::Vec::new(),
5120                quality_total: ::std::vec::Vec::new(),
5121                usable: ::std::option::Option::None,
5122                unusable: ::std::option::Option::None,
5123                dyed: ::std::option::Option::None,
5124                undyed: ::std::option::Option::None,
5125                color: ::std::vec::Vec::new(),
5126                special_fields: ::protobuf::SpecialFields::new(),
5127            };
5128            &instance
5129        }
5130    }
5131
5132    impl ::protobuf::MessageFull for ArmorSet {
5133        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
5134            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
5135            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.ArmorSet").unwrap()).clone()
5136        }
5137    }
5138
5139    impl ::std::fmt::Display for ArmorSet {
5140        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5141            ::protobuf::text_format::fmt(self, f)
5142        }
5143    }
5144
5145    impl ::protobuf::reflect::ProtobufValue for ArmorSet {
5146        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
5147    }
5148
5149    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.CorpsesSet)
5150    #[derive(PartialEq,Clone,Default,Debug)]
5151    pub struct CorpsesSet {
5152        // message fields
5153        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.CorpsesSet.all)
5154        pub all: ::std::option::Option<bool>,
5155        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.CorpsesSet.corpses)
5156        pub corpses: ::std::vec::Vec<::std::string::String>,
5157        // special fields
5158        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.CorpsesSet.special_fields)
5159        pub special_fields: ::protobuf::SpecialFields,
5160    }
5161
5162    impl<'a> ::std::default::Default for &'a CorpsesSet {
5163        fn default() -> &'a CorpsesSet {
5164            <CorpsesSet as ::protobuf::Message>::default_instance()
5165        }
5166    }
5167
5168    impl CorpsesSet {
5169        pub fn new() -> CorpsesSet {
5170            ::std::default::Default::default()
5171        }
5172
5173        // optional bool all = 1;
5174
5175        pub fn all(&self) -> bool {
5176            self.all.unwrap_or(false)
5177        }
5178
5179        pub fn clear_all(&mut self) {
5180            self.all = ::std::option::Option::None;
5181        }
5182
5183        pub fn has_all(&self) -> bool {
5184            self.all.is_some()
5185        }
5186
5187        // Param is passed by value, moved
5188        pub fn set_all(&mut self, v: bool) {
5189            self.all = ::std::option::Option::Some(v);
5190        }
5191
5192        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
5193            let mut fields = ::std::vec::Vec::with_capacity(2);
5194            let mut oneofs = ::std::vec::Vec::with_capacity(0);
5195            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
5196                "all",
5197                |m: &CorpsesSet| { &m.all },
5198                |m: &mut CorpsesSet| { &mut m.all },
5199            ));
5200            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5201                "corpses",
5202                |m: &CorpsesSet| { &m.corpses },
5203                |m: &mut CorpsesSet| { &mut m.corpses },
5204            ));
5205            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<CorpsesSet>(
5206                "StockpileSettings.CorpsesSet",
5207                fields,
5208                oneofs,
5209            )
5210        }
5211    }
5212
5213    impl ::protobuf::Message for CorpsesSet {
5214        const NAME: &'static str = "CorpsesSet";
5215
5216        fn is_initialized(&self) -> bool {
5217            true
5218        }
5219
5220        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
5221            while let Some(tag) = is.read_raw_tag_or_eof()? {
5222                match tag {
5223                    8 => {
5224                        self.all = ::std::option::Option::Some(is.read_bool()?);
5225                    },
5226                    18 => {
5227                        self.corpses.push(is.read_string()?);
5228                    },
5229                    tag => {
5230                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5231                    },
5232                };
5233            }
5234            ::std::result::Result::Ok(())
5235        }
5236
5237        // Compute sizes of nested messages
5238        #[allow(unused_variables)]
5239        fn compute_size(&self) -> u64 {
5240            let mut my_size = 0;
5241            if let Some(v) = self.all {
5242                my_size += 1 + 1;
5243            }
5244            for value in &self.corpses {
5245                my_size += ::protobuf::rt::string_size(2, &value);
5246            };
5247            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
5248            self.special_fields.cached_size().set(my_size as u32);
5249            my_size
5250        }
5251
5252        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
5253            if let Some(v) = self.all {
5254                os.write_bool(1, v)?;
5255            }
5256            for v in &self.corpses {
5257                os.write_string(2, &v)?;
5258            };
5259            os.write_unknown_fields(self.special_fields.unknown_fields())?;
5260            ::std::result::Result::Ok(())
5261        }
5262
5263        fn special_fields(&self) -> &::protobuf::SpecialFields {
5264            &self.special_fields
5265        }
5266
5267        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
5268            &mut self.special_fields
5269        }
5270
5271        fn new() -> CorpsesSet {
5272            CorpsesSet::new()
5273        }
5274
5275        fn clear(&mut self) {
5276            self.all = ::std::option::Option::None;
5277            self.corpses.clear();
5278            self.special_fields.clear();
5279        }
5280
5281        fn default_instance() -> &'static CorpsesSet {
5282            static instance: CorpsesSet = CorpsesSet {
5283                all: ::std::option::Option::None,
5284                corpses: ::std::vec::Vec::new(),
5285                special_fields: ::protobuf::SpecialFields::new(),
5286            };
5287            &instance
5288        }
5289    }
5290
5291    impl ::protobuf::MessageFull for CorpsesSet {
5292        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
5293            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
5294            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.CorpsesSet").unwrap()).clone()
5295        }
5296    }
5297
5298    impl ::std::fmt::Display for CorpsesSet {
5299        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5300            ::protobuf::text_format::fmt(self, f)
5301        }
5302    }
5303
5304    impl ::protobuf::reflect::ProtobufValue for CorpsesSet {
5305        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
5306    }
5307
5308    // @@protoc_insertion_point(message:dfstockpiles.StockpileSettings.SheetSet)
5309    #[derive(PartialEq,Clone,Default,Debug)]
5310    pub struct SheetSet {
5311        // message fields
5312        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.SheetSet.all)
5313        pub all: ::std::option::Option<bool>,
5314        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.SheetSet.paper)
5315        pub paper: ::std::vec::Vec<::std::string::String>,
5316        // @@protoc_insertion_point(field:dfstockpiles.StockpileSettings.SheetSet.parchment)
5317        pub parchment: ::std::vec::Vec<::std::string::String>,
5318        // special fields
5319        // @@protoc_insertion_point(special_field:dfstockpiles.StockpileSettings.SheetSet.special_fields)
5320        pub special_fields: ::protobuf::SpecialFields,
5321    }
5322
5323    impl<'a> ::std::default::Default for &'a SheetSet {
5324        fn default() -> &'a SheetSet {
5325            <SheetSet as ::protobuf::Message>::default_instance()
5326        }
5327    }
5328
5329    impl SheetSet {
5330        pub fn new() -> SheetSet {
5331            ::std::default::Default::default()
5332        }
5333
5334        // optional bool all = 1;
5335
5336        pub fn all(&self) -> bool {
5337            self.all.unwrap_or(false)
5338        }
5339
5340        pub fn clear_all(&mut self) {
5341            self.all = ::std::option::Option::None;
5342        }
5343
5344        pub fn has_all(&self) -> bool {
5345            self.all.is_some()
5346        }
5347
5348        // Param is passed by value, moved
5349        pub fn set_all(&mut self, v: bool) {
5350            self.all = ::std::option::Option::Some(v);
5351        }
5352
5353        pub(in super) fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData {
5354            let mut fields = ::std::vec::Vec::with_capacity(3);
5355            let mut oneofs = ::std::vec::Vec::with_capacity(0);
5356            fields.push(::protobuf::reflect::rt::v2::make_option_accessor::<_, _>(
5357                "all",
5358                |m: &SheetSet| { &m.all },
5359                |m: &mut SheetSet| { &mut m.all },
5360            ));
5361            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5362                "paper",
5363                |m: &SheetSet| { &m.paper },
5364                |m: &mut SheetSet| { &mut m.paper },
5365            ));
5366            fields.push(::protobuf::reflect::rt::v2::make_vec_simpler_accessor::<_, _>(
5367                "parchment",
5368                |m: &SheetSet| { &m.parchment },
5369                |m: &mut SheetSet| { &mut m.parchment },
5370            ));
5371            ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::<SheetSet>(
5372                "StockpileSettings.SheetSet",
5373                fields,
5374                oneofs,
5375            )
5376        }
5377    }
5378
5379    impl ::protobuf::Message for SheetSet {
5380        const NAME: &'static str = "SheetSet";
5381
5382        fn is_initialized(&self) -> bool {
5383            true
5384        }
5385
5386        fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::Result<()> {
5387            while let Some(tag) = is.read_raw_tag_or_eof()? {
5388                match tag {
5389                    8 => {
5390                        self.all = ::std::option::Option::Some(is.read_bool()?);
5391                    },
5392                    18 => {
5393                        self.paper.push(is.read_string()?);
5394                    },
5395                    26 => {
5396                        self.parchment.push(is.read_string()?);
5397                    },
5398                    tag => {
5399                        ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?;
5400                    },
5401                };
5402            }
5403            ::std::result::Result::Ok(())
5404        }
5405
5406        // Compute sizes of nested messages
5407        #[allow(unused_variables)]
5408        fn compute_size(&self) -> u64 {
5409            let mut my_size = 0;
5410            if let Some(v) = self.all {
5411                my_size += 1 + 1;
5412            }
5413            for value in &self.paper {
5414                my_size += ::protobuf::rt::string_size(2, &value);
5415            };
5416            for value in &self.parchment {
5417                my_size += ::protobuf::rt::string_size(3, &value);
5418            };
5419            my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
5420            self.special_fields.cached_size().set(my_size as u32);
5421            my_size
5422        }
5423
5424        fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::Result<()> {
5425            if let Some(v) = self.all {
5426                os.write_bool(1, v)?;
5427            }
5428            for v in &self.paper {
5429                os.write_string(2, &v)?;
5430            };
5431            for v in &self.parchment {
5432                os.write_string(3, &v)?;
5433            };
5434            os.write_unknown_fields(self.special_fields.unknown_fields())?;
5435            ::std::result::Result::Ok(())
5436        }
5437
5438        fn special_fields(&self) -> &::protobuf::SpecialFields {
5439            &self.special_fields
5440        }
5441
5442        fn mut_special_fields(&mut self) -> &mut ::protobuf::SpecialFields {
5443            &mut self.special_fields
5444        }
5445
5446        fn new() -> SheetSet {
5447            SheetSet::new()
5448        }
5449
5450        fn clear(&mut self) {
5451            self.all = ::std::option::Option::None;
5452            self.paper.clear();
5453            self.parchment.clear();
5454            self.special_fields.clear();
5455        }
5456
5457        fn default_instance() -> &'static SheetSet {
5458            static instance: SheetSet = SheetSet {
5459                all: ::std::option::Option::None,
5460                paper: ::std::vec::Vec::new(),
5461                parchment: ::std::vec::Vec::new(),
5462                special_fields: ::protobuf::SpecialFields::new(),
5463            };
5464            &instance
5465        }
5466    }
5467
5468    impl ::protobuf::MessageFull for SheetSet {
5469        fn descriptor() -> ::protobuf::reflect::MessageDescriptor {
5470            static descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::Lazy::new();
5471            descriptor.get(|| super::file_descriptor().message_by_package_relative_name("StockpileSettings.SheetSet").unwrap()).clone()
5472        }
5473    }
5474
5475    impl ::std::fmt::Display for SheetSet {
5476        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
5477            ::protobuf::text_format::fmt(self, f)
5478        }
5479    }
5480
5481    impl ::protobuf::reflect::ProtobufValue for SheetSet {
5482        type RuntimeType = ::protobuf::reflect::rt::RuntimeTypeMessage<Self>;
5483    }
5484}
5485
5486static file_descriptor_proto_data: &'static [u8] = b"\
5487    \n\x10stockpiles.proto\x12\x0cdfstockpiles\"\xa5'\n\x11StockpileSettings\
5488    \x12\x1f\n\x0bmax_barrels\x18\x14\x20\x01(\x05R\nmaxBarrels\x12\x19\n\
5489    \x08max_bins\x18\x15\x20\x01(\x05R\x07maxBins\x12)\n\x10max_wheelbarrows\
5490    \x18\x16\x20\x01(\x05R\x0fmaxWheelbarrows\x12$\n\x0euse_links_only\x18\
5491    \x17\x20\x01(\x08R\x0cuseLinksOnly\x12#\n\rallow_organic\x18\x12\x20\x01\
5492    (\x08R\x0callowOrganic\x12'\n\x0fallow_inorganic\x18\x13\x20\x01(\x08R\
5493    \x0eallowInorganic\x12;\n\x04ammo\x18\x08\x20\x01(\x0b2'.dfstockpiles.St\
5494    ockpileSettings.AmmoSetR\x04ammo\x12D\n\x07animals\x18\x01\x20\x01(\x0b2\
5495    *.dfstockpiles.StockpileSettings.AnimalsSetR\x07animals\x12>\n\x05armor\
5496    \x18\x11\x20\x01(\x0b2(.dfstockpiles.StockpileSettings.ArmorSetR\x05armo\
5497    r\x12M\n\nbarsblocks\x18\n\x20\x01(\x0b2-.dfstockpiles.StockpileSettings\
5498    .BarsBlocksSetR\nbarsblocks\x12>\n\x05cloth\x18\x0e\x20\x01(\x0b2(.dfsto\
5499    ckpiles.StockpileSettings.ClothSetR\x05cloth\x12;\n\x04coin\x18\t\x20\
5500    \x01(\x0b2'.dfstockpiles.StockpileSettings.CoinSetR\x04coin\x12W\n\x0efi\
5501    nished_goods\x18\x0c\x20\x01(\x0b20.dfstockpiles.StockpileSettings.Finis\
5502    hedGoodsSetR\rfinishedGoods\x12;\n\x04food\x18\x02\x20\x01(\x0b2'.dfstoc\
5503    kpiles.StockpileSettings.FoodSetR\x04food\x12J\n\tfurniture\x18\x03\x20\
5504    \x01(\x0b2,.dfstockpiles.StockpileSettings.FurnitureSetR\tfurniture\x12;\
5505    \n\x04gems\x18\x0b\x20\x01(\x0b2'.dfstockpiles.StockpileSettings.GemsSet\
5506    R\x04gems\x12D\n\x07leather\x18\r\x20\x01(\x0b2*.dfstockpiles.StockpileS\
5507    ettings.LeatherSetR\x07leather\x12K\n\x0bcorpses_v50\x18\x19\x20\x01(\
5508    \x0b2*.dfstockpiles.StockpileSettings.CorpsesSetR\ncorpsesV50\x12A\n\x06\
5509    refuse\x18\x05\x20\x01(\x0b2).dfstockpiles.StockpileSettings.RefuseSetR\
5510    \x06refuse\x12>\n\x05sheet\x18\x1a\x20\x01(\x0b2(.dfstockpiles.Stockpile\
5511    Settings.SheetSetR\x05sheet\x12>\n\x05stone\x18\x06\x20\x01(\x0b2(.dfsto\
5512    ckpiles.StockpileSettings.StoneSetR\x05stone\x12D\n\x07weapons\x18\x10\
5513    \x20\x01(\x0b2*.dfstockpiles.StockpileSettings.WeaponsSetR\x07weapons\
5514    \x12;\n\x04wood\x18\x0f\x20\x01(\x0b2'.dfstockpiles.StockpileSettings.Wo\
5515    odSetR\x04wood\x12\x18\n\x07corpses\x18\x18\x20\x01(\x08R\x07corpses\x12\
5516    <\n\x03ore\x18\x07\x20\x01(\x0b2&.dfstockpiles.StockpileSettings.OreSetR\
5517    \x03oreB\x02\x18\x01\x12\x1e\n\x08unknown1\x18\x04\x20\x01(\x05R\x08unkn\
5518    own1B\x02\x18\x01\x1az\n\nAnimalsSet\x12\x10\n\x03all\x18\x04\x20\x01(\
5519    \x08R\x03all\x12\x1f\n\x0bempty_cages\x18\x01\x20\x01(\x08R\nemptyCages\
5520    \x12\x1f\n\x0bempty_traps\x18\x02\x20\x01(\x08R\nemptyTraps\x12\x18\n\
5521    \x07enabled\x18\x03\x20\x03(\tR\x07enabled\x1a\x82\x05\n\x07FoodSet\x12\
5522    \x10\n\x03all\x18\x15\x20\x01(\x08R\x03all\x12\x12\n\x04meat\x18\x01\x20\
5523    \x03(\tR\x04meat\x12\x12\n\x04fish\x18\x02\x20\x03(\tR\x04fish\x12'\n\
5524    \x0funprepared_fish\x18\x14\x20\x03(\tR\x0eunpreparedFish\x12\x10\n\x03e\
5525    gg\x18\x03\x20\x03(\tR\x03egg\x12\x16\n\x06plants\x18\x04\x20\x03(\tR\
5526    \x06plants\x12\x1f\n\x0bdrink_plant\x18\x05\x20\x03(\tR\ndrinkPlant\x12!\
5527    \n\x0cdrink_animal\x18\x06\x20\x03(\tR\x0bdrinkAnimal\x12!\n\x0ccheese_p\
5528    lant\x18\x07\x20\x03(\tR\x0bcheesePlant\x12#\n\rcheese_animal\x18\x08\
5529    \x20\x03(\tR\x0ccheeseAnimal\x12\x14\n\x05seeds\x18\t\x20\x03(\tR\x05see\
5530    ds\x12\x16\n\x06leaves\x18\n\x20\x03(\tR\x06leaves\x12!\n\x0cpowder_plan\
5531    t\x18\x0b\x20\x03(\tR\x0bpowderPlant\x12'\n\x0fpowder_creature\x18\x0c\
5532    \x20\x03(\tR\x0epowderCreature\x12\x12\n\x04glob\x18\r\x20\x03(\tR\x04gl\
5533    ob\x12\x1d\n\nglob_paste\x18\x0e\x20\x03(\tR\tglobPaste\x12!\n\x0cglob_p\
5534    ressed\x18\x0f\x20\x03(\tR\x0bglobPressed\x12!\n\x0cliquid_plant\x18\x10\
5535    \x20\x03(\tR\x0bliquidPlant\x12#\n\rliquid_animal\x18\x11\x20\x03(\tR\
5536    \x0cliquidAnimal\x12\x1f\n\x0bliquid_misc\x18\x12\x20\x03(\tR\nliquidMis\
5537    c\x12%\n\x0eprepared_meals\x18\x13\x20\x01(\x08R\rpreparedMeals\x1a\xaf\
5538    \x01\n\x0cFurnitureSet\x12\x10\n\x03all\x18\x07\x20\x01(\x08R\x03all\x12\
5539    \x12\n\x04type\x18\x01\x20\x03(\tR\x04type\x12\x1d\n\nother_mats\x18\x02\
5540    \x20\x03(\tR\totherMats\x12\x12\n\x04mats\x18\x03\x20\x03(\tR\x04mats\
5541    \x12!\n\x0cquality_core\x18\x04\x20\x03(\tR\x0bqualityCore\x12#\n\rquali\
5542    ty_total\x18\x05\x20\x03(\tR\x0cqualityTotal\x1a\xbe\x02\n\tRefuseSet\
5543    \x12\x10\n\x03all\x18\x0c\x20\x01(\x08R\x03all\x12\x12\n\x04type\x18\x01\
5544    \x20\x03(\tR\x04type\x12\x18\n\x07corpses\x18\x02\x20\x03(\tR\x07corpses\
5545    \x12\x1d\n\nbody_parts\x18\x03\x20\x03(\tR\tbodyParts\x12\x16\n\x06skull\
5546    s\x18\x04\x20\x03(\tR\x06skulls\x12\x14\n\x05bones\x18\x05\x20\x03(\tR\
5547    \x05bones\x12\x12\n\x04hair\x18\x06\x20\x03(\tR\x04hair\x12\x16\n\x06she\
5548    lls\x18\x07\x20\x03(\tR\x06shells\x12\x14\n\x05teeth\x18\x08\x20\x03(\tR\
5549    \x05teeth\x12\x14\n\x05horns\x18\t\x20\x03(\tR\x05horns\x12$\n\x0efresh_\
5550    raw_hide\x18\n\x20\x01(\x08R\x0cfreshRawHide\x12&\n\x0frotten_raw_hide\
5551    \x18\x0b\x20\x01(\x08R\rrottenRawHide\x1a0\n\x08StoneSet\x12\x10\n\x03al\
5552    l\x18\x02\x20\x01(\x08R\x03all\x12\x12\n\x04mats\x18\x01\x20\x03(\tR\x04\
5553    mats\x1a\x1c\n\x06OreSet\x12\x12\n\x04mats\x18\x01\x20\x03(\tR\x04mats\
5554    \x1a\xaa\x01\n\x07AmmoSet\x12\x10\n\x03all\x18\x06\x20\x01(\x08R\x03all\
5555    \x12\x12\n\x04type\x18\x01\x20\x03(\tR\x04type\x12\x1d\n\nother_mats\x18\
5556    \x02\x20\x03(\tR\totherMats\x12\x12\n\x04mats\x18\x03\x20\x03(\tR\x04mat\
5557    s\x12!\n\x0cquality_core\x18\x04\x20\x03(\tR\x0bqualityCore\x12#\n\rqual\
5558    ity_total\x18\x05\x20\x03(\tR\x0cqualityTotal\x1a/\n\x07CoinSet\x12\x10\
5559    \n\x03all\x18\x02\x20\x01(\x08R\x03all\x12\x12\n\x04mats\x18\x01\x20\x03\
5560    (\tR\x04mats\x1a\xb3\x01\n\rBarsBlocksSet\x12\x10\n\x03all\x18\x05\x20\
5561    \x01(\x08R\x03all\x12&\n\x0fbars_other_mats\x18\x01\x20\x03(\tR\rbarsOth\
5562    erMats\x12*\n\x11blocks_other_mats\x18\x02\x20\x03(\tR\x0fblocksOtherMat\
5563    s\x12\x1b\n\tbars_mats\x18\x03\x20\x03(\tR\x08barsMats\x12\x1f\n\x0bbloc\
5564    ks_mats\x18\x04\x20\x03(\tR\nblocksMats\x1a\xa5\x01\n\x07GemsSet\x12\x10\
5565    \n\x03all\x18\x05\x20\x01(\x08R\x03all\x12(\n\x10rough_other_mats\x18\
5566    \x01\x20\x03(\tR\x0eroughOtherMats\x12$\n\x0ecut_other_mats\x18\x02\x20\
5567    \x03(\tR\x0ccutOtherMats\x12\x1d\n\nrough_mats\x18\x03\x20\x03(\tR\troug\
5568    hMats\x12\x19\n\x08cut_mats\x18\x04\x20\x03(\tR\x07cutMats\x1a\xf5\x01\n\
5569    \x10FinishedGoodsSet\x12\x10\n\x03all\x18\x06\x20\x01(\x08R\x03all\x12\
5570    \x12\n\x04type\x18\x01\x20\x03(\tR\x04type\x12\x1d\n\nother_mats\x18\x02\
5571    \x20\x03(\tR\totherMats\x12\x12\n\x04mats\x18\x03\x20\x03(\tR\x04mats\
5572    \x12!\n\x0cquality_core\x18\x04\x20\x03(\tR\x0bqualityCore\x12#\n\rquali\
5573    ty_total\x18\x05\x20\x03(\tR\x0cqualityTotal\x12\x12\n\x04dyed\x18\x07\
5574    \x20\x01(\x08R\x04dyed\x12\x16\n\x06undyed\x18\x08\x20\x01(\x08R\x06undy\
5575    ed\x12\x14\n\x05color\x18\t\x20\x03(\tR\x05color\x1at\n\nLeatherSet\x12\
5576    \x10\n\x03all\x18\x02\x20\x01(\x08R\x03all\x12\x12\n\x04mats\x18\x01\x20\
5577    \x03(\tR\x04mats\x12\x12\n\x04dyed\x18\x03\x20\x01(\x08R\x04dyed\x12\x16\
5578    \n\x06undyed\x18\x04\x20\x01(\x08R\x06undyed\x12\x14\n\x05color\x18\x05\
5579    \x20\x03(\tR\x05color\x1a\xe6\x02\n\x08ClothSet\x12\x10\n\x03all\x18\t\
5580    \x20\x01(\x08R\x03all\x12\x1f\n\x0bthread_silk\x18\x01\x20\x03(\tR\nthre\
5581    adSilk\x12!\n\x0cthread_plant\x18\x02\x20\x03(\tR\x0bthreadPlant\x12\x1f\
5582    \n\x0bthread_yarn\x18\x03\x20\x03(\tR\nthreadYarn\x12!\n\x0cthread_metal\
5583    \x18\x04\x20\x03(\tR\x0bthreadMetal\x12\x1d\n\ncloth_silk\x18\x05\x20\
5584    \x03(\tR\tclothSilk\x12\x1f\n\x0bcloth_plant\x18\x06\x20\x03(\tR\nclothP\
5585    lant\x12\x1d\n\ncloth_yarn\x18\x07\x20\x03(\tR\tclothYarn\x12\x1f\n\x0bc\
5586    loth_metal\x18\x08\x20\x03(\tR\nclothMetal\x12\x12\n\x04dyed\x18\n\x20\
5587    \x01(\x08R\x04dyed\x12\x16\n\x06undyed\x18\x0b\x20\x01(\x08R\x06undyed\
5588    \x12\x14\n\x05color\x18\x0c\x20\x03(\tR\x05color\x1a/\n\x07WoodSet\x12\
5589    \x10\n\x03all\x18\x02\x20\x01(\x08R\x03all\x12\x12\n\x04mats\x18\x01\x20\
5590    \x03(\tR\x04mats\x1a\x93\x02\n\nWeaponsSet\x12\x10\n\x03all\x18\t\x20\
5591    \x01(\x08R\x03all\x12\x1f\n\x0bweapon_type\x18\x01\x20\x03(\tR\nweaponTy\
5592    pe\x12#\n\rtrapcomp_type\x18\x02\x20\x03(\tR\x0ctrapcompType\x12\x1d\n\n\
5593    other_mats\x18\x03\x20\x03(\tR\totherMats\x12\x12\n\x04mats\x18\x04\x20\
5594    \x03(\tR\x04mats\x12!\n\x0cquality_core\x18\x05\x20\x03(\tR\x0bqualityCo\
5595    re\x12#\n\rquality_total\x18\x06\x20\x03(\tR\x0cqualityTotal\x12\x16\n\
5596    \x06usable\x18\x07\x20\x01(\x08R\x06usable\x12\x1a\n\x08unusable\x18\x08\
5597    \x20\x01(\x08R\x08unusable\x1a\x8b\x03\n\x08ArmorSet\x12\x10\n\x03all\
5598    \x18\r\x20\x01(\x08R\x03all\x12\x12\n\x04body\x18\x01\x20\x03(\tR\x04bod\
5599    y\x12\x12\n\x04head\x18\x02\x20\x03(\tR\x04head\x12\x12\n\x04feet\x18\
5600    \x03\x20\x03(\tR\x04feet\x12\x14\n\x05hands\x18\x04\x20\x03(\tR\x05hands\
5601    \x12\x12\n\x04legs\x18\x05\x20\x03(\tR\x04legs\x12\x16\n\x06shield\x18\
5602    \x06\x20\x03(\tR\x06shield\x12\x1d\n\nother_mats\x18\x07\x20\x03(\tR\tot\
5603    herMats\x12\x12\n\x04mats\x18\x08\x20\x03(\tR\x04mats\x12!\n\x0cquality_\
5604    core\x18\t\x20\x03(\tR\x0bqualityCore\x12#\n\rquality_total\x18\n\x20\
5605    \x03(\tR\x0cqualityTotal\x12\x16\n\x06usable\x18\x0b\x20\x01(\x08R\x06us\
5606    able\x12\x1a\n\x08unusable\x18\x0c\x20\x01(\x08R\x08unusable\x12\x12\n\
5607    \x04dyed\x18\x0e\x20\x01(\x08R\x04dyed\x12\x16\n\x06undyed\x18\x0f\x20\
5608    \x01(\x08R\x06undyed\x12\x14\n\x05color\x18\x10\x20\x03(\tR\x05color\x1a\
5609    8\n\nCorpsesSet\x12\x10\n\x03all\x18\x01\x20\x01(\x08R\x03all\x12\x18\n\
5610    \x07corpses\x18\x02\x20\x03(\tR\x07corpses\x1aP\n\x08SheetSet\x12\x10\n\
5611    \x03all\x18\x01\x20\x01(\x08R\x03all\x12\x14\n\x05paper\x18\x02\x20\x03(\
5612    \tR\x05paper\x12\x1c\n\tparchment\x18\x03\x20\x03(\tR\tparchmentB\x02H\
5613    \x03b\x06proto2\
5614";
5615
5616/// `FileDescriptorProto` object which was a source for this generated file
5617fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
5618    static file_descriptor_proto_lazy: ::protobuf::rt::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::Lazy::new();
5619    file_descriptor_proto_lazy.get(|| {
5620        ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
5621    })
5622}
5623
5624/// `FileDescriptor` object which allows dynamic access to files
5625pub fn file_descriptor() -> &'static ::protobuf::reflect::FileDescriptor {
5626    static generated_file_descriptor_lazy: ::protobuf::rt::Lazy<::protobuf::reflect::GeneratedFileDescriptor> = ::protobuf::rt::Lazy::new();
5627    static file_descriptor: ::protobuf::rt::Lazy<::protobuf::reflect::FileDescriptor> = ::protobuf::rt::Lazy::new();
5628    file_descriptor.get(|| {
5629        let generated_file_descriptor = generated_file_descriptor_lazy.get(|| {
5630            let mut deps = ::std::vec::Vec::with_capacity(0);
5631            let mut messages = ::std::vec::Vec::with_capacity(19);
5632            messages.push(StockpileSettings::generated_message_descriptor_data());
5633            messages.push(stockpile_settings::AnimalsSet::generated_message_descriptor_data());
5634            messages.push(stockpile_settings::FoodSet::generated_message_descriptor_data());
5635            messages.push(stockpile_settings::FurnitureSet::generated_message_descriptor_data());
5636            messages.push(stockpile_settings::RefuseSet::generated_message_descriptor_data());
5637            messages.push(stockpile_settings::StoneSet::generated_message_descriptor_data());
5638            messages.push(stockpile_settings::OreSet::generated_message_descriptor_data());
5639            messages.push(stockpile_settings::AmmoSet::generated_message_descriptor_data());
5640            messages.push(stockpile_settings::CoinSet::generated_message_descriptor_data());
5641            messages.push(stockpile_settings::BarsBlocksSet::generated_message_descriptor_data());
5642            messages.push(stockpile_settings::GemsSet::generated_message_descriptor_data());
5643            messages.push(stockpile_settings::FinishedGoodsSet::generated_message_descriptor_data());
5644            messages.push(stockpile_settings::LeatherSet::generated_message_descriptor_data());
5645            messages.push(stockpile_settings::ClothSet::generated_message_descriptor_data());
5646            messages.push(stockpile_settings::WoodSet::generated_message_descriptor_data());
5647            messages.push(stockpile_settings::WeaponsSet::generated_message_descriptor_data());
5648            messages.push(stockpile_settings::ArmorSet::generated_message_descriptor_data());
5649            messages.push(stockpile_settings::CorpsesSet::generated_message_descriptor_data());
5650            messages.push(stockpile_settings::SheetSet::generated_message_descriptor_data());
5651            let mut enums = ::std::vec::Vec::with_capacity(0);
5652            ::protobuf::reflect::GeneratedFileDescriptor::new_generated(
5653                file_descriptor_proto(),
5654                deps,
5655                messages,
5656                enums,
5657            )
5658        });
5659        ::protobuf::reflect::FileDescriptor::new_generated_2(generated_file_descriptor)
5660    })
5661}