Remove Synom trait
diff --git a/src/synom.rs b/src/synom.rs
index d5f1684..a768c73 100644
--- a/src/synom.rs
+++ b/src/synom.rs
@@ -166,61 +166,6 @@
use buffer::{Cursor, TokenBuffer};
use parse::{Parse, ParseBuffer, ParseStream, Result};
-/// Parsing interface implemented by all types that can be parsed in a default
-/// way from a token stream.
-///
-/// Refer to the [module documentation] for details about parsing in Syn.
-///
-/// [module documentation]: index.html
-///
-/// *This trait is available if Syn is built with the `"parsing"` feature.*
-pub trait Synom: Sized {
- fn parse(input: Cursor) -> PResult<Self>;
-
- /// A short name of the type being parsed.
- ///
- /// The description should only be used for a simple name. It should not
- /// contain newlines or sentence-ending punctuation, to facilitate embedding in
- /// larger user-facing strings. Syn will use this description when building
- /// error messages about parse failures.
- ///
- /// # Examples
- ///
- /// ```
- /// # use syn::buffer::Cursor;
- /// # use syn::synom::{Synom, PResult};
- /// #
- /// struct ExprMacro {
- /// // ...
- /// }
- ///
- /// impl Synom for ExprMacro {
- /// # fn parse(input: Cursor) -> PResult<Self> { unimplemented!() }
- /// // fn parse(...) -> ... { ... }
- ///
- /// fn description() -> Option<&'static str> {
- /// // Will result in messages like
- /// //
- /// // "failed to parse macro invocation expression: $reason"
- /// Some("macro invocation expression")
- /// }
- /// }
- /// ```
- fn description() -> Option<&'static str> {
- None
- }
-}
-
-impl<T: Parse> Synom for T {
- fn parse(input: Cursor) -> PResult<Self> {
- let unexpected = Rc::new(Cell::new(None));
- let state = ParseBuffer::new(Span::call_site(), input, unexpected);
- let node = <T as Parse>::parse(&state)?;
- state.check_unexpected()?;
- Ok((node, state.cursor()))
- }
-}
-
impl Parse for TokenStream {
fn parse(input: ParseStream) -> Result<Self> {
input.step_cursor(|cursor| Ok((cursor.token_stream(), Cursor::empty())))