Macro malachite_base::random_unions
source · [−]macro_rules! random_unions {
(
($($vis:tt)*),
$union: ident,
$random_struct: ident,
$random_fn: ident,
$n: expr,
$([$i: expr, $t: ident, $it: ident, $variant: ident, $xs: ident, $xs_gen: ident]),*
) => { ... };
}
Expand description
Defines random union generators.
Malachite provides random_union2s
, but you can also define random_union3s
,
random_union4s
, and so on, in your program using the code below. The documentation for
random_union2s
describes these other functions as well.
See usage examples here.
use malachite_base::num::random::{random_unsigned_range, RandomUnsignedRange};
use malachite_base::random::Seed;
use malachite_base::unions::UnionFromStrError;
use std::fmt::{self, Display, Formatter};
use std::str::FromStr;
union_struct!(
(pub(crate)),
Union3,
Union3<T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c]
);
union_struct!(
(pub(crate)),
Union4,
Union4<T, T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c],
[D, D, 'D', d]
);
union_struct!(
(pub(crate)),
Union5,
Union5<T, T, T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c],
[D, D, 'D', d],
[E, E, 'E', e]
);
union_struct!(
(pub(crate)),
Union6,
Union6<T, T, T, T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c],
[D, D, 'D', d],
[E, E, 'E', e],
[F, F, 'F', f]
);
union_struct!(
(pub(crate)),
Union7,
Union7<T, T, T, T, T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c],
[D, D, 'D', d],
[E, E, 'E', e],
[F, F, 'F', f],
[G, G, 'G', g]
);
union_struct!(
(pub(crate)),
Union8,
Union8<T, T, T, T, T, T, T, T>,
[A, A, 'A', a],
[B, B, 'B', b],
[C, C, 'C', c],
[D, D, 'D', d],
[E, E, 'E', e],
[F, F, 'F', f],
[G, G, 'G', g],
[H, H, 'H', h]
);
random_unions!(
(pub(crate)),
Union3,
RandomUnion3s,
random_union3s,
3,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen]
);
random_unions!(
(pub(crate)),
Union4,
RandomUnion4s,
random_union4s,
4,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen],
[3, W, L, D, ws, ws_gen]
);
random_unions!(
(pub(crate)),
Union5,
RandomUnion5s,
random_union5s,
5,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen],
[3, W, L, D, ws, ws_gen],
[4, V, M, E, vs, vs_gen]
);
random_unions!(
(pub(crate)),
Union6,
RandomUnion6s,
random_union6s,
6,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen],
[3, W, L, D, ws, ws_gen],
[4, V, M, E, vs, vs_gen],
[5, U, N, F, us, us_gen]
);
random_unions!(
(pub(crate)),
Union7,
RandomUnion7s,
random_union7s,
7,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen],
[3, W, L, D, ws, ws_gen],
[4, V, M, E, vs, vs_gen],
[5, U, N, F, us, us_gen],
[6, T, O, G, ts, ts_gen]
);
random_unions!(
(pub(crate)),
Union8,
RandomUnion8s,
random_union8s,
8,
[0, X, I, A, xs, xs_gen],
[1, Y, J, B, ys, ys_gen],
[2, Z, K, C, zs, zs_gen],
[3, W, L, D, ws, ws_gen],
[4, V, M, E, vs, vs_gen],
[5, U, N, F, us, us_gen],
[6, T, O, G, ts, ts_gen],
[7, S, P, H, ss, ss_gen]
);