[INFO] cloning repository https://github.com/pascalmouret/jfs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pascalmouret/jfs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpascalmouret%2Fjfs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpascalmouret%2Fjfs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 76a5fef3ece15fe9ace166d9158033506108456d
[INFO] checking pascalmouret/jfs against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpascalmouret%2Fjfs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pascalmouret/jfs
[INFO] finished tweaking git repo https://github.com/pascalmouret/jfs
[INFO] tweaked toml for git repo https://github.com/pascalmouret/jfs written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pascalmouret/jfs on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pascalmouret/jfs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded page_size v0.6.0
[INFO] [stderr]   Downloaded byteorder v1.5.0
[INFO] [stderr]   Downloaded pkg-config v0.3.31
[INFO] [stderr]   Downloaded log v0.4.22
[INFO] [stderr]   Downloaded unicode-ident v1.0.13
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.35
[INFO] [stderr]   Downloaded zerocopy v0.7.35
[INFO] [stderr]   Downloaded fuser v0.14.0
[INFO] [stderr]   Downloaded syn v2.0.77
[INFO] [stderr]   Downloaded libc v0.2.158
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 47baabc5af84d05923218ddf199bb7d52f45d890bd935f44508c5d9199932a71
[INFO] running `Command { std: "docker" "start" "-a" "47baabc5af84d05923218ddf199bb7d52f45d890bd935f44508c5d9199932a71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "47baabc5af84d05923218ddf199bb7d52f45d890bd935f44508c5d9199932a71", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "47baabc5af84d05923218ddf199bb7d52f45d890bd935f44508c5d9199932a71", kill_on_drop: false }`
[INFO] [stdout] 47baabc5af84d05923218ddf199bb7d52f45d890bd935f44508c5d9199932a71
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 363c5390ce4a6b32a269b85b61ef90438ca3302f972de371dbc263f15a355242
[INFO] running `Command { std: "docker" "start" "-a" "363c5390ce4a6b32a269b85b61ef90438ca3302f972de371dbc263f15a355242", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling fuser v0.14.0
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking fs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DIRECT_POINTERS` and `DirectPointers`
[INFO] [stdout]  --> src/structure/inode_table.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BlockPointer, DirectPointers, InodePointer, BLOCKS_PER_INODE_MAP, DIRECT_POINTERS,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DIRECT_POINTERS` and `DirectPointers`
[INFO] [stdout]  --> src/structure/inode_table.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BlockPointer, DirectPointers, InodePointer, BLOCKS_PER_INODE_MAP, DIRECT_POINTERS,
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^                                      ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/structure/inode.rs:94:35
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn append_data(&mut self, data: Vec<u8>) {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPERBLOCK_SIZE` is never used
[INFO] [stdout]  --> src/consts.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) const SUPERBLOCK_SIZE: usize = 1024;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCKS_PER_INODE_MAP` is never used
[INFO] [stdout]  --> src/consts.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(crate) const BLOCKS_PER_INODE_MAP: usize = 10240;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECT_POINTERS` is never used
[INFO] [stdout]  --> src/consts.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const DIRECT_POINTERS: usize = 12;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_NAME_LENGTH` is never used
[INFO] [stdout]  --> src/consts.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) const FILE_NAME_LENGTH: usize = 255;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BlockPointer` is never used
[INFO] [stdout]  --> src/consts.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type BlockPointer = u64;
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InodePointer` is never used
[INFO] [stdout]  --> src/consts.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type InodePointer = u64;
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DirectPointers` is never used
[INFO] [stdout]  --> src/consts.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub type DirectPointers = [BlockPointer; DIRECT_POINTERS];
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DeviceDriver` is never used
[INFO] [stdout]  --> src/driver/mod.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait DeviceDriver {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileDrive` is never constructed
[INFO] [stdout]  --> src/driver/file_drive.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct FileDrive {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `open`, and `open_path` are never used
[INFO] [stdout]   --> src/driver/file_drive.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FileDrive {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] 12 |     pub fn new(name: &str, bytes: u64, sector_size: usize) -> FileDrive {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn open(file: File, sector_size: usize) -> FileDrive {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn open_path(path: &str, sector_size: usize) -> FileDrive {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TTL` is never used
[INFO] [stdout]   --> src/fuse/filesystem.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const TTL: Duration = Duration::new(100, 0);
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuseDriver` is never constructed
[INFO] [stdout]   --> src/fuse/filesystem.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct FuseDriver {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_fs_ref`, `get_mut_fs_ref`, `inode_to_fileattr`, `fileattr_to_metadata`, and `time_or_now_to_system_time` are never used
[INFO] [stdout]    --> src/fuse/filesystem.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl FuseDriver {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 150 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_fs_ref(&self) -> &JourneyFS {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn get_mut_fs_ref(&mut self) -> &mut JourneyFS {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn inode_to_fileattr(&self, inode: Inode<Metadata>) -> FileAttr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn fileattr_to_metadata(&self, attr: FileAttr) -> Metadata {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     fn time_or_now_to_system_time(time_or_now: TimeOrNow) -> SystemTime {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IO` is never constructed
[INFO] [stdout]  --> src/io/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) struct IO {
[INFO] [stdout]   |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/io/mod.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl IO {
[INFO] [stdout]    | ------- associated items in this implementation
[INFO] [stdout] 12 |     pub(crate) fn new<D: DeviceDriver + 'static>(drive: D, block_size: usize) -> IO {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(crate) fn get_block_size(&self) -> usize {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn get_block_count(&self) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub(crate) fn set_block_size(&mut self, block_size: usize) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) fn get_sector_size(&self) -> usize {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) fn get_sector_count(&self) -> u64 {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) fn write_block(&mut self, index: BlockPointer, block: &Vec<u8>) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub(crate) fn read_block(&self, index: BlockPointer) -> Vec<u8> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JourneyFS` is never constructed
[INFO] [stdout]   --> src/ops/mod.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct JourneyFS {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_block_size`, `mkdir`, `get_inode`, and `write_inode` are never used
[INFO] [stdout]   --> src/ops/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl JourneyFS {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 20 |     // TODO: "new" should probably not mount existing filesystems
[INFO] [stdout] 21 |     pub fn new<D: DeviceDriver + 'static>(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn get_block_size(&self) -> Result<usize, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn mkdir(
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_inode(&self, id: InodeId) -> Result<Inode<Metadata>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_inode(&mut self, inode: &mut Inode<Metadata>) -> Result<(), Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> src/ops/directory.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Entry {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `EntryList` is never used
[INFO] [stdout]   --> src/ops/directory.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub type EntryList = Vec<Entry>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Directory` is never constructed
[INFO] [stdout]   --> src/ops/directory.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Directory {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_inode`, `get_entries`, `add_entry`, `add_directory`, and `add_file` are never used
[INFO] [stdout]    --> src/ops/directory.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Directory {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  56 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn from_inode(inode: Inode<Metadata>) -> Directory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn get_entries(&self, structure: &Structure<Metadata>) -> EntryList {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     fn add_entry(&mut self, structure: &mut Structure<Metadata>, name: &OsString, id: InodeId) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn add_directory(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn add_file(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/ops/file.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct File {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_inode`, `set_data`, and `get_data` are never used
[INFO] [stdout]   --> src/ops/file.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl File {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(structure: &mut Structure<Metadata>, user_id: UserId, group_id: GroupId, permissions: u16) -> File {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn from_inode(inode: Inode<Metadata>) -> File {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn set_data(&mut self, structure: &mut Structure<Metadata>, data: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_data(&self, structure: &Structure<Metadata>) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InodeType` is never used
[INFO] [stdout]  --> src/ops/meta.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum InodeType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `UserId` is never used
[INFO] [stdout]  --> src/ops/meta.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type UserId = u32;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GroupId` is never used
[INFO] [stdout]   --> src/ops/meta.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type GroupId = u32;
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Metadata` is never constructed
[INFO] [stdout]   --> src/ops/meta.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Metadata {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ops/meta.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Metadata {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 27 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Structure` is never constructed
[INFO] [stdout]   --> src/structure/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Structure<META: ByteSerializable + KnownSize> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structure/mod.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl<META: ByteSerializable + KnownSize> Structure<META> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn is_initialized(io: &IO) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn new(mut io: IO, block_size: usize) -> Structure<META> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn mount(mut io: IO) -> Structure<META> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn set_root_inode(&mut self, inode: &mut Inode<META>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_root_inode(&self) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn create_inode(&mut self, meta: META) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn read_inode(&self, id: InodeId) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn write_inode(&mut self, inode: &mut Inode<META>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn get_block_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn allocate_block(&mut self) -> Option<BlockPointer> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn write_block(&mut self, index: BlockPointer, block: &Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn read_block(&self, index: BlockPointer) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockMap` is never constructed
[INFO] [stdout]  --> src/structure/blockmap.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct BlockMap {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structure/blockmap.rs:11:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl BlockMap {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  11 |     pub fn new(first_block: BlockPointer, block_count: u64, block_size: usize) -> BlockMap {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  25 |     pub fn read(io: &IO, index: BlockPointer) -> BlockMap {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     fn create_data(block_count: u64, block_size: usize) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  52 |     pub fn write_part(&self, io: &mut IO, including_index: BlockPointer) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn write_full(&self, io: &mut IO) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn allocate(&mut self, io: &mut IO) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn is_free(&self, index: BlockPointer) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn is_used(&self, index: BlockPointer) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     fn mark_used_mem(&mut self, index: BlockPointer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub(crate) fn mark_used(&mut self, io: &mut IO, index: BlockPointer) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn mark_free_mem(&mut self, index: BlockPointer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub(crate) fn mark_free(&mut self, io: &mut IO, index: BlockPointer) {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA_SIZE` is never used
[INFO] [stdout]  --> src/structure/inode.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const DATA_SIZE: usize = 96;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NULL_POINTER` is never used
[INFO] [stdout]  --> src/structure/inode.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const NULL_POINTER: BlockPointer = 0;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InodeId` is never used
[INFO] [stdout]   --> src/structure/inode.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type InodeId = u64;
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Inode` is never constructed
[INFO] [stdout]   --> src/structure/inode.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Inode<META: ByteSerializable + KnownSize> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structure/inode.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl<META: ByteSerializable + KnownSize> Inode<META> {
[INFO] [stdout]     | ---------------------------------------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn new(meta: META) -> Inode<META> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn set_id(&mut self, id: InodeId) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn from_bytes(id: InodeId, bytes: &Vec<u8>, block_size: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn size_on_disk() -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn set_data(&mut self, structure: &mut Structure<META>, data: Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn get_data(&self, structure: &Structure<META>) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn append_data(&mut self, data: Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn count_used_pointers(pointers: &DirectPointers) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn calculate_allocated_size(used_pointers: usize, block_size: usize) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn bytes_to_pointers(data: &[u8]) -> DirectPointers {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn pointers_to_bytes(pointers: DirectPointers) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn ensure_size(&mut self, structure: &mut Structure<META>, new_size: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn allocate_block(&mut self, structure: &mut Structure<META>) -> BlockPointer {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn deallocate_block(&mut self, structure: &mut Structure<META>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InodeTable` is never constructed
[INFO] [stdout]  --> src/structure/inode_table.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct InodeTable<META: ByteSerializable + KnownSize> {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structure/inode_table.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<META: ByteSerializable + KnownSize> InodeTable<META> {
[INFO] [stdout]     | --------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn create(index: BlockPointer, io: &mut IO) -> InodeTable<META> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn read(io: &IO, index: BlockPointer, inode_count: u64) -> InodeTable<META> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn read_inode(&self, io: &IO, index: InodePointer) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn write_inode(&mut self, io: &mut IO, inode: &mut Inode<META>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn inode_block(&self, index: InodePointer, block_size: usize) -> BlockPointer {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn inode_offset(index: InodePointer, block_size: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn allocate(&mut self, io: &mut IO) -> Option<InodePointer> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn mark_used_mem(&mut self, index: InodePointer) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn mark_used(&mut self, io: &mut IO, index: InodePointer) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn mark_free_mem(&mut self, index: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn mark_free(&mut self, io: &mut IO, index: InodePointer) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn calculate_inode_count(block_count: u64, block_size: usize) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn read_map(io: &IO, index: BlockPointer, inode_count: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn write_map(&self, io: &mut IO) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC` is never used
[INFO] [stdout]  --> src/structure/superblock.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const MAGIC: u32 = 0xdeadbeef;
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SuperBlock` is never constructed
[INFO] [stdout]  --> src/structure/superblock.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SuperBlock {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/structure/superblock.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl SuperBlock {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(block_size: usize, block_count: u64) -> SuperBlock {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn set_inode_count(&mut self, io: &mut IO, inode_count: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn set_root_inode(&mut self, io: &mut IO, root_inode: InodeId) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn read(io: &IO) -> Option<SuperBlock> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn from_buffer(buffer: &Vec<u8>) -> SuperBlock {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn to_buffer(&self) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn write(&self, io: &mut IO) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ErrorNum` is never used
[INFO] [stdout]  --> src/util/error.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type ErrorNum = c_int;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]  --> src/util/error.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Error {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/error.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Error {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(message: &str, error_num: Option<ErrorNum>) -> Error {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KILO_BYTE` is never used
[INFO] [stdout]  --> src/util/format.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const KILO_BYTE: u64 = 1024;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEGA_BYTE` is never used
[INFO] [stdout]  --> src/util/format.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const MEGA_BYTE: u64 = KILO_BYTE * 1024;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GIGA_BYTE` is never used
[INFO] [stdout]  --> src/util/format.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const GIGA_BYTE: u64 = MEGA_BYTE * 1024;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TERRA_BYTE` is never used
[INFO] [stdout]  --> src/util/format.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const TERRA_BYTE: u64 = GIGA_BYTE * 1024;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pretty_size_from_bytes` is never used
[INFO] [stdout]  --> src/util/format.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn pretty_size_from_bytes(bytes: u64) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ModeBits` is never used
[INFO] [stdout]  --> src/util/mode.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type ModeBits = u32;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PERMISSIONS_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const PERMISSIONS_MASK: ModeBits = 0o777;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_DIR_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const IS_DIR_MASK: ModeBits = 0o40000;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_FILE_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const IS_FILE_MASK: ModeBits = 0o100000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ModeBitsHelper` is never used
[INFO] [stdout]  --> src/util/mode.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait ModeBitsHelper {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ByteSerializable` is never used
[INFO] [stdout]  --> src/util/serializable.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait ByteSerializable {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `KnownSize` is never used
[INFO] [stdout]  --> src/util/serializable.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait KnownSize: ByteSerializable {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/structure/inode.rs:94:35
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn append_data(&mut self, data: Vec<u8>) {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `open` and `open_path` are never used
[INFO] [stdout]   --> src/driver/file_drive.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FileDrive {
[INFO] [stdout]    | -------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn open(file: File, sector_size: usize) -> FileDrive {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn open_path(path: &str, sector_size: usize) -> FileDrive {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TTL` is never used
[INFO] [stdout]   --> src/fuse/filesystem.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const TTL: Duration = Duration::new(100, 0);
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuseDriver` is never constructed
[INFO] [stdout]   --> src/fuse/filesystem.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct FuseDriver {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_fs_ref`, `get_mut_fs_ref`, `inode_to_fileattr`, `fileattr_to_metadata`, and `time_or_now_to_system_time` are never used
[INFO] [stdout]    --> src/fuse/filesystem.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl FuseDriver {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 150 |     fn new(
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_fs_ref(&self) -> &JourneyFS {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn get_mut_fs_ref(&mut self) -> &mut JourneyFS {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn inode_to_fileattr(&self, inode: Inode<Metadata>) -> FileAttr {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn fileattr_to_metadata(&self, attr: FileAttr) -> Metadata {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     fn time_or_now_to_system_time(time_or_now: TimeOrNow) -> SystemTime {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JourneyFS` is never constructed
[INFO] [stdout]   --> src/ops/mod.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct JourneyFS {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_block_size`, `mkdir`, `get_inode`, and `write_inode` are never used
[INFO] [stdout]   --> src/ops/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl JourneyFS {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 20 |     // TODO: "new" should probably not mount existing filesystems
[INFO] [stdout] 21 |     pub fn new<D: DeviceDriver + 'static>(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn get_block_size(&self) -> Result<usize, Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn mkdir(
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_inode(&self, id: InodeId) -> Result<Inode<Metadata>, Error> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn write_inode(&mut self, inode: &mut Inode<Metadata>) -> Result<(), Error> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_inode`, `add_directory`, and `add_file` are never used
[INFO] [stdout]    --> src/ops/directory.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Directory {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn from_inode(inode: Inode<Metadata>) -> Directory {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn add_directory(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn add_file(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/ops/file.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct File {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_inode`, `set_data`, and `get_data` are never used
[INFO] [stdout]   --> src/ops/file.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl File {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(structure: &mut Structure<Metadata>, user_id: UserId, group_id: GroupId, permissions: u16) -> File {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn from_inode(inode: Inode<Metadata>) -> File {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn set_data(&mut self, structure: &mut Structure<Metadata>, data: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn get_data(&self, structure: &Structure<Metadata>) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/structure/mod.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl<META: ByteSerializable + KnownSize> Structure<META> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  23 |     pub fn is_initialized(io: &IO) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn mount(mut io: IO) -> Structure<META> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn set_root_inode(&mut self, inode: &mut Inode<META>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn get_root_inode(&self) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn read_inode(&self, id: InodeId) -> Inode<META> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn write_inode(&mut self, inode: &mut Inode<META>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn write_block(&mut self, index: BlockPointer, block: &Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `append_data` is never used
[INFO] [stdout]   --> src/structure/inode.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<META: ByteSerializable + KnownSize> Inode<META> {
[INFO] [stdout]    | ---------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn append_data(&mut self, data: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_free_mem` and `mark_free` are never used
[INFO] [stdout]    --> src/structure/inode_table.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<META: ByteSerializable + KnownSize> InodeTable<META> {
[INFO] [stdout]     | --------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn mark_free_mem(&mut self, index: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn mark_free(&mut self, io: &mut IO, index: InodePointer) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ErrorNum` is never used
[INFO] [stdout]  --> src/util/error.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type ErrorNum = c_int;
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]  --> src/util/error.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Error {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/error.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Error {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(message: &str, error_num: Option<ErrorNum>) -> Error {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ModeBits` is never used
[INFO] [stdout]  --> src/util/mode.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub type ModeBits = u32;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PERMISSIONS_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const PERMISSIONS_MASK: ModeBits = 0o777;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_DIR_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const IS_DIR_MASK: ModeBits = 0o40000;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IS_FILE_MASK` is never used
[INFO] [stdout]  --> src/util/mode.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const IS_FILE_MASK: ModeBits = 0o100000;
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ModeBitsHelper` is never used
[INFO] [stdout]  --> src/util/mode.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait ModeBitsHelper {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.15s
[INFO] running `Command { std: "docker" "inspect" "363c5390ce4a6b32a269b85b61ef90438ca3302f972de371dbc263f15a355242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "363c5390ce4a6b32a269b85b61ef90438ca3302f972de371dbc263f15a355242", kill_on_drop: false }`
[INFO] [stdout] 363c5390ce4a6b32a269b85b61ef90438ca3302f972de371dbc263f15a355242
