Lifetime issue.
This commit is contained in:
parent
a966be8122
commit
f1e985fb32
@ -112,23 +112,18 @@ pub(crate) enum IAstNode {
|
|||||||
Timestamp(ITimestamp),
|
Timestamp(ITimestamp),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) trait IntoIAstNode {
|
pub(crate) trait IntoIAstNode<'parse> {
|
||||||
fn into_ast_node<'reg, 'orig, 'parse, 'inp: 'reg + 'orig>(
|
fn into_ast_node<'reg, 'orig, 'inp: 'reg + 'orig + 'parse>(
|
||||||
&'orig self,
|
&'orig self,
|
||||||
registry: &'reg mut Registry<'orig, 'parse>,
|
registry: &'reg mut Registry<'orig, 'parse>,
|
||||||
) -> BoxFuture<'inp, Result<IAstNode, CustomError>>
|
) -> BoxFuture<'inp, Result<IAstNode, CustomError>>;
|
||||||
where
|
|
||||||
Self: 'parse;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IntoIAstNode for organic::types::DocumentElement<'_> {
|
impl<'parse> IntoIAstNode<'parse> for organic::types::DocumentElement<'parse> {
|
||||||
fn into_ast_node<'reg, 'orig, 'parse, 'inp: 'reg + 'orig>(
|
fn into_ast_node<'reg, 'orig, 'inp: 'reg + 'orig + 'parse>(
|
||||||
&'orig self,
|
&'orig self,
|
||||||
registry: &'reg mut Registry<'orig, 'parse>,
|
registry: &'reg mut Registry<'orig, 'parse>,
|
||||||
) -> BoxFuture<'inp, Result<IAstNode, CustomError>>
|
) -> BoxFuture<'inp, Result<IAstNode, CustomError>> {
|
||||||
where
|
|
||||||
Self: 'parse,
|
|
||||||
{
|
|
||||||
async move {
|
async move {
|
||||||
match self {
|
match self {
|
||||||
organic::types::DocumentElement::Heading(inner) => {
|
organic::types::DocumentElement::Heading(inner) => {
|
||||||
@ -143,14 +138,11 @@ impl IntoIAstNode for organic::types::DocumentElement<'_> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IntoIAstNode for organic::types::Element<'_> {
|
impl<'parse> IntoIAstNode<'parse> for organic::types::Element<'parse> {
|
||||||
fn into_ast_node<'reg, 'orig, 'parse, 'inp: 'reg + 'orig>(
|
fn into_ast_node<'reg, 'orig, 'inp: 'reg + 'orig + 'parse>(
|
||||||
&'orig self,
|
&'orig self,
|
||||||
registry: &'reg mut Registry<'orig, 'parse>,
|
registry: &'reg mut Registry<'orig, 'parse>,
|
||||||
) -> BoxFuture<'inp, Result<IAstNode, CustomError>>
|
) -> BoxFuture<'inp, Result<IAstNode, CustomError>> {
|
||||||
where
|
|
||||||
Self: 'parse,
|
|
||||||
{
|
|
||||||
async move {
|
async move {
|
||||||
match self {
|
match self {
|
||||||
organic::types::Element::Paragraph(inner) => {
|
organic::types::Element::Paragraph(inner) => {
|
||||||
@ -231,14 +223,11 @@ impl IntoIAstNode for organic::types::Element<'_> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IntoIAstNode for organic::types::Object<'_> {
|
impl<'parse> IntoIAstNode<'parse> for organic::types::Object<'parse> {
|
||||||
fn into_ast_node<'reg, 'orig, 'parse, 'inp: 'reg + 'orig>(
|
fn into_ast_node<'reg, 'orig, 'inp: 'reg + 'orig + 'parse>(
|
||||||
&'orig self,
|
&'orig self,
|
||||||
registry: &'reg mut Registry<'orig, 'parse>,
|
registry: &'reg mut Registry<'orig, 'parse>,
|
||||||
) -> BoxFuture<'inp, Result<IAstNode, CustomError>>
|
) -> BoxFuture<'inp, Result<IAstNode, CustomError>> {
|
||||||
where
|
|
||||||
Self: 'parse,
|
|
||||||
{
|
|
||||||
async move {
|
async move {
|
||||||
match self {
|
match self {
|
||||||
organic::types::Object::Bold(inner) => {
|
organic::types::Object::Bold(inner) => {
|
||||||
|
@ -49,12 +49,9 @@ macro_rules! iselector {
|
|||||||
registry: &'reg mut Registry<'orig, 'parse>,
|
registry: &'reg mut Registry<'orig, 'parse>,
|
||||||
original: &'orig organic::types::$pstruct<'parse>,
|
original: &'orig organic::types::$pstruct<'parse>,
|
||||||
) -> BoxFuture<'inp, Result<$istruct, CustomError>> {
|
) -> BoxFuture<'inp, Result<$istruct, CustomError>> {
|
||||||
async move {
|
let $registry = registry;
|
||||||
let $registry = registry;
|
let $original = original;
|
||||||
let $original = original;
|
async move { $fnbody }.boxed()
|
||||||
$fnbody
|
|
||||||
}
|
|
||||||
.boxed()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user