code: def rot90(
      m: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      copy: Optional[bool] = None,
      k: int = 1,
      axes: Tuple[int, int] = (0, 1),
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Rotate an array by 90 degrees in the plane specified by axes. Rotation
      direction is from the first towards the second axis.
  
      Parameters
      ----------
      m
          Input array of two or more dimensions.
      copy
          boolean indicating whether or not to copy the input array.
          If True, the function must always copy.
          If False, the function must never copy.
          In case copy is False we avoid copying by returning a view of the input array.
      k
          Number of times the array is rotated by 90 degrees.
      axes
          The array is rotated in the plane defined by the axes. Axes must be
          different.
      out
          optional output container, for writing the result to. It must have a shape
          that the inputs broadcast to.
  
      Returns
      -------
      ret
          A rotated view of m.
  
      Examples
      --------
      With :code:`ivy.Array` input:
      >>> m = ivy.array([[1,2], [3,4]])
      >>> ivy.rot90(m)
      ivy.array([[2, 4],
             [1, 3]])
      >>> m = ivy.array([[1,2], [3,4]])
      >>> ivy.rot90(m, k=2)
      ivy.array([[4, 3],
             [2, 1]])
      >>> m = ivy.array([[[0, 1],\
                          [2, 3]],\
                         [[4, 5],\
                          [6, 7]]])
      >>> ivy.rot90(m, k=2, axes=(1,2))
      ivy.array([[[3, 2],
              [1, 0]],
  
             [[7, 6],
              [5, 4]]])
      With :code:`ivy.NativeArray` input:
      >>> m = ivy.native_array([[1,2], [3,4]])
      >>> ivy.rot90(m)
      ivy.array([[2, 4],
             [1, 3]])
      >>> m = ivy.native_array([[1,2], [3,4]])
      >>> ivy.rot90(m, k=2)
      ivy.array([[4, 3],
             [2, 1]])
      >>> m = ivy.native_array([[[0, 1],\
                                 [2, 3]],\
                                [[4, 5],\
                                 [6, 7]]])
      >>> ivy.rot90(m, k=2, axes=(1,2))
      ivy.array([[[3, 2],
              [1, 0]],
  
             [[7, 6],
              [5, 4]]])
      """
      return ivy.current_backend(m).rot90(
          m, copy=copy, k=k, axes=axes, out=out
      )
  
imports: from typing import Optional, Union, Tuple, Iterable, Sequence, Callable, Any, Literal, List
  from numbers import Number
  from functools import partial
  import math
  import ivy
  from ivy.func_wrapper import handle_out_argument, handle_partial_mixed_function, to_native_arrays_and_back, inputs_to_native_shapes, handle_nestable, handle_array_like_without_promotion, handle_view, inputs_to_ivy_arrays, handle_array_function, handle_device, handle_backend_invalid
  from ivy.functional.ivy.general import _numel
  from ivy.utils.backend import current_backend
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 10 for calling a global function with example usage: rot90() and returns: ivy