Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.29.0 #690

Merged
merged 135 commits into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
258156f
Update release.yml
Jason2605 Aug 20, 2023
f1462f6
un-auto load C module
briandowns Aug 21, 2023
3ada75f
remove unneeded refs to auto load C module
briandowns Aug 21, 2023
e97b382
Merge pull request #638 from briandowns/fix_c_global
Jason2605 Aug 21, 2023
5a1b0af
Add in string lex comparison on greater / less than operators
Jason2605 Aug 22, 2023
2a48c70
Update checkTests script to check each individual test folder as well
Jason2605 Aug 22, 2023
a501234
Handle backslash in mkdirAll for windows
Jason2605 Aug 22, 2023
1ce018c
Correctly use success not unwrap
Jason2605 Aug 22, 2023
a43cff9
Merge pull request #639 from dictu-lang/feature/tests
Jason2605 Aug 22, 2023
137a7a8
Merge branch 'develop' into feature/compare_strings
Jason2605 Aug 22, 2023
fb8029b
Add tests and update docs
Jason2605 Aug 22, 2023
93ed36d
Dedicated functions for string lex checks
Jason2605 Aug 22, 2023
97369ef
Handle popping correctly
Jason2605 Aug 23, 2023
c0f23a0
Merge pull request #640 from dictu-lang/feature/compare_strings
Jason2605 Aug 23, 2023
8a20f7a
Fix issue with string operations on less and greater than
Jason2605 Aug 28, 2023
006a9b5
Create helper script
Jason2605 Aug 28, 2023
48b07ff
Order standard lib docs alphabetically
Jason2605 Aug 28, 2023
7a47449
Add the ability to mock classes
Jason2605 Aug 28, 2023
a221664
Push closure to VM to stop GC
Jason2605 Aug 28, 2023
e6ae72a
Remove else keyword
Jason2605 Aug 28, 2023
6280035
Merge pull request #642 from dictu-lang/feature/operators
Jason2605 Aug 29, 2023
5d3b8a1
Merge remote-tracking branch 'origin/develop' into feature/order_docs
Jason2605 Aug 29, 2023
509257c
Update order docs for CI
Jason2605 Aug 29, 2023
b1ed4d2
Add order docs to workflow
Jason2605 Aug 29, 2023
8630b23
Merge pull request #643 from dictu-lang/feature/order_docs
Jason2605 Aug 29, 2023
9b8c569
Update argparse
Jason2605 Aug 29, 2023
cb1bac3
add stack
briandowns Aug 20, 2023
df309d6
stack docs and tests
briandowns Aug 28, 2023
02ca537
update docs
briandowns Aug 28, 2023
26de33f
add stack test import
briandowns Aug 28, 2023
9259b2b
update docs
briandowns Aug 29, 2023
4575e7d
docs update
briandowns Aug 29, 2023
61ba117
Merge pull request #645 from briandowns/add_stack
Jason2605 Aug 29, 2023
291ba0f
add pull, build, install script
briandowns Aug 30, 2023
87ea231
pr comment updates
briandowns Aug 30, 2023
94c800a
pr comment updates
briandowns Aug 30, 2023
d7e05d7
Merge pull request #648 from dictu-lang/feature/args
Jason2605 Aug 30, 2023
9c32e66
Merge pull request #649 from briandowns/add_build_script
Jason2605 Aug 30, 2023
c44192c
Merge remote-tracking branch 'origin/develop' into feature/mocking
Jason2605 Aug 30, 2023
9b4d2c0
Parse hex codes
Jason2605 Aug 30, 2023
1a49acf
Ensure annotations are greyed
Jason2605 Aug 31, 2023
8b67a08
Merge pull request #651 from dictu-lang/feature/annotatiosn
Jason2605 Sep 1, 2023
58af3db
Add new matchError helper
Jason2605 Sep 1, 2023
d7b7ee5
Merge pull request #652 from dictu-lang/feature/matchError
Jason2605 Sep 1, 2023
0e6c330
add annotation inheritance, tests, and docs
briandowns Sep 3, 2023
5977972
copy method and field annotations
briandowns Sep 3, 2023
7a614ee
pr comments
briandowns Sep 4, 2023
1eaea95
account for conflicting annotations and give favor to child
briandowns Sep 4, 2023
1c0e0ec
update docs
briandowns Sep 4, 2023
a70a03a
verify that the super class annotation isn't overwritten when the chi…
briandowns Sep 4, 2023
9492034
retrigger ci
briandowns Sep 4, 2023
63be713
simplify code
briandowns Sep 4, 2023
6d68acd
Merge pull request #654 from briandowns/isssue-633
Jason2605 Sep 4, 2023
a4fb9dd
add uniq method to list type
briandowns Sep 5, 2023
b6d027d
add uniq to tests
briandowns Sep 5, 2023
8d5167f
update uniq -> unique
briandowns Sep 6, 2023
b248557
update import
briandowns Sep 6, 2023
a8702e5
Merge pull request #655 from briandowns/add_uniq_method_to_list
Jason2605 Sep 6, 2023
506076e
add toDict method to class
briandowns Sep 6, 2023
073e633
update tests
briandowns Sep 6, 2023
f5a95ff
update tests
briandowns Sep 6, 2023
343dcdf
resolve rebase conflicts
briandowns Sep 7, 2023
8168139
update docs
briandowns Sep 6, 2023
6dc9437
resolve rebase conflicts
briandowns Sep 7, 2023
e049f73
Get inheritance working and fix memory issues
Jason2605 Sep 7, 2023
44b8ed6
Merge pull request #656 from briandowns/class_to_dict
Jason2605 Sep 8, 2023
059a6a2
Correct type
Jason2605 Sep 10, 2023
5ce3cad
Merge pull request #657 from dictu-lang/feature/type
Jason2605 Sep 10, 2023
b8801ec
Revert table to initial impl
Jason2605 Sep 11, 2023
add18c1
Revert dictionary
Jason2605 Sep 11, 2023
cfe355a
Merge pull request #660 from dictu-lang/feature/revert
Jason2605 Sep 12, 2023
b84d50a
Merge branch 'develop' into feature/mocking
Jason2605 Sep 12, 2023
58d6ce5
Merge branch 'develop' into feature/mocking
Jason2605 Sep 12, 2023
6845556
Fix issue with abstracts not being able to grey
Jason2605 Sep 12, 2023
a188abd
Revert test as we are correctly shrinking
Jason2605 Sep 12, 2023
2634eb9
Merge pull request #661 from dictu-lang/feature/fix_abstracts
Jason2605 Sep 13, 2023
a169e40
Merge branch 'develop' into feature/mocking
Jason2605 Sep 13, 2023
c47ea49
Add docs and tests
Jason2605 Sep 13, 2023
3104ae2
Add put requests
Jason2605 Sep 28, 2023
b8a26e3
Merge pull request #644 from dictu-lang/feature/mocking
Jason2605 Sep 28, 2023
9354c32
Add docs
Jason2605 Sep 28, 2023
bb8b61a
Sqlite timeout
Jason2605 Sep 29, 2023
019e883
Merge pull request #665 from dictu-lang/feature/put
Jason2605 Sep 29, 2023
402ef26
Merge pull request #668 from dictu-lang/feature/sqlite_timeout
Jason2605 Sep 29, 2023
76505b1
add ability to build in debug
briandowns Sep 29, 2023
793576f
refactor to ternary
briandowns Sep 29, 2023
4dae76b
Merge pull request #669 from briandowns/add_debug_flag_to_build_script
Jason2605 Sep 29, 2023
a1df1f4
Add new Enum.values() method
Jason2605 Sep 29, 2023
a9facd1
Allow functions in enums to be called
Jason2605 Sep 29, 2023
5f6ebe2
add http head requests
briandowns Sep 30, 2023
ac7ff42
retrigger ci
briandowns Sep 30, 2023
8b0d54b
update error message
briandowns Sep 30, 2023
b6194eb
Update docs/docs/standard-lib/http.md
briandowns Oct 1, 2023
c6a054c
Extending list.sort() to sort list with strings
MannarAmuthan Oct 3, 2023
2e851e8
Merge pull request #673 from briandowns/feature/http_head
Jason2605 Oct 4, 2023
69b0896
Formatting
Jason2605 Oct 5, 2023
9d51366
Merge pull request #676 from MannarAmuthan/list-sort-string
Jason2605 Oct 5, 2023
8aa6b1d
Merge pull request #672 from dictu-lang/feature/enum
Jason2605 Oct 6, 2023
3db570d
add IO module
briandowns Oct 19, 2023
47b1da1
remove unneeded code
briandowns Oct 19, 2023
bb58dea
orderDocs
briandowns Oct 19, 2023
b39076d
Merge pull request #680 from briandowns/feature/fmt_module
Jason2605 Oct 19, 2023
2751fbc
move copyFile to IO module
briandowns Oct 20, 2023
b26c3c1
move test
briandowns Oct 20, 2023
ff8a81d
update for windows
briandowns Oct 21, 2023
357dbf7
update for windows
briandowns Oct 21, 2023
5501d73
Merge branch 'develop' into feature/parse_hex
Jason2605 Oct 23, 2023
e0b3578
Add error handling
Jason2605 Oct 23, 2023
a7ea541
update for windows
briandowns Oct 24, 2023
027324b
update for windows
briandowns Oct 25, 2023
85de82f
update for windows
briandowns Oct 25, 2023
bbce099
update arg handling
briandowns Oct 25, 2023
7b98e18
add net module, tests, and docs
briandowns Oct 30, 2023
5f49eb5
update docs order
briandowns Oct 30, 2023
790c966
add net mod to all tests
briandowns Oct 30, 2023
66c0d15
add net mod to all tests
briandowns Oct 30, 2023
7f29abf
add better validation and more tests
briandowns Oct 30, 2023
b90e789
account for windows
briandowns Oct 30, 2023
7065568
account for windows
briandowns Oct 30, 2023
b5f0f50
account for windows
briandowns Oct 30, 2023
38a7c8f
account for windows
briandowns Oct 30, 2023
bfefd41
Merge pull request #684 from dictu-lang/feature/parse_hex
Jason2605 Oct 30, 2023
fe48e09
Allow dictionaries to be an annotation type
Jason2605 Oct 30, 2023
221930a
Allow more types for annotations
Jason2605 Oct 31, 2023
e311391
Add note about more value types
Jason2605 Oct 31, 2023
1c448f1
Get annotations working on fields
Jason2605 Oct 31, 2023
041f1c4
Fix the wrapped value not showing
Jason2605 Oct 31, 2023
63b9718
Merge pull request #687 from dictu-lang/feature/annotations
Jason2605 Oct 31, 2023
8a91285
Merge pull request #688 from dictu-lang/feature/fix_docs
Jason2605 Oct 31, 2023
356f935
pr comment remediations
briandowns Oct 31, 2023
d6f7457
Merge pull request #686 from briandowns/add_net_module
Jason2605 Oct 31, 2023
f55a604
Bump to 0.29.0
Jason2605 Oct 31, 2023
b81978f
Merge branch 'develop' into feature/copy_file
briandowns Nov 1, 2023
de2ad2f
Update docs/docs/standard-lib/io.md
Jason2605 Nov 1, 2023
85f061f
Merge pull request #683 from briandowns/feature/copy_file
Jason2605 Nov 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,18 @@ on:
- master

