#![allow(unused_attributes)]
#![allow(unused_imports)]
#![allow(unused_results)]
#![allow(unused_variables)]
#![allow(unused_variables)]
#![allow(unreachable_code)]
use eventstore::{
Client, Credentials, EventData, ExpectedRevision, Position, RetryOptions, StreamPosition,
SubscribeToAllOptions, SubscribeToStreamOptions, SubscriptionEvent, SubscriptionFilter,
};
use futures::TryStreamExt;
use serde::{Deserialize, Serialize};
use std::error::Error;
use uuid::Uuid;
type Result<A> = std::result::Result<A, Box<dyn Error>>;
pub async fn subscribe_to_stream(client: &Client) -> Result<()> {
let mut stream = client
.subscribe_to_stream("some-stream", &Default::default())
.await;
loop {
let event = stream.next().await?;
}
let options = SubscribeToStreamOptions::default().start_from(StreamPosition::Position(20));
client.subscribe_to_stream("some-stream", &options).await;
let options = SubscribeToStreamOptions::default().start_from(StreamPosition::End);
client.subscribe_to_stream("some-stream", &options).await;
let options = SubscribeToStreamOptions::default()
.start_from(StreamPosition::Start)
.resolve_link_tos();
client
.subscribe_to_stream("$et-myEventType", &options)
.await;
let retry = RetryOptions::default().retry_forever();
let options = SubscribeToStreamOptions::default().retry_options(retry);
let mut stream = client.subscribe_to_stream("some-stream", &options).await;
loop {
let event = stream.next().await?;
}
Ok(())
}
pub async fn subscribe_to_all(client: &Client) -> Result<()> {
let mut stream = client.subscribe_to_all(&Default::default()).await;
loop {
let event = stream.next().await?;
}
let options = SubscribeToAllOptions::default().position(StreamPosition::Position(Position {
commit: 1_056,
prepare: 1_056,
}));
client.subscribe_to_all(&options).await;
let options = SubscribeToAllOptions::default().position(StreamPosition::End);
client.subscribe_to_all(&options).await;
let retry = RetryOptions::default().retry_forever();
let options = SubscribeToAllOptions::default().retry_options(retry);
let mut stream = client.subscribe_to_all(&options).await;
loop {
let event = stream.next().await?;
}
Ok(())
}
pub async fn subscribe_to_all_filtered(client: &Client) -> Result<()> {
let filter = SubscriptionFilter::on_stream_name().add_prefix("test-");
let options = SubscribeToAllOptions::default().filter(filter);
client.subscribe_to_all(&options).await;
let filter = SubscriptionFilter::on_stream_name().regex("/invoice-\\d\\d\\d/g");
Ok(())
}
pub async fn overriding_user_credentials(client: &Client) -> Result<()> {
let options =
SubscribeToAllOptions::default().authenticated(Credentials::new("admin", "changeit"));
client.subscribe_to_all(&options).await;
Ok(())
}