Skip to content

Commit c50a411

Browse files
committed
Expose Alphabet, SingleLetterTag and Filter
1 parent 324e809 commit c50a411

File tree

14 files changed

+5782
-229
lines changed

14 files changed

+5782
-229
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
### Added
3333

3434
* Expose `EventId` ([Yuki Kishimoto])
35+
* Expose `Alphabet`, `SingleLetterTag` and `Filter` ([Yuki Kishimoto])
3536

3637
### Fixed
3738

lib/nostr_sdk.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export 'src/rust/api/protocol/event/unsigned.dart';
1010
export 'src/rust/api/protocol/key.dart';
1111
export 'src/rust/api/protocol/key/public_key.dart';
1212
export 'src/rust/api/protocol/key/secret_key.dart';
13+
export 'src/rust/api/protocol/types/filter.dart';
1314
export 'src/rust/api/protocol/signer.dart';
1415
export 'src/rust/api/relay/options.dart';
1516
export 'src/rust/api/client.dart';

lib/src/rust/api/protocol/event.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import 'event/tag.dart';
99
import 'key/public_key.dart';
1010
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
1111

12-
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `from`
12+
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `deref`, `from`
1313

1414
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_Event>>
1515
abstract class Event implements RustOpaqueInterface {
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
// This file is automatically generated, so please do not edit it.
2+
// Generated by `flutter_rust_bridge`@ 2.0.0.
3+
4+
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
5+
6+
import '../../../frb_generated.dart';
7+
import '../event.dart';
8+
import '../event/id.dart';
9+
import '../key/public_key.dart';
10+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
11+
12+
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `from`, `from`, `from`
13+
14+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_Filter>>
15+
abstract class Filter implements RustOpaqueInterface {
16+
String asJson();
17+
18+
/// Add event author Public Key
19+
Filter author({required PublicKey author});
20+
21+
Filter authors({required List<PublicKey> authors});
22+
23+
Filter customTag(
24+
{required SingleLetterTag tag, required List<String> content});
25+
26+
/// Add event ID (`e` tag)
27+
Filter event({required EventId id});
28+
29+
/// Add event IDs (`e` tag)
30+
Filter events({required List<EventId> ids});
31+
32+
static Filter fromJson({required String json}) => NostrSdk.instance.api
33+
.crateApiProtocolTypesFilterFilterFromJson(json: json);
34+
35+
Filter hashtag({required String hashtag});
36+
37+
Filter hashtags({required List<String> hashtags});
38+
39+
Filter id({required EventId id});
40+
41+
Filter identifier({required String identifier});
42+
43+
Filter identifiers({required List<String> identifiers});
44+
45+
Filter ids({required List<EventId> ids});
46+
47+
bool isEmpty();
48+
49+
Filter kind({required int kind});
50+
51+
Filter kinds({required List<int> kinds});
52+
53+
Filter limit({required BigInt limit});
54+
55+
/// Determine if `Filter` match given `Event`.
56+
bool matchEvent({required Event event});
57+
58+
factory Filter() =>
59+
NostrSdk.instance.api.crateApiProtocolTypesFilterFilterNew();
60+
61+
/// Add Public Key (`p` tag)
62+
Filter pubkey({required PublicKey pubkey});
63+
64+
/// Add Public Keys (`p` tag)
65+
Filter pubkeys({required List<PublicKey> pubkeys});
66+
67+
Filter reference({required String reference});
68+
69+
Filter references({required List<String> references});
70+
71+
Filter removeAuthors({required List<PublicKey> authors});
72+
73+
Filter removeCustomTag(
74+
{required SingleLetterTag tag, required List<String> content});
75+
76+
Filter removeEvents({required List<EventId> ids});
77+
78+
Filter removeHashtags({required List<String> hashtags});
79+
80+
Filter removeIdentifiers({required List<String> identifiers});
81+
82+
Filter removeIds({required List<EventId> ids});
83+
84+
Filter removeKinds({required List<int> kinds});
85+
86+
Filter removeLimit();
87+
88+
Filter removePubkeys({required List<PublicKey> pubkeys});
89+
90+
Filter removeReferences({required List<String> references});
91+
92+
Filter removeSearch();
93+
94+
Filter removeSince();
95+
96+
Filter removeUntil();
97+
98+
Filter search({required String text});
99+
100+
Filter since({required BigInt timestamp});
101+
102+
Filter until({required BigInt timestamp});
103+
}
104+
105+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<_SingleLetterTag>>
106+
abstract class SingleLetterTag implements RustOpaqueInterface {
107+
/// Check if it's lowercase
108+
bool isLowercase();
109+
110+
/// Check if it's uppercase
111+
bool isUppercase();
112+
113+
/// New lowercase single-letter tag
114+
static SingleLetterTag lowercase({required Alphabet character}) =>
115+
NostrSdk.instance.api.crateApiProtocolTypesFilterSingleLetterTagLowercase(
116+
character: character);
117+
118+
/// New uppercase single-letter tag
119+
static SingleLetterTag uppercase({required Alphabet character}) =>
120+
NostrSdk.instance.api.crateApiProtocolTypesFilterSingleLetterTagUppercase(
121+
character: character);
122+
}
123+
124+
enum Alphabet {
125+
a,
126+
b,
127+
c,
128+
d,
129+
e,
130+
f,
131+
g,
132+
h,
133+
i,
134+
j,
135+
k,
136+
l,
137+
m,
138+
n,
139+
o,
140+
p,
141+
q,
142+
r,
143+
s,
144+
t,
145+
u,
146+
v,
147+
w,
148+
x,
149+
y,
150+
z,
151+
;
152+
}

0 commit comments

Comments
 (0)