jobs:
check-tests:
check-tests-and-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Make dictu and run checkTests
- name: Make dictu and run checkTests and orderDocs
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-openssl-dev uuid-dev
cmake -DCMAKE_BUILD_TYPE=Debug -DDISABLE_HTTP=1 -B ./build
cmake --build ./build
./dictu ops/checkTests.du ci
./dictu ops/orderDocs.du --ci
test-ubuntu-cmake:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- name: Release
uses: SierraSoftworks/gh-releases@v1.0.7
with:
token: ${{ secrets.TOKEN }}
token: ${{ secrets.GITHUB_TOKEN }}
overwrite: 'true'
files: |
dictu-linux-x86_64
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ CMakeSettings.json
dictu.ilk
dictu.pdb
test1.du
\.vscode/
.vscode
/.env
/vcpkg_installed
/Release
2 changes: 1 addition & 1 deletion docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: >-
color_scheme: "dictu" # Custom theme
logo: "/assets/images/dictu-logo/dictu-wordmark.svg"

version: "0.28.0"
version: "0.29.0"
github_username: dictu-lang
search_enabled: true

Expand Down
40 changes: 37 additions & 3 deletions docs/docs/classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,39 @@ print(TestOverload().toString()); // 'Testing object'

```

### toDict() -> Dict

Classes and instances can both be converted to a dictionary using the `toDict()` method. Inherited super classes are included in the dictionary.

```cs
class A {
var afield = 44;

amethod() {}
abethodb() {}
}

