mdt_core 0.7.0

update markdown content anywhere using comments as template tags
Documentation
use super::*;
use crate::tokens::Token;
use crate::tokens::TokenGroup;

pub fn consumer_token_group() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Whitespace(b' '),
			Token::ConsumerTag,
			Token::Ident("exampleName".to_string()),
			Token::BraceClose,
			Token::Whitespace(b' '),
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 1,
				offset: 0,
			},
			end: Point {
				line: 1,
				column: 24,
				offset: 23,
			},
		},
	}
}

pub fn consumer_token_group_with_arguments() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Whitespace(b' '),
			Token::ConsumerTag,
			Token::Ident("exampleName".to_string()),
			Token::Pipe,
			Token::Ident("trim".to_string()),
			Token::Pipe,
			Token::Ident("indent".to_string()),
			Token::ArgumentDelimiter,
			Token::String("/// ".to_string(), b'"'),
			Token::BraceClose,
			Token::Whitespace(b' '),
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 1,
				offset: 0,
			},
			end: Point {
				line: 1,
				column: 43,
				offset: 42,
			},
		},
	}
}

pub fn provider_token_group() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Whitespace(b' '),
			Token::ProviderTag,
			Token::Ident("exampleProvider".to_string()),
			Token::BraceClose,
			Token::Whitespace(b' '),
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 1,
				offset: 0,
			},
			end: Point {
				line: 1,
				column: 28,
				offset: 27,
			},
		},
	}
}

pub fn inline_token_group_with_argument() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Whitespace(b' '),
			Token::InlineTag,
			Token::Ident("version".to_string()),
			Token::ArgumentDelimiter,
			Token::String("{{ pkg.version }}".to_string(), b'"'),
			Token::BraceClose,
			Token::Whitespace(b' '),
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 1,
				offset: 0,
			},
			end: Point {
				line: 1,
				column: 40,
				offset: 39,
			},
		},
	}
}

pub fn closing_token_group() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Whitespace(b' '),
			Token::CloseTag,
			Token::Ident("example".to_string()),
			Token::BraceClose,
			Token::Whitespace(b' '),
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 1,
				offset: 0,
			},
			end: Point {
				line: 1,
				column: 20,
				offset: 19,
			},
		},
	}
}

pub fn closing_token_group_no_whitespace() -> TokenGroup {
	TokenGroup {
		tokens: vec![
			Token::HtmlCommentOpen,
			Token::Newline,
			Token::CloseTag,
			Token::Ident("example".to_string()),
			Token::BraceClose,
			Token::HtmlCommentClose,
		],
		position: Position {
			start: Point {
				line: 1,
				column: 2,
				offset: 1,
			},
			end: Point {
				line: 2,
				column: 13,
				offset: 19,
			},
		},
	}
}