Map

Struct Map 

Source
pub struct Map {
Show 14 fields pub id: i64, pub name: String, pub deletion_date: Option<NaiveDate>, pub last_visit: Option<NaiveDate>, pub is_inactive: bool, pub zoom_factor: i16, pub privacy: PrivacyAccessControl, pub description: Option<String>, pub location: Option<Point>, pub created_by: Uuid, pub geometry: Polygon<Point>, pub created_at: NaiveDateTime, pub modified_at: NaiveDateTime, pub modified_by: Uuid,
}
Expand description

The Map entity.

Fields§

§id: i64

The id of the map.

§name: String

The name of the map.

§deletion_date: Option<NaiveDate>

The date the map is supposed to be deleted.

§last_visit: Option<NaiveDate>

The date the last time the map view was opened by any user.

§is_inactive: bool

A flag indicating if this map is marked for deletion.

§zoom_factor: i16

The zoom factor of the map.

§privacy: PrivacyAccessControl

An enum indicating if this map is private or not.

§description: Option<String>

The description of the map.

§location: Option<Point>

The location of the map as a latitude/longitude point.

§created_by: Uuid

The id of the creator of the map.

§geometry: Polygon<Point>

The geometry of the map.

§created_at: NaiveDateTime

When the map was created.

§modified_at: NaiveDateTime

When a map was last modified, e.g., by modifying plantings.

§modified_by: Uuid

By whom the map was last modified.

Implementations§

Source§

impl Map

Source

pub async fn find( search_parameters: MapSearchParameters, page_parameters: PageParameters, conn: &mut AsyncPgConnection, user_info: UserInfo, collaborating_in: Vec<i64>, ) -> QueryResult<Page<MapDto>>

Get the maps matching the search query.

Sorting is done in three steps:

  1. Priority order (Owned maps first, then collaborating maps and then everything else)
  2. Similarity to the search query (if provided).
  3. Modified Date

The later criteria are only considered if the earlier criteria fail to establish an unambiguous order.

Uses pg_trgm to find matches in name. Ranks using the pg_trgm function similarity().

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn find_by_id( id: i64, conn: &mut AsyncPgConnection, ) -> QueryResult<MapDto>

Fetch map by id from the database.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn is_name_taken( map_name: &str, conn: &mut AsyncPgConnection, ) -> QueryResult<bool>

Checks if a map with this name already exists in the database.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn create( new_map: NewMapDto, user_id: Uuid, conn: &mut AsyncPgConnection, ) -> QueryResult<MapDto>

Create a new map in the database.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn update( map_update: UpdateMapDto, id: i64, conn: &mut AsyncPgConnection, ) -> QueryResult<MapDto>

Update a map in the database.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn mark_for_deletion( id: i64, conn: &mut AsyncPgConnection, ) -> QueryResult<MapDto>

Marks a map for deletion using the systems current date and time.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn update_geometry( map_update_bounds: UpdateMapGeometryDto, id: i64, conn: &mut AsyncPgConnection, ) -> QueryResult<MapDto>

Update a maps bounds in the database.

§Errors
  • Unknown, diesel doesn’t say why it might error.
Source

pub async fn update_modified_metadata( id: i64, user_id: Uuid, time: NaiveDateTime, conn: &mut AsyncPgConnection, ) -> QueryResult<()>

Update modified metadata (modified_at, modified_by) of the map.

§Errors
  • Unknown, diesel doesn’t say why it might error.

Trait Implementations§

Source§

impl From<Map> for MapDto

Source§

fn from(map: Map) -> Self

Converts to this type from the input type.
Source§

impl HasTable for Map

Source§

type Table = table

The table this type is associated with.
Source§

fn table() -> <Self as HasTable>::Table

Returns the table this type is associated with.
Source§

impl<'ident> Identifiable for &'ident Map

Source§

type Id = &'ident i64

The type of this struct’s identifier. Read more
Source§

fn id(self) -> <Self as Identifiable>::Id

Returns the identifier for this record. Read more
Source§

impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13> Queryable<(__ST0, __ST1, __ST2, __ST3, __ST4, __ST5, __ST6, __ST7, __ST8, __ST9, __ST10, __ST11, __ST12, __ST13), __DB> for Map

Auto Trait Implementations§

§

impl Freeze for Map

§

impl RefUnwindSafe for Map

§

impl Send for Map

§

impl Sync for Map

§

impl Unpin for Map

§

impl UnwindSafe for Map

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoSql for T

Source§

fn into_sql<T>(self) -> Self::Expression

Convert self to an expression for Diesel’s query builder. Read more
Source§

fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Paginate for T

Source§

fn paginate(self, page: Option<i32>) -> PaginatedQuery<T>

Return a paginated version of a query for a specific page number.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, Conn> RunQueryDsl<Conn> for T

Source§

fn execute<'conn, 'query>( self, conn: &'conn mut Conn, ) -> <Conn as AsyncConnection>::ExecuteFuture<'conn, 'query>
where Conn: AsyncConnection + Send, Self: ExecuteDsl<Conn> + 'query,

Executes the given command, returning the number of rows affected. Read more
Source§

fn load<'query, 'conn, U>( self, conn: &'conn mut Conn, ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>, fn(Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U>>>
where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,

Executes the given query, returning a Vec with the returned rows. Read more
Source§

fn load_stream<'conn, 'query, U>( self, conn: &'conn mut Conn, ) -> Self::LoadFuture<'conn>
where Conn: AsyncConnection, U: 'conn, Self: LoadQuery<'query, Conn, U> + 'query,

Executes the given query, returning a Stream with the returned rows. Read more
Source§

fn get_result<'query, 'conn, U>( self, conn: &'conn mut Conn, ) -> AndThen<Self::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<Self::Stream<'conn>>>>, fn((Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>>>)) -> Result<U, Error>>, fn(Self::Stream<'conn>) -> Map<StreamFuture<Pin<Box<Self::Stream<'conn>>>>, fn((Option<Result<U, Error>>, Pin<Box<Self::Stream<'conn>>>)) -> Result<U, Error>>>
where U: Send + 'conn, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,

Runs the command, and returns the affected row. Read more
Source§

fn get_results<'query, 'conn, U>( self, conn: &'conn mut Conn, ) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>, fn(Self::Stream<'conn>) -> TryCollect<Self::Stream<'conn>, Vec<U>>>
where U: Send, Conn: AsyncConnection, Self: LoadQuery<'query, Conn, U> + 'query,

Runs the command, returning an Vec with the affected rows. Read more
Source§

fn first<'query, 'conn, U>( self, conn: &'conn mut Conn, ) -> AndThen<<Self::Output as LoadQuery<'query, Conn, U>>::LoadFuture<'conn>, Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>>>>, fn((Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>>>)) -> Result<U, Error>>, fn(<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>) -> Map<StreamFuture<Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>>>>, fn((Option<Result<U, Error>>, Pin<Box<<Self::Output as LoadQuery<'query, Conn, U>>::Stream<'conn>>>)) -> Result<U, Error>>>
where U: Send + 'conn, Conn: AsyncConnection, Self: LimitDsl, Self::Output: LoadQuery<'query, Conn, U> + Send + 'query,

Attempts to load a single record. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, ST, DB> StaticallySizedRow<ST, DB> for T
where ST: SqlTypeOrSelectable + TupleSize, T: Queryable<ST, DB>, DB: Backend,

Source§

const FIELD_COUNT: usize = <ST as crate::util::TupleSize>::SIZE

The number of fields that this type will consume.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more