#binary #string-conversion #string #hex #conversion #convert-hex #byte-slice

to-binary

将十六进制、UTF-8、字节向量或字节切片转换为二进制字符串,并实现了许多对二进制字符串有用的函数

5个版本 (3个重大更新)

0.4.0 2021年1月11日
0.3.0 2020年6月5日
0.2.1 2020年5月18日
0.2.0 2020年5月18日
0.1.0 2020年5月17日

#1778 in 编码

Download history 230/week @ 2024-03-13 478/week @ 2024-03-20 226/week @ 2024-03-27 143/week @ 2024-04-03 159/week @ 2024-04-10 58/week @ 2024-04-17 87/week @ 2024-04-24 59/week @ 2024-05-01 82/week @ 2024-05-08 145/week @ 2024-05-15 186/week @ 2024-05-22 264/week @ 2024-05-29 162/week @ 2024-06-05 146/week @ 2024-06-12 129/week @ 2024-06-19 179/week @ 2024-06-26

每月700次下载

MIT/Apache

20KB
245

To-Binary: 一个用于转换为BinaryString的Rust包

Crates.io Crates.io Build Status

一个用于转换为新类型BinaryString的Rust库。BinaryString是一个单字段元组结构体,它包含一个BinaryStringBinaryWhitespaceString,并且是类型String

它允许

  • 断言给定输入是否为二进制字符串
  • 断言位数/字节
  • 计算位和字节
  • 在字节之间添加/删除空白

如何使用

阅读 示例文档

转换为BinaryString

以下示例展示了如何将一种类型转换为BinaryString类型。

use to_binary::{BinaryString,BinaryError};

fn main(){
    // Hexadecimal
    let hex = BinaryString::from_hex("2879E653864EA6047FEBBBD9AE6DA8DA").unwrap();
    
    // String
    let x = BinaryString::from(String::from("Test"));
    assert_eq!(bin_string_2,"01010100011001010111001101110100")
  
  	// str
  	let y = BinaryString::from("Hello World");
  
  	// Byte
  	let byte = BinaryString::from(118u8);
  	
  	// Vector
  	let vector = vec![36,57,123,38,2];
  	let bin_vector = BinaryString::from(vector);
}

BinaryString中添加或删除空白

此示例展示了如何在字节之间添加空白或从BinaryString中删除空白。

use to_binary::{BinaryString,BinaryError};

fn test_whitespace() {
        // Conversion To `BinaryString` Struct From Hex
        let x: BinaryString = BinaryString::from_hex("FF8628AA").unwrap();

        // Creates New Struct With Spaces
        let with_spaces: BinaryString = x.add_spaces().unwrap();

        // Removes Spaces And Creates New Struct
        let removed_spaces: BinaryString = with_spaces.remove_spaces();

        // Prints Out Information
        println!("x: {}", x);
        println!("with_spaces : {}", with_spaces);
        println!("removed spaces: {}", removed_spaces);

        let is_true: bool = with_spaces.assert_binary_whitespace();

        // Asserts It Works And The Answer Without Spaces Is Same As Initial
        assert_eq!(is_true, true);
        assert_eq!(x, removed_spaces);
}

BinaryString上使用二进制方法

有很多可用的BinaryString方法。以下是一些可能有用的方法。

fn main(){
  	// Conversion To `BinaryString` Struct From Hex
  	let x: BinaryString = BinaryString::from_hex("FF8628AA").unwrap();
  
  	// Checks Whether The Input Is Binary
    let check_if_binary: bool = x.assert_binary();

    // Assert Input Is Binary
    assert_eq!(check_if_binary, true);

    // Retrieve Sizes Of Binary Input (Bits and Bytes)
    let size_in_bits = x.bits().unwrap();
    let size_in_bytes = x.bytes().unwrap();

    // Verifies Sizes Of Binary Inputs
    let verify_bit_length: bool = x.assert_bit_length(size_in_bits);
    let verify_byte_length: bool = x.assert_byte_length(size_in_bytes);

    // Assert Sizes Are Correct
    assert_eq!(verify_bit_length, true);
    assert_eq!(verify_byte_length, true);
}

许可证

以下任一许可证下许可

  • Apache许可证,版本2.0

  • MIT许可证

任选其一。

贡献

除非您明确声明,否则您提交给作品以供包含在内的任何有意贡献,根据Apache-2.0许可证定义,应按上述方式双重许可,无需任何额外条款或条件。

依赖项

~22KB