この質問への回答により、 Data.Vector.Unboxed.UnboxのインスタンスからForeign.Storable.Storableのインスタンスを構築できるようにしたいと考えています(逆も同様です)。これは可能ですか?
私が知っている最も近いものはvector-th-unboxですが、これは unboxable インスタンスを作成するだけです。
この質問への回答により、 Data.Vector.Unboxed.UnboxのインスタンスからForeign.Storable.Storableのインスタンスを構築できるようにしたいと考えています(逆も同様です)。これは可能ですか?
私が知っている最も近いものはvector-th-unboxですが、これは unboxable インスタンスを作成するだけです。
unbox から storable に移行するためのひどくハックな方法を想像することはできますが、それは本当にハックで非効率的です! 実際、それをやり遂げたので、実際には書きたくありません。アンボックスでできることは、ボックス化されていないベクターで作業することだけです。したがって、ボックス化されていないベクトルをシングルトン要素で初期化できます。上記の要素を指定すると、それを保持するベクターを作成し、ベクターを悪意でこじ開けて、Storable インスタンスにバイトを直接使用できます。あなたは同じように悪意を持って反対に行くことができます。
しかし、なぜあなたがこれをやりたいのかわかりません。デフォルトで Storable であるほとんどのデータ型は Unbox でもあり、その逆も同様です。そうでない人にとっては、手動またはツールを使用して、Storable を簡単に派生させることができます。