pub fn field_elements(&self) -> (FieldElement<C>, FieldElement<C>) {
        if self.is_identity().into() {
            return (FieldElement::<C>::ZERO, FieldElement::<C>::ZERO);
        }

        let bytes = self.inner.to_le_bytes();

        let mut x_bytes: [u8; FIELD_BYTES_SIZE_USIZE] =
            bytes[..FIELD_BYTES_SIZE_USIZE].try_into().unwrap();

        x_bytes.reverse();

        let mut y_bytes: [u8; FIELD_BYTES_SIZE_USIZE] =
            bytes[FIELD_BYTES_SIZE_USIZE..].try_into().unwrap();

        y_bytes.reverse();

        let x = FieldElement::<C>::from_bytes(&x_bytes.into()).unwrap();
        let y = FieldElement::<C>::from_bytes(&y_bytes.into()).unwrap();
        (x, y)
    }
Get the x and y field elements of the point.

The returned elements are always normalized.
crates/zkvm/lib/src/ecdsa/affine.rs