chiark / gitweb /
Start work on a nimbers library.
authorSimon Tatham <anakin@pobox.com>
Thu, 10 Apr 2025 11:25:39 +0000 (12:25 +0100)
committerSimon Tatham <anakin@pobox.com>
Thu, 10 Apr 2025 11:25:39 +0000 (12:25 +0100)
.gitignore [new file with mode: 0644]
Cargo.lock [new file with mode: 0644]
Cargo.toml [new file with mode: 0644]
src/finitenimber.rs [new file with mode: 0644]
src/lib.rs [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..ea8c4bf
--- /dev/null
@@ -0,0 +1 @@
+/target
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644 (file)
index 0000000..8a4d92e
--- /dev/null
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "nimber-rs"
+version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644 (file)
index 0000000..22a841c
--- /dev/null
@@ -0,0 +1,6 @@
+[package]
+name = "nimber-rs"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/finitenimber.rs b/src/finitenimber.rs
new file mode 100644 (file)
index 0000000..1ffd3a4
--- /dev/null
@@ -0,0 +1,7 @@
+pub trait FiniteNimberBaseInteger : std::ops::BitXor + Sized {
+    type Owned;
+}
+
+pub struct FiniteNimber<T: FiniteNimberBaseInteger> {
+    n: T,
+}
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644 (file)
index 0000000..bc692dc
--- /dev/null
@@ -0,0 +1,3 @@
+mod finitenimber;
+
+pub use finitenimber::FiniteNimber;