Skip to content

Commit f801045

Browse files
authored
Merge pull request #511 from jturner314/document-conversions
Add table of conversions between array types
2 parents f7fb81f + 6255696 commit f801045

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed

src/lib.rs

+213
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ pub type Ixs = isize;
234234
/// + [Subviews](#subviews)
235235
/// + [Arithmetic Operations](#arithmetic-operations)
236236
/// + [Broadcasting](#broadcasting)
237+
/// + [Conversions Between Array Types](#conversions-between-array-types)
237238
/// + [Constructor Methods for Owned Arrays](#constructor-methods-for-owned-arrays)
238239
/// + [Methods For All Array Types](#methods-for-all-array-types)
239240
///
@@ -646,6 +647,218 @@ pub type Ixs = isize;
646647
/// );
647648
/// ```
648649
///
650+
/// ## Conversions Between Array Types
651+
///
652+
/// This table is a summary of the conversions between arrays of different
653+
/// ownership, dimensionality, and element type. All of the conversions in this
654+
/// table preserve the shape of the array.
655+
///
656+
/// <table>
657+
/// <tr>
658+
/// <th rowspan="2">Output</th>
659+
/// <th colspan="4">Input</th>
660+
/// </tr>
661+
///
662+
/// <tr>
663+
/// <td>
664+
///
665+
/// `Array<A, D>`
666+
///
667+
/// </td>
668+
/// <td>
669+
///
670+
/// `ArcArray<A, D>`
671+
///
672+
/// </td>
673+
/// <td>
674+
///
675+
/// `ArrayView<'a, A, D>`
676+
///
677+
/// </td>
678+
/// <td>
679+
///
680+
/// `ArrayViewMut<'a, A, D>`
681+
///
682+
/// </td>
683+
/// </tr>
684+
///
685+
/// <!--Conversions to `Array<A, D>`-->
686+
///
687+
/// <tr>
688+
/// <td>
689+
///
690+
/// `Array<A, D>`
691+
///
692+
/// </td>
693+
/// <td>
694+
///
695+
/// no-op
696+
///
697+
/// </td>
698+
/// <td>
699+
///
700+
/// [`a.into_owned()`][.into_owned()]
701+
///
702+
/// </td>
703+
/// <td>
704+
///
705+
/// [`a.to_owned()`][.to_owned()]
706+
///
707+
/// </td>
708+
/// <td>
709+
///
710+
/// [`a.to_owned()`][.to_owned()]
711+
///
712+
/// </td>
713+
/// </tr>
714+
///
715+
/// <!--Conversions to `ArcArray<A, D>`-->
716+
///
717+
/// <tr>
718+
/// <td>
719+
///
720+
/// `ArcArray<A, D>`
721+
///
722+
/// </td>
723+
/// <td>
724+
///
725+
/// [`a.into_shared()`][.into_shared()]
726+
///
727+
/// </td>
728+
/// <td>
729+
///
730+
/// no-op
731+
///
732+
/// </td>
733+
/// <td>
734+
///
735+
/// [`a.to_owned().into_shared()`][.into_shared()]
736+
///
737+
/// </td>
738+
/// <td>
739+
///
740+
/// [`a.to_owned().into_shared()`][.into_shared()]
741+
///
742+
/// </td>
743+
/// </tr>
744+
///
745+
/// <!--Conversions to `ArrayView<'b, A, D>`-->
746+
///
747+
/// <tr>
748+
/// <td>
749+
///
750+
/// `ArrayView<'b, A, D>`
751+
///
752+
/// </td>
753+
/// <td>
754+
///
755+
/// [`a.view()`][.view()]
756+
///
757+
/// </td>
758+
/// <td>
759+
///
760+
/// [`a.view()`][.view()]
761+
///
762+
/// </td>
763+
/// <td>
764+
///
765+
/// [`a.view()`][.view()] or [`a.reborrow()`][ArrayView::reborrow()]
766+
///
767+
/// </td>
768+
/// <td>
769+
///
770+
/// [`a.view()`][.view()]
771+
///
772+
/// </td>
773+
/// </tr>
774+
///
775+
/// <!--Conversions to `ArrayViewMut<'b, A, D>`-->
776+
///
777+
/// <tr>
778+
/// <td>
779+
///
780+
/// `ArrayViewMut<'b, A, D>`
781+
///
782+
/// </td>
783+
/// <td>
784+
///
785+
/// [`a.view_mut()`][.view_mut()]
786+
///
787+
/// </td>
788+
/// <td>
789+
///
790+
/// [`a.view_mut()`][.view_mut()]
791+
///
792+
/// </td>
793+
/// <td>
794+
///
795+
/// illegal
796+
///
797+
/// </td>
798+
/// <td>
799+
///
800+
/// [`a.view_mut()`][.view_mut()] or [`a.reborrow()`][ArrayViewMut::reborrow()]
801+
///
802+
/// </td>
803+
/// </tr>
804+
///
805+
/// <!--Conversions to equivalent with dim `D2`-->
806+
///
807+
/// <tr>
808+
/// <td>
809+
///
810+
/// equivalent with dim `D2` (e.g. converting from dynamic dim to const dim)
811+
///
812+
/// </td>
813+
/// <td colspan="4">
814+
///
815+
/// [`a.into_dimensionality::<D2>()`][.into_dimensionality()]
816+
///
817+
/// </td>
818+
/// </tr>
819+
///
820+
/// <!--Conversions to equivalent with dim `IxDyn`-->
821+
///
822+
/// <tr>
823+
/// <td>
824+
///
825+
/// equivalent with dim `IxDyn`
826+
///
827+
/// </td>
828+
/// <td colspan="4">
829+
///
830+
/// [`a.into_dyn()`][.into_dyn()]
831+
///
832+
/// </td>
833+
/// </tr>
834+
///
835+
/// <!--Conversions to `Array<B, D>`-->
836+
///
837+
/// <tr>
838+
/// <td>
839+
///
840+
/// `Array<B, D>` (new element type)
841+
///
842+
/// </td>
843+
/// <td colspan="4">
844+
///
845+
/// [`a.map(|x| x.do_your_conversion())`][.map()]
846+
///
847+
/// </td>
848+
/// </tr>
849+
/// </table>
850+
///
851+
/// [ArrayView::reborrow()]: type.ArrayView.html#method.reborrow
852+
/// [ArrayViewMut::reborrow()]: type.ArrayViewMut.html#method.reborrow
853+
/// [.into_dimensionality()]: #method.into_dimensionality
854+
/// [.into_dyn()]: #method.into_dyn
855+
/// [.into_owned()]: #method.into_owned
856+
/// [.into_shared()]: #method.into_shared
857+
/// [.to_owned()]: #method.to_owned
858+
/// [.map()]: #method.map
859+
/// [.view()]: #method.view
860+
/// [.view_mut()]: #method.view_mut
861+
///
649862
pub struct ArrayBase<S, D>
650863
where S: Data
651864
{

0 commit comments

Comments
 (0)