                    ;; the inside of it correctly relative to the outside.
                    (if (= 0 level)
                        0
+					 (or
+					  (when rust-indent-method-chain
+						(rust-align-to-method-chain))
                      (save-excursion
                        (backward-up-list)
                        (rust-rewind-to-beginning-of-current-level-expr)
-                       (+ (current-column) rust-indent-offset)))))
+                       (+ (current-column) rust-indent-offset))))))
              (cond
               ;; A function return type is indented to the corresponding function arguments
               ((looking-at "->")

(defcustom rust-indent-offset 4
  "Indent Rust code by this number of spaces."
  :type 'integer
  :group 'rust-mode)

(defun rust-paren-level () (nth 0 (syntax-ppss)))

	(forward-word 1)
	(backward-word 1))
      (current-column))))

(defun rust-align-to-method-chain ()
  (save-excursion
	(previous-line)
	(end-of-line)
	(backward-word 1)
	(backward-char)
	(when (looking-at "\\..+\(.*\)\n")
	  (- (current-column) rust-indent-offset))))

(defun rust-rewind-to-beginning-of-current-level-expr ()
  (let ((current-level (rust-paren-level)))
