spat_1.3.0_4ad4ab14/src/core/spat-entity_line.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
------------------------------------------------------------------------------
--  Copyright (C) 2020 by Heisenbug Ltd. (gh+spat@heisenbug.eu)
--
--  This work is free. You can redistribute it and/or modify it under the
--  terms of the Do What The Fuck You Want To Public License, Version 2,
--  as published by Sam Hocevar. See the LICENSE file for more details.
------------------------------------------------------------------------------
pragma License (Unrestricted);

with Ada.Strings.Fixed;

package body SPAT.Entity_Line is

   ---------------------------------------------------------------------------
   --  Create
   ---------------------------------------------------------------------------
   not overriding
   function Create (Object : in JSON_Value) return T is
     (T'(Entity.T with
           File =>
             Source_File_Name
               (Subject_Name'(Object.Get (Field => Field_Names.File))),
           Line => Object.Get (Field => Field_Names.Line)));

   ---------------------------------------------------------------------------
   --  Image
   ---------------------------------------------------------------------------
   overriding
   function Image (This : T) return String is
   begin
      return
        To_String (This.File) & ":" &
        Ada.Strings.Fixed.Trim (Source => This.Line'Image,
                                Side   => Ada.Strings.Both);
   end Image;

end SPAT.Entity_Line;