class B < A {
const x = 9;
const y = 8;

var fieldA = 1;
var fieldB = 2;

init() {}

methodA() {}
methodB() {}

private methodC() {}
private methodD() {}
}

const b = B();
print(b._class.toDict()); // {"public_methods": ["abethodb", "init", "methodA", "amethod", "methodB", "abethodb", "amethod"], "variables": {"afield": 44, "fieldA": 1, "fieldB": 2}, "constants": {"y": 8, "_name": "A", "x": 9}}

```

### methods() -> List

Sometimes we need to programmatically access methods that are stored within a class, this can be aided through the use of `.methods()`. This
Expand Down Expand Up @@ -310,7 +343,7 @@ print(Test()?.unknownMethod()); // Undefined attribute 'unknownMethod'.
### _class

`_class` is a special attribute that is added to instances so that a reference to the class is kept on objects. This will be
useful for things like pulling class annotations from an object where it's class may be unknown until runtime.
useful for things like pulling class, method, and field annotations from an object where it's class may be unknown until runtime.

```cs
class Test {}
Expand Down Expand Up @@ -411,7 +444,7 @@ Hello

## Inheritance

The syntax for class inheritance is as follows: `class DerivedClass < BaseClass`. `super` is a variable that is reference to the class that is being inherited.
The syntax for class inheritance is as follows: `class DerivedClass < BaseClass`. `super` is a variable that is reference to the class that is being inherited. Class, method, and field annotations are inherited from the super class. If there is a conflict with annotations, favor is given to the child annotation.

