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
005// THIS FILE WAS AUTO-GENERATED BY ./wpimath/generate_numbers.py. DO NOT MODIFY
006
007package edu.wpi.first.math;
008
009// CHECKSTYLE.OFF: ImportOrder
010
011import edu.wpi.first.math.numbers.N0;
012import edu.wpi.first.math.numbers.N1;
013import edu.wpi.first.math.numbers.N2;
014import edu.wpi.first.math.numbers.N3;
015import edu.wpi.first.math.numbers.N4;
016import edu.wpi.first.math.numbers.N5;
017import edu.wpi.first.math.numbers.N6;
018import edu.wpi.first.math.numbers.N7;
019import edu.wpi.first.math.numbers.N8;
020import edu.wpi.first.math.numbers.N9;
021import edu.wpi.first.math.numbers.N10;
022import edu.wpi.first.math.numbers.N11;
023import edu.wpi.first.math.numbers.N12;
024import edu.wpi.first.math.numbers.N13;
025import edu.wpi.first.math.numbers.N14;
026import edu.wpi.first.math.numbers.N15;
027import edu.wpi.first.math.numbers.N16;
028import edu.wpi.first.math.numbers.N17;
029import edu.wpi.first.math.numbers.N18;
030import edu.wpi.first.math.numbers.N19;
031import edu.wpi.first.math.numbers.N20;
032// CHECKSTYLE.ON
033
034/**
035 * A natural number expressed as a java class.
036 * The counterpart to {@link Num} that should be used as a concrete value.
037 *
038 * @param <T> The {@link Num} this represents.
039 */
040@SuppressWarnings("PMD.ImplicitFunctionalInterface")
041public interface Nat<T extends Num> {
042  /**
043   * The number this interface represents.
044   *
045   * @return The number backing this value.
046   */
047  int getNum();
048
049  /**
050   * Returns the Nat instance for 0.
051   *
052   * @return The Nat instance for 0.
053   */
054  static Nat<N0> N0() {
055    return N0.instance;
056  }
057
058  /**
059   * Returns the Nat instance for 1.
060   *
061   * @return The Nat instance for 1.
062   */
063  static Nat<N1> N1() {
064    return N1.instance;
065  }
066
067  /**
068   * Returns the Nat instance for 2.
069   *
070   * @return The Nat instance for 2.
071   */
072  static Nat<N2> N2() {
073    return N2.instance;
074  }
075
076  /**
077   * Returns the Nat instance for 3.
078   *
079   * @return The Nat instance for 3.
080   */
081  static Nat<N3> N3() {
082    return N3.instance;
083  }
084
085  /**
086   * Returns the Nat instance for 4.
087   *
088   * @return The Nat instance for 4.
089   */
090  static Nat<N4> N4() {
091    return N4.instance;
092  }
093
094  /**
095   * Returns the Nat instance for 5.
096   *
097   * @return The Nat instance for 5.
098   */
099  static Nat<N5> N5() {
100    return N5.instance;
101  }
102
103  /**
104   * Returns the Nat instance for 6.
105   *
106   * @return The Nat instance for 6.
107   */
108  static Nat<N6> N6() {
109    return N6.instance;
110  }
111
112  /**
113   * Returns the Nat instance for 7.
114   *
115   * @return The Nat instance for 7.
116   */
117  static Nat<N7> N7() {
118    return N7.instance;
119  }
120
121  /**
122   * Returns the Nat instance for 8.
123   *
124   * @return The Nat instance for 8.
125   */
126  static Nat<N8> N8() {
127    return N8.instance;
128  }
129
130  /**
131   * Returns the Nat instance for 9.
132   *
133   * @return The Nat instance for 9.
134   */
135  static Nat<N9> N9() {
136    return N9.instance;
137  }
138
139  /**
140   * Returns the Nat instance for 10.
141   *
142   * @return The Nat instance for 10.
143   */
144  static Nat<N10> N10() {
145    return N10.instance;
146  }
147
148  /**
149   * Returns the Nat instance for 11.
150   *
151   * @return The Nat instance for 11.
152   */
153  static Nat<N11> N11() {
154    return N11.instance;
155  }
156
157  /**
158   * Returns the Nat instance for 12.
159   *
160   * @return The Nat instance for 12.
161   */
162  static Nat<N12> N12() {
163    return N12.instance;
164  }
165
166  /**
167   * Returns the Nat instance for 13.
168   *
169   * @return The Nat instance for 13.
170   */
171  static Nat<N13> N13() {
172    return N13.instance;
173  }
174
175  /**
176   * Returns the Nat instance for 14.
177   *
178   * @return The Nat instance for 14.
179   */
180  static Nat<N14> N14() {
181    return N14.instance;
182  }
183
184  /**
185   * Returns the Nat instance for 15.
186   *
187   * @return The Nat instance for 15.
188   */
189  static Nat<N15> N15() {
190    return N15.instance;
191  }
192
193  /**
194   * Returns the Nat instance for 16.
195   *
196   * @return The Nat instance for 16.
197   */
198  static Nat<N16> N16() {
199    return N16.instance;
200  }
201
202  /**
203   * Returns the Nat instance for 17.
204   *
205   * @return The Nat instance for 17.
206   */
207  static Nat<N17> N17() {
208    return N17.instance;
209  }
210
211  /**
212   * Returns the Nat instance for 18.
213   *
214   * @return The Nat instance for 18.
215   */
216  static Nat<N18> N18() {
217    return N18.instance;
218  }
219
220  /**
221   * Returns the Nat instance for 19.
222   *
223   * @return The Nat instance for 19.
224   */
225  static Nat<N19> N19() {
226    return N19.instance;
227  }
228
229  /**
230   * Returns the Nat instance for 20.
231   *
232   * @return The Nat instance for 20.
233   */
234  static Nat<N20> N20() {
235    return N20.instance;
236  }
237}