// Copyright (C) 2009-2020 Xtensive LLC.
// This code is distributed under MIT license terms.
// See the License.txt file in the project root for more information.
// Created by: Denis Krjuchkov
// Created:    2009.02.24

namespace Xtensive.Reflection
{
  public partial class WellKnown
  {
    ///<summary>
    /// Well-known method names related to operator overloading
    ///</summary>
    public static class Operator
    {
      /// <summary>
      /// Returns "op_Addition".
      /// </summary>
      public const string Addition = "op_Addition";

      /// <summary>
      /// Returns "op_Subtraction".
      /// </summary>
      public const string Subtraction = "op_Subtraction";

      /// <summary>
      /// Returns "op_Multiply".
      /// </summary>
      public const string Multiply = "op_Multiply";

      /// <summary>
      /// Returns "op_Division".
      /// </summary>
      public const string Division = "op_Division";

      /// <summary>
      /// Returns "op_Modulus".
      /// </summary>
      public const string Modulus = "op_Modulus";

      /// <summary>
      /// Returns "op_Increment".
      /// </summary>
      public const string Increment = "op_Increment";

      /// <summary>
      /// Returns "op_Decrement".
      /// </summary>
      public const string Decrement = "op_Decrement";

      /// <summary>
      /// Returns "op_UnaryNegation".
      /// </summary>
      public const string UnaryNegation = "op_UnaryNegation";

      /// <summary>
      /// Returns "op_UnaryPlus".
      /// </summary>
      public const string UnaryPlus = "op_UnaryPlus";

      /// <summary>
      /// Returns "op_BitwiseOr".
      /// </summary>
      public const string BitwiseOr = "op_BitwiseOr";

      /// <summary>
      /// Returns "op_BitwiseAnd".
      /// </summary>
      public const string BitwiseAnd = "op_BitwiseAnd";

      /// <summary>
      /// Returns "op_ExclusiveOr".
      /// </summary>
      public const string ExclusiveOr = "op_ExclusiveOr";

      /// <summary>
      /// Returns "op_OnesComplement".
      /// </summary>
      public const string OnesComplement = "op_OnesComplement";

      /// <summary>
      /// Returns "op_LeftShift"
      /// </summary>
      public const string LeftShift = "op_LeftShift";

      /// <summary>
      /// Returns "op_RightShift
      /// </summary>
      public const string RightShift = "op_RightShift";

      /// <summary>
      /// Returns "op_LogicalNot".
      /// </summary>
      public const string LogicalNot = "op_LogicalNot";

      /// <summary>
      /// Returns "op_True".
      /// </summary>
      public const string True = "op_True";

      /// <summary>
      /// Returns "op_False".
      /// </summary>
      public const string False = "op_False";

      /// <summary>
      /// Returns "op_Explicit"
      /// </summary>
      public const string Explicit = "op_Explicit";

      /// <summary>
      /// Returns "op_Implicit".
      /// </summary>
      public const string Implicit = "op_Implicit";

      /// <summary>
      /// Returns "op_Equality".
      /// </summary>
      public const string Equality = "op_Equality";

      /// <summary>
      /// Returns "op_Inequality".
      /// </summary>
      public const string Inequality = "op_Inequality";

      /// <summary>
      /// Returns "op_GreaterThan".
      /// </summary>
      public const string GreaterThan = "op_GreaterThan";

      /// <summary>
      /// Returns "op_GreaterThanOrEqual".
      /// </summary>
      public const string GreaterThanOrEqual = "op_GreaterThanOrEqual";

      /// <summary>
      /// Returns "op_LessThan".
      /// </summary>
      public const string LessThan = "op_LessThan";

      /// <summary>
      /// Returns "op_LessThanOrEqual".
      /// </summary>
      public const string LessThanOrEqual = "op_LessThanOrEqual";

    }
  }
}
