2 个版本

0.1.5 2019 年 8 月 1 日
0.1.4 2019 年 4 月 5 日

FFI 中排名第 182

每月下载 39

Apache-2.0

11KB
127

cluConcatBytes

Build Status Apache licensed Documentation

将字面量合并到静态数组中。编译器插件。

使用

  1. 简单易用
#![feature(plugin)]
#![plugin(cluConcatBytes)]

fn main() {
	let c_str = concat_bytes!("cluWorld");
	//&'static [u8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(c_str, b"cluWorld");
	
	
	let c_str2 = concat_bytes!("clu", b"World");
	//&'static [u8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(c_str2, b"cluWorld");
	
	let c_str3 = concat_bytes!(
		b'c', b'l', b'u',
		b'W', b'o', b'r', b'l', b'd'
	);
	//&'static [u8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(c_str3, b"cluWorld");
	
	let c_str4 = concat_bytes!(
		"clu", b'W', b'o', b'r', b'l', b"d"
	);
	//&'static [u8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(c_str4, b"cluWorld");
	
	my_function(c_str);
	my_function(c_str2);
	my_function(c_str3);
	my_function(c_str4);
}

fn my_function(array:  &'static [u8]) {
	//'static --> it is possible not to write.
	
	println!("array: {:?}, len: {}", array, array.len());
}
  1. 原生使用
#![feature(plugin)]
#![plugin(cluConcatBytes)]

fn main() {
	let c_str = concat_bytes!(@"cluWorld");
	//[u8; 8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(&c_str, b"cluWorld");
	
	
	let c_str2 = concat_bytes!(@"cluWorld");
	//[u8; 8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(&c_str2, b"cluWorld");
	
	
	let c_str3 = concat_bytes!(@"clu", b"World");
	//[u8; 8]
	//array: [99, 108, 117, 87, 111, 114, 108, 100], len: 8
	assert_eq!(&c_str3, b"cluWorld");
	
	my_function(c_str);
	my_function(c_str2);
	my_function(c_str3);
}

fn my_function(array:  [u8; 8]) {
	//'static --> it is possible not to write.
	
	println!("array: {:?}, len: {}", array, array.len());
}

许可证

版权所有 2019 #UlinProject Denis Kotlyarov (Денис Котляров)

在 Apache 许可证,版本 2.0 下授权

无运行时依赖