// Description: Bit extraction
// Documentation: bit_tricks.txt
#ifndef PASTELSYS_EXTRACT_BITS_H
#define PASTELSYS_EXTRACT_BITS_H
#include "pastel/sys/integer/integer_concept.h"
namespace Pastel
{
    //! Returns the bits at range [FromBit, FromBit + Bits[.
    /*!
   Preconditions:
   FromBit > 0
   Bits > 0
   Bits <= 32
   The computation is defined by:
   (number >> FromBit) & (1 << Bits - 1);
   */
    template <integer FromBit, integer Bits, typename Integer>
    Integer extractBits(const Integer& number);
    template <typename Integer>
    Integer extractBits(const Integer& number, 
        integer fromBit, integer bits);
}
#include "pastel/sys/bit/extract_bits.hpp"
#endif