@@ -533,6 +533,57 @@ public byte[] AsByteArray()
533533 return Hash . ToArray ( ) ;
534534 }
535535
536+ /// <summary>
537+ /// <inheritdoc/>
538+ /// </summary>
539+ /// <param name="start"><inheritdoc/></param>
540+ /// <param name="length"><inheritdoc/></param>
541+ /// <returns><inheritdoc/></returns>
542+ public ReadOnlySpan < byte > AsSpan ( int start , int length )
543+ {
544+ return Hash . AsSpan ( start , length ) ;
545+ }
546+
547+ /// <summary>
548+ /// <inheritdoc/>
549+ /// </summary>
550+ /// <param name="length"><inheritdoc/></param>
551+ /// <returns><inheritdoc/></returns>
552+ public ReadOnlySpan < byte > AsSpan ( int length )
553+ {
554+ return AsSpan ( 0 , length ) ;
555+ }
556+
557+ /// <summary>
558+ /// <inheritdoc/>
559+ /// </summary>
560+ /// <returns><inheritdoc/></returns>
561+ public ReadOnlySpan < byte > AsSpan ( )
562+ {
563+ return AsSpan ( 0 , Hash . Length ) ;
564+ }
565+
566+ /// <summary>
567+ /// <inheritdoc/>
568+ /// </summary>
569+ /// <param name="start"><inheritdoc/></param>
570+ /// <param name="length"><inheritdoc/></param>
571+ /// <returns><inheritdoc/></returns>
572+ public IHashValue Slice ( int start , int length )
573+ {
574+ return new HashValue ( Endianness , Hash . AsSpan ( start , length ) . ToImmutableArray ( ) , length * 8 ) ;
575+ }
576+
577+ /// <summary>
578+ /// <inheritdoc/>
579+ /// </summary>
580+ /// <param name="length"><inheritdoc/></param>
581+ /// <returns><inheritdoc/></returns>
582+ public IHashValue Slice ( int length )
583+ {
584+ return Slice ( 0 , length ) ;
585+ }
586+
536587 /// <summary>
537588 /// <inheritdoc/>
538589 /// </summary>
@@ -702,4 +753,4 @@ public int CompareTo(IHashValue other)
702753 return 0 ;
703754 }
704755 }
705- }
756+ }
0 commit comments