|
3 | 3 | use std::mem::size_of; |
4 | 4 | use std::ops::*; |
5 | 5 | use std::iter::*; |
6 | | -use std::convert::TryFrom; |
7 | 6 | use std::num::TryFromIntError; |
8 | 7 | use std::num::ParseIntError; |
9 | 8 | use std::fmt; |
10 | 9 | use std::str::FromStr; |
| 10 | +use __crate::traits::TryFrom; |
| 11 | +use __crate::traits::FromLossy; |
11 | 12 | use __crate::internal::cfg_if::cfg_if; |
12 | 13 |
|
| 14 | + |
13 | 15 | /// A type representing a gf(2) polynomial |
14 | 16 | #[allow(non_camel_case_types)] |
15 | 17 | #[derive(Default, Copy, Clone, Eq, PartialEq, Hash)] |
@@ -685,6 +687,70 @@ impl TryFrom<__crate::p128> for __p { |
685 | 687 | } |
686 | 688 | } |
687 | 689 |
|
| 690 | +#[cfg(__if(__width < 16))] |
| 691 | +impl FromLossy<u16> for __p { |
| 692 | + #[inline] |
| 693 | + fn from_lossy(x: u16) -> __p { |
| 694 | + __p(x as __u) |
| 695 | + } |
| 696 | +} |
| 697 | + |
| 698 | +#[cfg(__if(__width < 32))] |
| 699 | +impl FromLossy<u32> for __p { |
| 700 | + #[inline] |
| 701 | + fn from_lossy(x: u32) -> __p { |
| 702 | + __p(x as __u) |
| 703 | + } |
| 704 | +} |
| 705 | + |
| 706 | +#[cfg(__if(__width < 64))] |
| 707 | +impl FromLossy<u64> for __p { |
| 708 | + #[inline] |
| 709 | + fn from_lossy(x: u64) -> __p { |
| 710 | + __p(x as __u) |
| 711 | + } |
| 712 | +} |
| 713 | + |
| 714 | +#[cfg(__if(__width < 128))] |
| 715 | +impl FromLossy<u128> for __p { |
| 716 | + #[inline] |
| 717 | + fn from_lossy(x: u128) -> __p { |
| 718 | + __p(x as __u) |
| 719 | + } |
| 720 | +} |
| 721 | + |
| 722 | +#[cfg(__if(__width < 16))] |
| 723 | +impl FromLossy<__crate::p16> for __p { |
| 724 | + #[inline] |
| 725 | + fn from_lossy(x: __crate::p16) -> __p { |
| 726 | + __p(x.0 as __u) |
| 727 | + } |
| 728 | +} |
| 729 | + |
| 730 | +#[cfg(__if(__width < 32))] |
| 731 | +impl FromLossy<__crate::p32> for __p { |
| 732 | + #[inline] |
| 733 | + fn from_lossy(x: __crate::p32) -> __p { |
| 734 | + __p(x.0 as __u) |
| 735 | + } |
| 736 | +} |
| 737 | + |
| 738 | +#[cfg(__if(__width < 64))] |
| 739 | +impl FromLossy<__crate::p64> for __p { |
| 740 | + #[inline] |
| 741 | + fn from_lossy(x: __crate::p64) -> __p { |
| 742 | + __p(x.0 as __u) |
| 743 | + } |
| 744 | +} |
| 745 | + |
| 746 | +#[cfg(__if(__width < 128))] |
| 747 | +impl FromLossy<__crate::p128> for __p { |
| 748 | + #[inline] |
| 749 | + fn from_lossy(x: __crate::p128) -> __p { |
| 750 | + __p(x.0 as __u) |
| 751 | + } |
| 752 | +} |
| 753 | + |
688 | 754 |
|
689 | 755 | //// Conversions from __p //// |
690 | 756 |
|
@@ -763,6 +829,155 @@ impl TryFrom<__p> for u64 { |
763 | 829 | } |
764 | 830 | } |
765 | 831 |
|
| 832 | +#[cfg(__if(__width > 8))] |
| 833 | +impl FromLossy<__p> for u8 { |
| 834 | + #[inline] |
| 835 | + fn from_lossy(x: __p) -> u8 { |
| 836 | + x.0 as u8 |
| 837 | + } |
| 838 | +} |
| 839 | + |
| 840 | +#[cfg(__if(__width > 16))] |
| 841 | +impl FromLossy<__p> for u16 { |
| 842 | + #[inline] |
| 843 | + fn from_lossy(x: __p) -> u16 { |
| 844 | + x.0 as u16 |
| 845 | + } |
| 846 | +} |
| 847 | + |
| 848 | +#[cfg(__if(__width > 32))] |
| 849 | +impl FromLossy<__p> for u32 { |
| 850 | + #[inline] |
| 851 | + fn from_lossy(x: __p) -> u32 { |
| 852 | + x.0 as u32 |
| 853 | + } |
| 854 | +} |
| 855 | + |
| 856 | +#[cfg(__if(__width > 64))] |
| 857 | +impl FromLossy<__p> for u64 { |
| 858 | + #[inline] |
| 859 | + fn from_lossy(x: __p) -> u64 { |
| 860 | + x.0 as u64 |
| 861 | + } |
| 862 | +} |
| 863 | + |
| 864 | +#[cfg(__if(__width < 16))] |
| 865 | +impl From<__p> for i16 { |
| 866 | + #[inline] |
| 867 | + fn from(x: __p) -> i16 { |
| 868 | + i16::from(x.0) |
| 869 | + } |
| 870 | +} |
| 871 | + |
| 872 | +#[cfg(__if(__width < 32))] |
| 873 | +impl From<__p> for i32 { |
| 874 | + #[inline] |
| 875 | + fn from(x: __p) -> i32 { |
| 876 | + i32::from(x.0) |
| 877 | + } |
| 878 | +} |
| 879 | + |
| 880 | +#[cfg(__if(__width < 64))] |
| 881 | +impl From<__p> for i64 { |
| 882 | + #[inline] |
| 883 | + fn from(x: __p) -> i64 { |
| 884 | + i64::from(x.0) |
| 885 | + } |
| 886 | +} |
| 887 | + |
| 888 | +#[cfg(__if(__width < 128))] |
| 889 | +impl From<__p> for i128 { |
| 890 | + #[inline] |
| 891 | + fn from(x: __p) -> i128 { |
| 892 | + i128::from(x.0) |
| 893 | + } |
| 894 | +} |
| 895 | + |
| 896 | +#[cfg(__if(__width >= 8))] |
| 897 | +impl TryFrom<__p> for i8 { |
| 898 | + type Error = TryFromIntError; |
| 899 | + #[inline] |
| 900 | + fn try_from(x: __p) -> Result<i8, Self::Error> { |
| 901 | + i8::try_from(x.0) |
| 902 | + } |
| 903 | +} |
| 904 | + |
| 905 | +#[cfg(__if(__width >= 16))] |
| 906 | +impl TryFrom<__p> for i16 { |
| 907 | + type Error = TryFromIntError; |
| 908 | + #[inline] |
| 909 | + fn try_from(x: __p) -> Result<i16, Self::Error> { |
| 910 | + i16::try_from(x.0) |
| 911 | + } |
| 912 | +} |
| 913 | + |
| 914 | +#[cfg(__if(__width >= 32))] |
| 915 | +impl TryFrom<__p> for i32 { |
| 916 | + type Error = TryFromIntError; |
| 917 | + #[inline] |
| 918 | + fn try_from(x: __p) -> Result<i32, Self::Error> { |
| 919 | + i32::try_from(x.0) |
| 920 | + } |
| 921 | +} |
| 922 | + |
| 923 | +#[cfg(__if(__width >= 64))] |
| 924 | +impl TryFrom<__p> for i64 { |
| 925 | + type Error = TryFromIntError; |
| 926 | + #[inline] |
| 927 | + fn try_from(x: __p) -> Result<i64, Self::Error> { |
| 928 | + i64::try_from(x.0) |
| 929 | + } |
| 930 | +} |
| 931 | + |
| 932 | +#[cfg(__if(__width >= 128))] |
| 933 | +impl TryFrom<__p> for i128 { |
| 934 | + type Error = TryFromIntError; |
| 935 | + #[inline] |
| 936 | + fn try_from(x: __p) -> Result<i128, Self::Error> { |
| 937 | + i128::try_from(x.0) |
| 938 | + } |
| 939 | +} |
| 940 | + |
| 941 | +#[cfg(__if(__width >= 8))] |
| 942 | +impl FromLossy<__p> for i8 { |
| 943 | + #[inline] |
| 944 | + fn from_lossy(x: __p) -> i8 { |
| 945 | + x.0 as i8 |
| 946 | + } |
| 947 | +} |
| 948 | + |
| 949 | +#[cfg(__if(__width >= 16))] |
| 950 | +impl FromLossy<__p> for i16 { |
| 951 | + #[inline] |
| 952 | + fn from_lossy(x: __p) -> i16 { |
| 953 | + x.0 as i16 |
| 954 | + } |
| 955 | +} |
| 956 | + |
| 957 | +#[cfg(__if(__width >= 32))] |
| 958 | +impl FromLossy<__p> for i32 { |
| 959 | + #[inline] |
| 960 | + fn from_lossy(x: __p) -> i32 { |
| 961 | + x.0 as i32 |
| 962 | + } |
| 963 | +} |
| 964 | + |
| 965 | +#[cfg(__if(__width >= 64))] |
| 966 | +impl FromLossy<__p> for i64 { |
| 967 | + #[inline] |
| 968 | + fn from_lossy(x: __p) -> i64 { |
| 969 | + x.0 as i64 |
| 970 | + } |
| 971 | +} |
| 972 | + |
| 973 | +#[cfg(__if(__width >= 128))] |
| 974 | +impl FromLossy<__p> for i128 { |
| 975 | + #[inline] |
| 976 | + fn from_lossy(x: __p) -> i128 { |
| 977 | + x.0 as i128 |
| 978 | + } |
| 979 | +} |
| 980 | + |
766 | 981 |
|
767 | 982 | //// Negate //// |
768 | 983 |
|
|
0 commit comments