castep_param_io/param/general/
continuation.rs

1use castep_param_derive::KeywordDisplay;
2use serde::{Deserialize, Serialize};
3
4#[derive(
5    Debug, Clone, Hash, Serialize, Deserialize, KeywordDisplay, PartialEq, Eq, PartialOrd, Ord,
6)]
7#[keyword_display(specified_fields = true)]
8pub enum ContinueReuse {
9    #[keyword_display(field = "CONTINUATION")]
10    Continuation(Continuation),
11    #[keyword_display(field = "REUSE")]
12    Reuse(Reuse),
13}
14
15impl Default for ContinueReuse {
16    fn default() -> Self {
17        Self::Continuation(Continuation::Default)
18    }
19}
20
21impl From<Continuation> for ContinueReuse {
22    fn from(value: Continuation) -> Self {
23        ContinueReuse::Continuation(value)
24    }
25}
26
27impl From<Reuse> for ContinueReuse {
28    fn from(value: Reuse) -> Self {
29        ContinueReuse::Reuse(value)
30    }
31}
32
33#[derive(
34    Debug,
35    Clone,
36    Default,
37    Hash,
38    Serialize,
39    Deserialize,
40    KeywordDisplay,
41    PartialEq,
42    Eq,
43    PartialOrd,
44    Ord,
45)]
46#[keyword_display(field = "CONTINUATION")]
47pub enum Continuation {
48    #[default]
49    Default,
50    File(String),
51}
52
53#[derive(
54    Debug,
55    Clone,
56    Default,
57    Hash,
58    Serialize,
59    Deserialize,
60    KeywordDisplay,
61    PartialEq,
62    Eq,
63    PartialOrd,
64    Ord,
65)]
66#[keyword_display(field = "REUSE")]
67pub enum Reuse {
68    #[default]
69    Default,
70    File(String),
71}