fn or<P: Parser<T, I>>(self, parser: P) -> Or<Self, P> {
        Or {
            p1: self,
            p2: parser,
        }
    }
/// Tries to apply the first parser, if it fails, it tries to apply the second parser.
Tries to apply the first parser, if it fails, it tries to apply the second parser.
Tries to apply the first parser if it fails it tries to apply the second parser .
fn or<P: Parser<T, I>>(self, parser: P) -> Or<Self, P> {
        Or {
            p1: self,
            p2: parser,
        }
    }
fn or < P : Parser < T , I > > ( self , parser : P ) -> Or < Self , P > { Or { p1 : self , p2 : parser , } }
Tries to apply the first parser, if it fails, it tries to apply the second parser.
Tries to apply the first parser if it fails it tries to apply the second parser .
self
parser
P