rhai_sci/
constants.rs

1use rhai::plugin::*;
2
3#[export_module]
4#[allow(non_upper_case_globals)]
5pub mod constant_definitions {
6    use rhai::FLOAT;
7
8    // The ratio of a circle's circumference to its diameter.
9    #[allow(non_upper_case_globals)]
10    pub const pi: FLOAT = 3.14159265358979323846264338327950288;
11
12    //Speed of light in meters per second (m/s).
13    #[allow(non_upper_case_globals)]
14    pub const c: FLOAT = 299792458.0;
15
16    // Euler's number.
17    #[allow(non_upper_case_globals)]
18    pub const e: FLOAT = 2.71828182845904523536028747135266250;
19
20    // Acceleration due to gravity on Earth in meters per second per second (m/s^2).
21    #[allow(non_upper_case_globals)]
22    pub const g: FLOAT = 9.80665;
23
24    // The Planck constant in Joules per Hertz (J/Hz)
25    #[allow(non_upper_case_globals)]
26    pub const h: FLOAT = 6.62607015e-34;
27
28    // The golden ratio
29    #[allow(non_upper_case_globals)]
30    pub const phi: FLOAT = 1.61803398874989484820;
31
32    // Newtonian gravitational constant
33    pub const G: FLOAT = 6.6743015e-11;
34
35    /// Physical constants useful for science.
36    ///  ### `pi: FLOAT`
37    /// The ratio of a circle's circumference to its diameter (non-dimensional).
38    /// ```typescript
39    /// assert_eq(pi, 3.14159265358979323846264338327950288);
40    /// ```
41    ///  ### `c: FLOAT`
42    /// The speed of light in meters per second (m/s).
43    /// ```typescript
44    /// assert_eq(c, 299792458.0);
45    /// ```
46    /// ### `e: FLOAT`
47    /// Euler's number (non-dimensional).
48    /// ```typescript
49    /// assert_eq(e, 2.71828182845904523536028747135266250);
50    /// ```
51    ///  ### `g: FLOAT`
52    /// The acceleration due to gravity on Earth in meters per second per second (m/s^2).
53    /// ```typescript
54    /// assert_eq(g, 9.80665);
55    /// ```
56    ///  ### `h: FLOAT`
57    /// The Planck constant in Joules per Hertz (J/Hz).
58    /// ```typescript
59    /// assert_eq(h, 6.62607015e-34);
60    /// ```
61    /// ### `phi: FLOAT`
62    /// The golden ratio (non-dimensional).
63    /// ```typescript
64    /// assert_eq(phi, 1.61803398874989484820);
65    /// ```
66    /// ### `G: FLOAT`
67    /// The Newtonian gravitational constant (non-dimensional).
68    /// ```typescript
69    /// assert_eq(G, 6.6743015e-11);
70    /// ```
71    #[rhai_fn(name = "$CONSTANTS$")]
72    pub fn constants() {}
73}