(this will naturally be the case unless the caller has
        manually modified one without modifying the other)
  If the optimized implementation is in use, a NestedTensor can be
  passed for "src" to represent padding more efficiently than
  using a padding mask. In this case, a NestedTensor will be
  returned, and an additional speedup proportional to the fraction
  of the input that is padding can be expected.

forward(src, src_mask=None, src_key_padding_mask=None, is_causal=False)
  Pass the input through the encoder layer.

  Parameters:
     * **src** (*Tensor*) -- the sequence to the encoder layer
       (required).

     * **src_mask** (*Optional**[**Tensor**]*) -- the mask for the
       src sequence (optional).

     * **is_causal** (*bool*) -- If specified, applies a causal
       mask as src_mask. Mutually exclusive with providing
       src_mask. Default: "False".
