001// Copyright (c) FIRST and other WPILib contributors.
002// Open Source Software; you can modify and/or share it under the terms of
003// the WPILib BSD license file in the root directory of this project.
004
005package edu.wpi.first.math;
006
007//CHECKSTYLE.OFF: ImportOrder
008
009import edu.wpi.first.math.numbers.N0;
010import edu.wpi.first.math.numbers.N1;
011import edu.wpi.first.math.numbers.N2;
012import edu.wpi.first.math.numbers.N3;
013import edu.wpi.first.math.numbers.N4;
014import edu.wpi.first.math.numbers.N5;
015import edu.wpi.first.math.numbers.N6;
016import edu.wpi.first.math.numbers.N7;
017import edu.wpi.first.math.numbers.N8;
018import edu.wpi.first.math.numbers.N9;
019import edu.wpi.first.math.numbers.N10;
020import edu.wpi.first.math.numbers.N11;
021import edu.wpi.first.math.numbers.N12;
022import edu.wpi.first.math.numbers.N13;
023import edu.wpi.first.math.numbers.N14;
024import edu.wpi.first.math.numbers.N15;
025import edu.wpi.first.math.numbers.N16;
026import edu.wpi.first.math.numbers.N17;
027import edu.wpi.first.math.numbers.N18;
028import edu.wpi.first.math.numbers.N19;
029import edu.wpi.first.math.numbers.N20;
030//CHECKSTYLE.ON
031
032/**
033 * A natural number expressed as a java class.
034 * The counterpart to {@link Num} that should be used as a concrete value.
035 *
036 * @param <T> The {@link Num} this represents.
037 */
038@SuppressWarnings({"MethodName", "unused"})
039public interface Nat<T extends Num> {
040  /**
041   * The number this interface represents.
042   *
043   * @return The number backing this value.
044   */
045  int getNum();
046
047  static Nat<N0> N0() {
048    return N0.instance;
049  }
050
051  static Nat<N1> N1() {
052    return N1.instance;
053  }
054
055  static Nat<N2> N2() {
056    return N2.instance;
057  }
058
059  static Nat<N3> N3() {
060    return N3.instance;
061  }
062
063  static Nat<N4> N4() {
064    return N4.instance;
065  }
066
067  static Nat<N5> N5() {
068    return N5.instance;
069  }
070
071  static Nat<N6> N6() {
072    return N6.instance;
073  }
074
075  static Nat<N7> N7() {
076    return N7.instance;
077  }
078
079  static Nat<N8> N8() {
080    return N8.instance;
081  }
082
083  static Nat<N9> N9() {
084    return N9.instance;
085  }
086
087  static Nat<N10> N10() {
088    return N10.instance;
089  }
090
091  static Nat<N11> N11() {
092    return N11.instance;
093  }
094
095  static Nat<N12> N12() {
096    return N12.instance;
097  }
098
099  static Nat<N13> N13() {
100    return N13.instance;
101  }
102
103  static Nat<N14> N14() {
104    return N14.instance;
105  }
106
107  static Nat<N15> N15() {
108    return N15.instance;
109  }
110
111  static Nat<N16> N16() {
112    return N16.instance;
113  }
114
115  static Nat<N17> N17() {
116    return N17.instance;
117  }
118
119  static Nat<N18> N18() {
120    return N18.instance;
121  }
122
123  static Nat<N19> N19() {
124    return N19.instance;
125  }
126
127  static Nat<N20> N20() {
128    return N20.instance;
129  }
130
131}