mirror of
https://github.com/martinvonz/jj.git
synced 2025-01-02 18:01:05 +00:00
Move the definition of Property
to before its use
This commit is contained in:
parent
3e7791bbc1
commit
1f6c085c4e
1 changed files with 35 additions and 35 deletions
|
@ -103,6 +103,41 @@ impl TemplateProperty<Timestamp, String> for RelativeTimestampString {
|
|||
}
|
||||
}
|
||||
|
||||
enum Property<'a, I> {
|
||||
String(Box<dyn TemplateProperty<I, String> + 'a>),
|
||||
Boolean(Box<dyn TemplateProperty<I, bool> + 'a>),
|
||||
CommitId(Box<dyn TemplateProperty<I, CommitId> + 'a>),
|
||||
Signature(Box<dyn TemplateProperty<I, Signature> + 'a>),
|
||||
Timestamp(Box<dyn TemplateProperty<I, Timestamp> + 'a>),
|
||||
}
|
||||
|
||||
impl<'a, I: 'a> Property<'a, I> {
|
||||
fn after<C: 'a>(self, first: Box<dyn TemplateProperty<C, I> + 'a>) -> Property<'a, C> {
|
||||
match self {
|
||||
Property::String(property) => Property::String(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Boolean(property) => Property::Boolean(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::CommitId(property) => Property::CommitId(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Signature(property) => Property::Signature(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Timestamp(property) => Property::Timestamp(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_method_chain<'a, I: 'a>(
|
||||
pair: Pair<Rule>,
|
||||
input_property: Property<'a, I>,
|
||||
|
@ -216,41 +251,6 @@ fn parse_timestamp_method<'a>(method: Pair<Rule>) -> PropertyAndLabels<'a, Times
|
|||
parse_method_chain(chain_method, this_function)
|
||||
}
|
||||
|
||||
enum Property<'a, I> {
|
||||
String(Box<dyn TemplateProperty<I, String> + 'a>),
|
||||
Boolean(Box<dyn TemplateProperty<I, bool> + 'a>),
|
||||
CommitId(Box<dyn TemplateProperty<I, CommitId> + 'a>),
|
||||
Signature(Box<dyn TemplateProperty<I, Signature> + 'a>),
|
||||
Timestamp(Box<dyn TemplateProperty<I, Timestamp> + 'a>),
|
||||
}
|
||||
|
||||
impl<'a, I: 'a> Property<'a, I> {
|
||||
fn after<C: 'a>(self, first: Box<dyn TemplateProperty<C, I> + 'a>) -> Property<'a, C> {
|
||||
match self {
|
||||
Property::String(property) => Property::String(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Boolean(property) => Property::Boolean(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::CommitId(property) => Property::CommitId(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Signature(property) => Property::Signature(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
Property::Timestamp(property) => Property::Timestamp(Box::new(TemplateFunction::new(
|
||||
first,
|
||||
Box::new(move |value| property.extract(&value)),
|
||||
))),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct PropertyAndLabels<'a, C>(Property<'a, C>, Vec<String>);
|
||||
|
||||
fn parse_commit_keyword<'a>(
|
||||
|
|
Loading…
Reference in a new issue