keypropdecode

Crates.iokeypropdecode
lib.rskeypropdecode
version2.0.3
sourcesrc
created_at2023-12-20 09:52:24.67719
updated_at2024-01-18 11:49:41.997918
descriptionA library for decoding Windows file system elements attributes constants
homepagehttps://crates.io/crates/keypropdecode
repositoryhttps://github.com/kinire98/keypropdecode
max_upload_size
id1075154
size49,211
Iker Nieto (kinire98)

documentation

https://docs.rs/keypropdecode/latest/keypropdecode/

README

keypropdecode

A library for decoding windows file system element properties.
Since Windows stores these properties as a number and each individual property is stored in a determined bit of that number, decoding it can bloat the code.
This library attemps to solve this. You can use this crate with different purposes:

  1. You can provide an u32, with the From trait, and get back a Props instance with the correspondent properties.
  2. You can provide a PathBuf or a reference to it, with the TryFrom trait, and you won't have to extract the correspondent properties. You can also provide a valid &str.
  3. With the properties correctly set you can get the u32 correpondent to those properties you set. The library will ensure you don't set invalid states
  4. The Display implementation of the struct return a String identical as the one that prints with GetChild-Item in PowerShell, which are the most commonly used.

For reference with all the file system element properties go to the Microsoft File Attribute Constants Documentation.
The implementation of the library uses enums to make invalid states unrepresentable.
It is strongly recommended that if you don't know what a property does, don't change it.

Example

use keypropdecode::Props;
let mut props = Props::default();
props.change_element_type(ArcDir::Archive(ArchiveProps::default()));
assert_eq!(Props::try_from(r"hidden_file_example.txt").unwrap(), props);
Commit count: 0

cargo fmt