Note: private methods and instance variables are not inherited.

Expand Down Expand Up @@ -690,7 +723,8 @@ print(AnnotatedClass.classAnnotations); // {"Annotation": nil}
print(ClassWithMethodAnnotation.methodAnnotations); // {"method": {"MethodAnnotation": nil}}
```

Annotations can also be supplied a value, however, the value must be of type: nil, boolean, number or string.
Annotations can also be supplied a value, however, the value must be of type: dict, list, string, number, boolean or nil.
Note: Annotation values must be constants as they are created at compile time.

```cs
@Annotation("Some extra value!")
Expand Down
20 changes: 19 additions & 1 deletion docs/docs/collections/lists.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ print(list2); // [[10, 2]]
### Sorting Lists
#### list.sort()

To sort numeric lists (that is lists that contain only numbers) you can use the method
To sort numeric lists and string lists (that is lists that contain only numbers or only strings) you can use the method
sort.

```cs
Expand All @@ -234,6 +234,15 @@ list1.sort();
print(list1); // [-1, 1, 2, 3, 4, 5, 10]
```

```cs
var list1 = ["zebra", "cat", "dino", "pig"];

print(list1); // ["zebra", "cat", "dino", "pig"]
list1.sort();

print(list1); // ["cat", "dino", "pig", "zebra"]
```

### list.forEach(Func)

To run a function on every element in a list we use `.forEach`. The callback function
Expand Down Expand Up @@ -324,3 +333,12 @@ Splice provides a means of changing the contents of a list by removing or replac
[1, 2, 3, 4, 5].splice(1, 2, [100]); // [1, 100, 4, 5]
[1, 2, 3, 4, 5].splice(3, 0, [100, 101, 102]); // [1, 2, 3, 100, 101, 102, 4, 5]
```

### list.unique() -> List

Unique returns a new list with contianing the contents of the original list deduplicated.

```cs
const l = [1, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9];
l.unique(); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
```
14 changes: 14 additions & 0 deletions docs/docs/enum.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,18 @@ enum HeterogeneousEnum {
b = "string",
c = def () => 10
}
```

### Enum.values()

To get all values within an Enum you can use the `.values()` method. This will return a dictionary.

```cs
enum Test {
a = 10, // 10
b, // 1
c // 2
}

print(Test.values()); // {"c": 2, "a": 10, "b": 1}
```
23 changes: 20 additions & 3 deletions docs/docs/error-handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ var result = Error("Some error happened!!");
print(result.unwrapError()); // 'Some error happened!!'
```

### .unwrap() -> value
### .unwrap() -> Value

As previously explained to get a value out of a Result it needs to be unwrapped.
If you attempt to unwrap a Result that is of ERROR status a runtime error will be raised.
Expand Down Expand Up @@ -80,7 +80,7 @@ Check if a Result type is in a SUCCESS state, returns a boolean.
"number".toNumber().success(); // false
```

### .match(Func: success, Func: error) -> value
### .match(Func: success, Func: error) -> Value

`.match` takes two callbacks that are ran depending upon the status of the result type. The callbacks passed to
match must both have one parameter each, on success the unwrapped value is passed as the first argument and on
Expand Down Expand Up @@ -125,4 +125,21 @@ print(response); // <Result Suc>
```

In the above example we can handle the case that we need to do some data transformation, however, we
also need to ensure that a Result object is returned in case we hit the error callback.
also need to ensure that a Result object is returned in case we hit the error callback.

### .matchError(Func: error) -> Value

`.matchError` is similar to `.match` except it only accepts a single callback. If the Result type is
in an Error state the callback will be ran, otherwise the Result will be unwrapped and the wrapped value is
returned. It becomes a shortcut if you do not need any intermediate handling on success unwrapping.

```cs
var number = "10".toNumber().matchError(
def (error) => {
print(error);
System.exit(1);
}
);

