palpo-data 0.0.2

Matrix server implementation
Documentation
use std::collections::{BTreeMap, HashMap, HashSet};
use std::fmt::Debug;
use std::sync::atomic::AtomicUsize;
use std::sync::atomic::Ordering;
use std::sync::{Arc, OnceLock};
use std::time::{Duration, Instant};

use diesel::prelude::*;
use serde::Deserialize;
use serde_json::value::to_raw_value;
use tokio::sync::{mpsc, Mutex, Semaphore};

use crate::connect;
use crate::core::appservice::event::{push_events_request, PushEventsReqBody};
use crate::core::appservice::Registration;
use crate::core::device::DeviceListUpdateContent;
use crate::core::events::push_rules::PushRulesEventContent;
use crate::core::events::receipt::{ReceiptContent, ReceiptData, ReceiptMap, ReceiptType};
use crate::core::events::GlobalAccountDataEventType;
use crate::core::federation::transaction::{send_messages_request, Edu, SendMessageReqBody, SendMessageResBody};
use crate::core::identifiers::*;
use crate::core::presence::{PresenceContent, PresenceUpdate};
pub use crate::core::sending::*;
use crate::core::serde::{CanonicalJsonObject, RawJsonValue};
use crate::core::{device_id, push, Seqnum, UnixMillis};
use crate::schema::*;

#[derive(Identifiable, Queryable, Insertable, Debug, Clone)]
#[diesel(table_name = outgoing_requests)]
pub struct DbOutgoingRequest {
    pub id: i64,
    pub kind: String,
    pub appservice_id: Option<String>,
    pub user_id: Option<OwnedUserId>,
    pub pushkey: Option<String>,
    pub server_id: Option<OwnedServerName>,
    pub pdu_id: Option<OwnedEventId>,
    pub edu_json: Option<Vec<u8>>,
    pub state: String,
    pub data: Option<Vec<u8>>,
}
#[derive(Insertable, Debug, Clone)]
#[diesel(table_name = outgoing_requests)]
pub struct NewDbOutgoingRequest {
    pub kind: String,
    pub appservice_id: Option<String>,
    pub user_id: Option<OwnedUserId>,
    pub pushkey: Option<String>,
    pub server_id: Option<OwnedServerName>,
    pub pdu_id: Option<OwnedEventId>,
    pub edu_json: Option<Vec<u8>>,
}