(ty: &'a TypeOption, r: &'a Option<Box<Val>>)
| 844 | } |
| 845 | |
| 846 | fn option<'a>(ty: &'a TypeOption, r: &'a Option<Box<Val>>) -> GenericVariant<'a> { |
| 847 | let (discriminant, payload) = match r { |
| 848 | None => (0, None), |
| 849 | Some(val) => (1, Some((&**val, ty.ty))), |
| 850 | }; |
| 851 | GenericVariant { |
| 852 | discriminant, |
| 853 | payload, |
| 854 | abi: &ty.abi, |
| 855 | info: &ty.info, |
| 856 | } |
| 857 | } |
| 858 | |
| 859 | fn enum_<'a>(ty: &'a TypeEnum, discriminant: &str) -> Result<GenericVariant<'a>> { |
| 860 | let discriminant = get_enum_discriminant(ty, discriminant)?; |