print(number); // 10
```
4 changes: 4 additions & 0 deletions docs/docs/operators.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ nav_order: 6
| - | Subtracts the values on either side of the operator together | 10 - 10 |
| * | Multiplies the values on either side of the operator together | 10 * 2 |
| / | Divides the values on either side of the operator together. | 10 / 3 |
| < | Returns true if the left operand is less than the right operand (for strings this is based on the ASCII value) | 9 < 10 |
| > | Returns true if the left operand is more than the right operand (for strings this is based on the ASCII value) | 11 > 10 |
| <= | Same as < however includes an equality check | 9 <= 9 |
| >= | Same as > however includes an equality check | 10 >= 10 |
| % | Modulo of values on either side of the operator | 10 % 2 |
| ** | Exponent (power) of the values | 2 ** 2 |
| & | Bitwise AND of the values | 10 & 2 |
Expand Down
50 changes: 43 additions & 7 deletions docs/docs/standard-lib/argparse.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Argparse
nav_order: 19
nav_order: 1
parent: Standard Library
---

Expand All @@ -24,12 +24,16 @@ To make use of the Argparse module an import is required.
from Argparse import Parser;
```

### New Parser(String, String, String) -> Parser
### New Parser(String, String, String -> Optional) -> Parser

To create a new parser instance, call the `Parser` class with the 3 required string arguments; name, description, and user provided usage.
To create a new parser instance, call the `Parser` class with the 2 required string arguments; name, description.

You can optionally pass in a user generated usage for the Parser

```cs
var parser = Parser("prog_name", "Program to do all the things", "");
const parser = Parser("prog_name", "Program to do all the things");
//
const parser = Parser("prog_name", "Program to do all the things", "User defined usage string");
```

### Parse.addString(String, String, Bool, string -> Optional)
Expand Down Expand Up @@ -64,7 +68,24 @@ To add a new list argument, call the method below with at least the 3 required a
parser.addList("-u", "active users", true, "users");
```

### Parser.parse() -> Result\<Dict>
### Parser.usage() -> String

The Parser class will create a helpful output based on the arguments added to the parser class for you, this can be used to populate a `--help` argument.

```cs
const parser = Parser("Code!", "Some code");
parser.addBool("--myOption", "Some useful boolean option", false);
print(parser.usage());

// Output
usage: Code!
Some code

--myOption Some useful boolean option

```

### Parser.parse() -> Result\<Args>

The `parse` method needs to be called to process the given flags against the configured flags. `parse` returns a `Result` value that, on success, will need to be unwrapped to access an instance of the `Args` class.

Expand All @@ -78,8 +99,23 @@ const args = parser.parse().match(
);
```

The value of type `Args` will be instantiated with fields matching the configured flags or the given metavar names. Below is an example using the list argument example from above.
The value of type `Args` will be instantiated with fields matching the configured flags or the given metavar names.

If the option was not marked as required and a value for that given argument was not passed then it will have a `nil` value.

```cs
print("Users: {}".format(args.users));
const parser = Parser("Code!", "Some code");
parser.addString("--option", "Some useful string option", false);
parser.addString("--option1", "Some useful string option", false);
const args = parser.parse().unwrap();

print(args.option, args.option1);
```

CLI Input / Output:

```
$ dictu argparse.du --option "Hello"
hello
nil
```
4 changes: 2 additions & 2 deletions docs/docs/standard-lib/base64.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Base64
nav_order: 10
nav_order: 2
parent: Standard Library
---

Expand Down Expand Up @@ -37,4 +37,4 @@ Base64 decode a given string.

```cs
Base64.decode("dGVzdA=="); // 'test'
```
```
2 changes: 1 addition & 1 deletion docs/docs/standard-lib/bigint.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: BigInt
nav_order: 21
nav_order: 3
parent: Standard Library
---

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/standard-lib/datetime.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Datetime
nav_order: 2
nav_order: 4
parent: Standard Library
---

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/standard-lib/env.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ Env.readFile(); // <Result Suc>

print(Env.get("TEST")); // 10
print(Env.get("TESTING")); // 100
```
```
4 changes: 2 additions & 2 deletions docs/docs/standard-lib/hashlib.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: default
title: Hashlib
nav_order: 11
nav_order: 6
parent: Standard Library
---

Expand Down Expand Up @@ -69,4 +69,4 @@ Timing safe hash comparison. This should always be favoured over normal string c
```cs
Hashlib.verify(Hashlib.sha256("Dictu"), "889bb2f43047c331bed74b1a9b309cc66adff6c6d4c3517547813ad67ba8d105"); // true
Hashlib.verify(Hashlib.sha256("Dictu"), "wrong"); // false
```
```
Loading