#clucompany #macro #no-std #goto-macro

无 std goto

goto 操作符的安全但不完整的实现

2 个版本

0.1.2 2019年10月19日
0.1.1 2019年10月17日

#2257开发工具

23 每月下载量
用于 macro_tt_utils

MIT/Apache 许可协议

9KB
84

Goto

goto 操作符的安全但不完整实现。

Build Status Mit/Apache licensed Documentation

注意!!

  1. 目前,这并不是 goto 操作符的完整实现。
  2. 我们不打算违反 Rust 的安全标准。我们提供了有用且有趣的宏,它们部分(或全部)实现了 goto 操作符。

gpoint

"GOTO point",允许您稍后返回到此行。

#[macro_use]
extern crate goto;

fn main() {
	let data = b"1234567890";
	let mut iter = data.iter();
	let mut a;

	gpoint!['begin:
		a = iter.next();
		match a {
			a @ Some(b'0') if a == Some(&b'9') => {
				println!("#a 0!");
				
				gpoint!['add:
					
				];
			},
			Some(a) => {
				println!("#a {}", unsafe { std::char::from_u32_unchecked(*a as u32) });
				continue 'begin;
			},
			_ => break 'begin,
		}
		
	];
}

许可证

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

MIT 许可协议下授权

Apache 许可协议第 2.0 版下授权

无运行时依赖