test_case_core/
comment.rs
1use crate::TokenStream2;
2use quote::ToTokens;
3use syn::parse::{Parse, ParseStream};
4use syn::{LitStr, Token};
5
6#[derive(Clone, Debug)]
7pub struct TestCaseComment {
8 _semicolon: Token![;],
9 pub comment: LitStr,
10}
11
12impl Parse for TestCaseComment {
13 fn parse(input: ParseStream) -> syn::Result<Self> {
14 Ok(Self {
15 _semicolon: input.parse()?,
16 comment: input.parse()?,
17 })
18 }
19}
20
21impl ToTokens for TestCaseComment {
22 fn to_tokens(&self, tokens: &mut TokenStream2) {
23 self._semicolon.to_tokens(tokens);
24 self.comment.to_tokens(tokens);
25 }
26}
27
28#[cfg(test)]
29mod tests {
30 use crate::comment::TestCaseComment;
31 use proc_macro2::TokenStream;
32 use syn::parse_quote;
33
34 #[test]
35 fn parses_token_stream() {
36 let input: TokenStream = parse_quote! { ; "abcdef" };
37 let actual: TestCaseComment = syn::parse2(input).unwrap();
38 assert_eq!(actual.comment.value(), "abcdef")
39 }
40}