setup flake

This commit is contained in:
jackjohn7 2025-11-04 18:40:38 -06:00
parent af0cf1f548
commit 5bc23f92d3
6 changed files with 136 additions and 0 deletions

3
.envrc Normal file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
use flake

1
.gitignore vendored
View file

@ -1 +1,2 @@
target
.direnv

27
flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

20
flake.nix Normal file
View file

@ -0,0 +1,20 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }: let
pkgs = nixpkgs.legacyPackages."x86_64-linux";
in {
devShells."x86_64-linux".default = pkgs.mkShell {
buildInputs = with pkgs; [
cargo rustc rustfmt clippy rust-analyzer glibc
];
nativeBuildInputs = [ pkgs.pkg-config ];
env.RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
};
};
}

78
rustfmt.toml Normal file
View file

@ -0,0 +1,78 @@
max_width = 80
hard_tabs = true
tab_spaces = 4
newline_style = "Unix"
use_small_heuristics = "Default"
fn_call_width = 60
attr_fn_like_width = 70
struct_lit_width = 18
struct_variant_width = 35
array_width = 60
chain_width = 60
single_line_if_else_max_width = 50
reorder_imports = true
reorder_modules = true
remove_nested_parens = true
short_array_element_width_threshold = 10
match_arm_leading_pipes = "Never"
fn_args_layout = "Vertical"
match_block_trailing_comma = false
edition = "2021"
merge_derives = true
use_try_shorthand = true
use_field_init_shorthand = true
force_explicit_abi = true
disable_all_formatting = false
# --- unstable settings ---
# indent_style = "Block"
# wrap_comments = false
# format_code_in_doc_comments = false
# doc_comment_code_block_width = 100
# normalize_comments = false
# normalize_doc_attributes = false
# format_strings = false
# format_macro_matchers = false
# format_macro_bodies = true
# hex_literal_case = "Preserve"
# empty_item_single_line = true
# struct_lit_single_line = true
# fn_single_line = false
# comment_width = 80
# where_single_line = false
# imports_indent = "Block"
# imports_layout = "Mixed"
# imports_granularity = "Preserve"
# group_imports = "Preserve"
# reorder_impl_items = false
# type_punctuation_density = "Wide"
# space_before_colon = false
# space_after_colon = true
# spaces_around_ranges = false
# binop_separator = "Front"
# combine_control_expr = true
# overflow_delimited_expr = false
# struct_field_align_threshold = 0
# enum_discrim_align_threshold = 0
# match_arm_blocks = true
# force_multiline_blocks = false
# brace_style = "SameLineWhere"
# control_brace_style = "AlwaysSameLine"
# trailing_semicolon = true
# trailing_comma = "Vertical"
# version = "One"
# blank_lines_upper_bound = 1
# blank_lines_lower_bound = 0
# inline_attribute_width = 0
# format_generated_files = true
# condense_wildcard_suffixes = false
# color = "Auto"
# required_version = "1.5.1"
# unstable_features = false
# skip_children = false
# hide_parse_errors = false
# error_on_line_overflow = false
# error_on_unformatted = false
# ignore = []
# emit_mode = "Files"
# make_backup = false

7
treefmt.toml Normal file
View file

@ -0,0 +1,7 @@
[formatter.rust]
command = "rustfmt"
includes = ["*.rs"]
[formatter.nix]
command = "alejandra"
includes = ["*.nix"]