initial commit
This commit is contained in:
commit
c032629bae
7 changed files with 4253 additions and 0 deletions
1
.envrc
Normal file
1
.envrc
Normal file
|
@ -0,0 +1 @@
|
|||
use flake
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/.direnv
|
||||
/target
|
4080
Cargo.lock
generated
Normal file
4080
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
7
Cargo.toml
Normal file
7
Cargo.toml
Normal file
|
@ -0,0 +1,7 @@
|
|||
[package]
|
||||
name = "todo"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
iced = "0.13.1"
|
43
flake.lock
generated
Normal file
43
flake.lock
generated
Normal file
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1742889210,
|
||||
"narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "698214a32beb4f4c8e3942372c694f40848b360d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"systems": "systems"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
53
flake.nix
Normal file
53
flake.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
description = "ralc, a rust calculator";
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
systems.url = "github:nix-systems/default-linux";
|
||||
};
|
||||
|
||||
outputs = inputs: let
|
||||
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
||||
eachSystem = inputs.nixpkgs.lib.genAttrs (import inputs.systems);
|
||||
pkgsFor = inputs.nixpkgs.legacyPackages;
|
||||
in {
|
||||
packages = eachSystem (system: {
|
||||
default = inputs.self.packages.${system}.ralc;
|
||||
ralc = pkgsFor.${system}.callPackage ./nix/package.nix {};
|
||||
});
|
||||
|
||||
devShells = eachSystem (system: {
|
||||
default = pkgsFor.${system}.mkShell rec {
|
||||
packages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgsFor.${system})
|
||||
cargo
|
||||
rustc
|
||||
rustfmt
|
||||
bacon
|
||||
;
|
||||
inherit
|
||||
(pkgsFor.${system}.rustPackages)
|
||||
clippy
|
||||
;
|
||||
inherit
|
||||
(pkgsFor.${system})
|
||||
libxkbcommon
|
||||
vulkan-loader
|
||||
wayland
|
||||
;
|
||||
inherit
|
||||
(pkgsFor.${system}.xorg)
|
||||
libX11
|
||||
libXcursor
|
||||
libXrandr
|
||||
libXi
|
||||
libxcb
|
||||
;
|
||||
};
|
||||
shellHook = ''
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${builtins.toString (pkgs.lib.makeLibraryPath packages)}";
|
||||
'';
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
67
src/main.rs
Normal file
67
src/main.rs
Normal file
|
@ -0,0 +1,67 @@
|
|||
// use iced::pure::Sandbox;
|
||||
use iced::{
|
||||
Element, Settings,
|
||||
widget::{self, Column, Row, button, column, row, text},
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
enum Message {
|
||||
Increment,
|
||||
Decrement,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
struct Counter {
|
||||
value: i64,
|
||||
}
|
||||
|
||||
impl Counter {
|
||||
fn new() -> Self {
|
||||
Self { value: 0 }
|
||||
}
|
||||
fn update(&mut self, message: Message) {
|
||||
match message {
|
||||
Message::Increment => self.value += 1,
|
||||
Message::Decrement => self.value -= 1,
|
||||
}
|
||||
}
|
||||
|
||||
fn view(&self) -> iced::Element<'_, Message> {
|
||||
// let col = column![
|
||||
// button("+").on_press(Message::Increment),
|
||||
// text(self.value),
|
||||
// text("This is a test"),
|
||||
// button("-").on_press(Message::Decrement),
|
||||
// ];
|
||||
|
||||
let bla = row![
|
||||
button("+").on_press(Message::Increment),
|
||||
text(self.value),
|
||||
text("This is a test"),
|
||||
button("-").on_press(Message::Decrement),
|
||||
];
|
||||
|
||||
widget::container(bla)
|
||||
.center_x(iced::Length::Fill)
|
||||
.center_y(iced::Length::Fill)
|
||||
.height(iced::Length::Fill)
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn it_counts_properly() {
|
||||
let mut counter = Counter { value: 0 };
|
||||
counter.update(Message::Increment);
|
||||
counter.update(Message::Increment);
|
||||
counter.update(Message::Increment);
|
||||
counter.update(Message::Decrement);
|
||||
counter.update(Message::Increment);
|
||||
|
||||
assert_eq!(counter.value, 3)
|
||||
}
|
||||
|
||||
fn main() -> Result<(), iced::Error> {
|
||||
iced::application("Counter Example", Counter::update, Counter::view)
|
||||
.run_with(|| (Counter::new(), iced::Task::none()))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue