There is a much nicer way of checking.
Rust iterators are really powerful. Try using them instead of loops, whenever you can.
Tap for solution
let is_palindrome = input.chars().eq(input.chars().rev());
As you can see, the intent is much clearer instead of indexing into the loops. Technically this does however twice as many comparisons. They can be avoided with take and half the size of the iterator.
That’s exactly what I Hinted at in my post, though I would use take(input.size()/2). However I wouldn’t be surprised if the compiler could short circuit it, but I haven’t checked.