@@ -480,14 +480,14 @@ impl<T> LogicalSize<T> {
480
480
}
481
481
}
482
482
483
- impl < T : Copy > LogicalSize < T > {
483
+ impl < T : Clone > LogicalSize < T > {
484
484
#[ inline]
485
485
pub fn width ( & self , mode : WritingMode ) -> T {
486
486
self . debug_writing_mode . check ( mode) ;
487
487
if mode. is_vertical ( ) {
488
- self . block
488
+ self . block . clone ( )
489
489
} else {
490
- self . inline
490
+ self . inline . clone ( )
491
491
}
492
492
}
493
493
@@ -505,9 +505,9 @@ impl<T: Copy> LogicalSize<T> {
505
505
pub fn height ( & self , mode : WritingMode ) -> T {
506
506
self . debug_writing_mode . check ( mode) ;
507
507
if mode. is_vertical ( ) {
508
- self . inline
508
+ self . inline . clone ( )
509
509
} else {
510
- self . block
510
+ self . block . clone ( )
511
511
}
512
512
}
513
513
@@ -525,17 +525,17 @@ impl<T: Copy> LogicalSize<T> {
525
525
pub fn to_physical ( & self , mode : WritingMode ) -> Size2D < T > {
526
526
self . debug_writing_mode . check ( mode) ;
527
527
if mode. is_vertical ( ) {
528
- Size2D :: new ( self . block , self . inline )
528
+ Size2D :: new ( self . block . clone ( ) , self . inline . clone ( ) )
529
529
} else {
530
- Size2D :: new ( self . inline , self . block )
530
+ Size2D :: new ( self . inline . clone ( ) , self . block . clone ( ) )
531
531
}
532
532
}
533
533
534
534
#[ inline]
535
535
pub fn convert ( & self , mode_from : WritingMode , mode_to : WritingMode ) -> LogicalSize < T > {
536
536
if mode_from == mode_to {
537
537
self . debug_writing_mode . check ( mode_from) ;
538
- * self
538
+ self . clone ( )
539
539
} else {
540
540
LogicalSize :: from_physical ( mode_to, self . to_physical ( mode_from) )
541
541
}
@@ -908,23 +908,23 @@ impl<T> LogicalMargin<T> {
908
908
}
909
909
}
910
910
911
- impl < T : Copy > LogicalMargin < T > {
911
+ impl < T : Clone > LogicalMargin < T > {
912
912
#[ inline]
913
913
pub fn new_all_same ( mode : WritingMode , value : T ) -> LogicalMargin < T > {
914
- LogicalMargin :: new ( mode, value, value, value, value)
914
+ LogicalMargin :: new ( mode, value. clone ( ) , value. clone ( ) , value. clone ( ) , value)
915
915
}
916
916
917
917
#[ inline]
918
918
pub fn top ( & self , mode : WritingMode ) -> T {
919
919
self . debug_writing_mode . check ( mode) ;
920
920
if mode. is_vertical ( ) {
921
921
if mode. is_inline_tb ( ) {
922
- self . inline_start
922
+ self . inline_start . clone ( )
923
923
} else {
924
- self . inline_end
924
+ self . inline_end . clone ( )
925
925
}
926
926
} else {
927
- self . block_start
927
+ self . block_start . clone ( )
928
928
}
929
929
}
930
930
@@ -947,15 +947,15 @@ impl<T: Copy> LogicalMargin<T> {
947
947
self . debug_writing_mode . check ( mode) ;
948
948
if mode. is_vertical ( ) {
949
949
if mode. is_vertical_lr ( ) {
950
- self . block_end
950
+ self . block_end . clone ( )
951
951
} else {
952
- self . block_start
952
+ self . block_start . clone ( )
953
953
}
954
954
} else {
955
955
if mode. is_bidi_ltr ( ) {
956
- self . inline_end
956
+ self . inline_end . clone ( )
957
957
} else {
958
- self . inline_start
958
+ self . inline_start . clone ( )
959
959
}
960
960
}
961
961
}
@@ -983,12 +983,12 @@ impl<T: Copy> LogicalMargin<T> {
983
983
self . debug_writing_mode . check ( mode) ;
984
984
if mode. is_vertical ( ) {
985
985
if mode. is_inline_tb ( ) {
986
- self . inline_end
986
+ self . inline_end . clone ( )
987
987
} else {
988
- self . inline_start
988
+ self . inline_start . clone ( )
989
989
}
990
990
} else {
991
- self . block_end
991
+ self . block_end . clone ( )
992
992
}
993
993
}
994
994
@@ -1011,15 +1011,15 @@ impl<T: Copy> LogicalMargin<T> {
1011
1011
self . debug_writing_mode . check ( mode) ;
1012
1012
if mode. is_vertical ( ) {
1013
1013
if mode. is_vertical_lr ( ) {
1014
- self . block_start
1014
+ self . block_start . clone ( )
1015
1015
} else {
1016
- self . block_end
1016
+ self . block_end . clone ( )
1017
1017
}
1018
1018
} else {
1019
1019
if mode. is_bidi_ltr ( ) {
1020
- self . inline_start
1020
+ self . inline_start . clone ( )
1021
1021
} else {
1022
- self . inline_end
1022
+ self . inline_end . clone ( )
1023
1023
}
1024
1024
}
1025
1025
}
@@ -1051,28 +1051,28 @@ impl<T: Copy> LogicalMargin<T> {
1051
1051
let left;
1052
1052
if mode. is_vertical ( ) {
1053
1053
if mode. is_vertical_lr ( ) {
1054
- left = self . block_start ;
1055
- right = self . block_end ;
1054
+ left = self . block_start . clone ( ) ;
1055
+ right = self . block_end . clone ( ) ;
1056
1056
} else {
1057
- right = self . block_start ;
1058
- left = self . block_end ;
1057
+ right = self . block_start . clone ( ) ;
1058
+ left = self . block_end . clone ( ) ;
1059
1059
}
1060
1060
if mode. is_inline_tb ( ) {
1061
- top = self . inline_start ;
1062
- bottom = self . inline_end ;
1061
+ top = self . inline_start . clone ( ) ;
1062
+ bottom = self . inline_end . clone ( ) ;
1063
1063
} else {
1064
- bottom = self . inline_start ;
1065
- top = self . inline_end ;
1064
+ bottom = self . inline_start . clone ( ) ;
1065
+ top = self . inline_end . clone ( ) ;
1066
1066
}
1067
1067
} else {
1068
- top = self . block_start ;
1069
- bottom = self . block_end ;
1068
+ top = self . block_start . clone ( ) ;
1069
+ bottom = self . block_end . clone ( ) ;
1070
1070
if mode. is_bidi_ltr ( ) {
1071
- left = self . inline_start ;
1072
- right = self . inline_end ;
1071
+ left = self . inline_start . clone ( ) ;
1072
+ right = self . inline_end . clone ( ) ;
1073
1073
} else {
1074
- right = self . inline_start ;
1075
- left = self . inline_end ;
1074
+ right = self . inline_start . clone ( ) ;
1075
+ left = self . inline_end . clone ( ) ;
1076
1076
}
1077
1077
}
1078
1078
SideOffsets2D :: new ( top, right, bottom, left)
@@ -1082,7 +1082,7 @@ impl<T: Copy> LogicalMargin<T> {
1082
1082
pub fn convert ( & self , mode_from : WritingMode , mode_to : WritingMode ) -> LogicalMargin < T > {
1083
1083
if mode_from == mode_to {
1084
1084
self . debug_writing_mode . check ( mode_from) ;
1085
- * self
1085
+ self . clone ( )
1086
1086
} else {
1087
1087
LogicalMargin :: from_physical ( mode_to, self . to_physical ( mode_from) )
1088
1088
}
0 commit comments