View source code
							
							
						
								Display the source code in std/digest/package.d from which thispage was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create aBugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinglocal clone.
							
						Enum member std.digest.isDigest
Use this to check if a type is a digest. See ExampleDigest to see what
 a type must provide to pass this check.
						
				enum isDigest(T) = isOutputRange!(T, const(ubyte)[]) && isOutputRange!(T, ubyte) && is(T == struct) && is(typeof(()
{
T dig = void;
dig .put(cast(ubyte)0, cast(ubyte)0);
dig .start();
auto value = dig .finish();
}
));
						
					
				Note
This is very useful as a template constraint (see examples)
BUGS
- Does not yet verify that put takes scope parameters.
 - Should check that finish() returns a ubyte[num] array
 
Example
import std .digest .crc;
static assert(isDigest!CRC32);
Example
import std .digest .crc;
void myFunction(T)()
if (isDigest!T)
{
    T dig;
    dig .start();
    auto result = dig .finish();
}
myFunction!CRC32();
Authors
Johannes Pfau
License
					Copyright © 1999-2025 by the D Language Foundation | Page generated by ddox.