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 */
040public interface Nat<T extends Num> {
041  /**
042   * The number this interface represents.
043   *
044   * @return The number backing this value.
045   */
046  int getNum();
047
048  /**
049   * Returns the Nat instance for 0.
050   *
051   * @return The Nat instance for 0.
052   */
053  static Nat<N0> N0() {
054    return N0.instance;
055  }
056
057  /**
058   * Returns the Nat instance for 1.
059   *
060   * @return The Nat instance for 1.
061   */
062  static Nat<N1> N1() {
063    return N1.instance;
064  }
065
066  /**
067   * Returns the Nat instance for 2.
068   *
069   * @return The Nat instance for 2.
070   */
071  static Nat<N2> N2() {
072    return N2.instance;
073  }
074
075  /**
076   * Returns the Nat instance for 3.
077   *
078   * @return The Nat instance for 3.
079   */
080  static Nat<N3> N3() {
081    return N3.instance;
082  }
083
084  /**
085   * Returns the Nat instance for 4.
086   *
087   * @return The Nat instance for 4.
088   */
089  static Nat<N4> N4() {
090    return N4.instance;
091  }
092
093  /**
094   * Returns the Nat instance for 5.
095   *
096   * @return The Nat instance for 5.
097   */
098  static Nat<N5> N5() {
099    return N5.instance;
100  }
101
102  /**
103   * Returns the Nat instance for 6.
104   *
105   * @return The Nat instance for 6.
106   */
107  static Nat<N6> N6() {
108    return N6.instance;
109  }
110
111  /**
112   * Returns the Nat instance for 7.
113   *
114   * @return The Nat instance for 7.
115   */
116  static Nat<N7> N7() {
117    return N7.instance;
118  }
119
120  /**
121   * Returns the Nat instance for 8.
122   *
123   * @return The Nat instance for 8.
124   */
125  static Nat<N8> N8() {
126    return N8.instance;
127  }
128
129  /**
130   * Returns the Nat instance for 9.
131   *
132   * @return The Nat instance for 9.
133   */
134  static Nat<N9> N9() {
135    return N9.instance;
136  }
137
138  /**
139   * Returns the Nat instance for 10.
140   *
141   * @return The Nat instance for 10.
142   */
143  static Nat<N10> N10() {
144    return N10.instance;
145  }
146
147  /**
148   * Returns the Nat instance for 11.
149   *
150   * @return The Nat instance for 11.
151   */
152  static Nat<N11> N11() {
153    return N11.instance;
154  }
155
156  /**
157   * Returns the Nat instance for 12.
158   *
159   * @return The Nat instance for 12.
160   */
161  static Nat<N12> N12() {
162    return N12.instance;
163  }
164
165  /**
166   * Returns the Nat instance for 13.
167   *
168   * @return The Nat instance for 13.
169   */
170  static Nat<N13> N13() {
171    return N13.instance;
172  }
173
174  /**
175   * Returns the Nat instance for 14.
176   *
177   * @return The Nat instance for 14.
178   */
179  static Nat<N14> N14() {
180    return N14.instance;
181  }
182
183  /**
184   * Returns the Nat instance for 15.
185   *
186   * @return The Nat instance for 15.
187   */
188  static Nat<N15> N15() {
189    return N15.instance;
190  }
191
192  /**
193   * Returns the Nat instance for 16.
194   *
195   * @return The Nat instance for 16.
196   */
197  static Nat<N16> N16() {
198    return N16.instance;
199  }
200
201  /**
202   * Returns the Nat instance for 17.
203   *
204   * @return The Nat instance for 17.
205   */
206  static Nat<N17> N17() {
207    return N17.instance;
208  }
209
210  /**
211   * Returns the Nat instance for 18.
212   *
213   * @return The Nat instance for 18.
214   */
215  static Nat<N18> N18() {
216    return N18.instance;
217  }
218
219  /**
220   * Returns the Nat instance for 19.
221   *
222   * @return The Nat instance for 19.
223   */
224  static Nat<N19> N19() {
225    return N19.instance;
226  }
227
228  /**
229   * Returns the Nat instance for 20.
230   *
231   * @return The Nat instance for 20.
232   */
233  static Nat<N20> N20() {
234    return N20.instance;
235  }
236}